Updated Ubuntu 13.04 Image

I’ve created an updated Ubuntu 13.04 image suitable for the BeagleBone Black that includes a number of useful packages and fixes. Most notable are:

  • Hamachi is installed and working
  • USB network is working
  • Fixed Realtek RTL8188CUS driver
  • Using 3.8.13 kernel
  • Fix for USB power added
  • Deb packages updated to latest

Login name is ubuntu/temppwd

You can download it from here. If you find any problems with this image please let me know.

*Update 1 – USB network is in fact not working by default. The wrong kernel module is being loaded. To correct rmmod the g_cdc module and modprobe g_ether module. Once thats done you and ifup usb0 and it should work.

*Update 2 – If you plan on using Hamachi there is one additional step that should be done. Hamachi is fully configured and already has a IP and ID assigned. This will need to be reset. The fix is pretty easy. Just stop Hamachi , remove /var/lib/logmein-hamachi and start Hamachi again.

Problems with Realtek RTL8188CUS

The Miniature WiFi module from Adafruit does not work with Ubuntu 13.04 on the BeagleBone Black. Wish I knew that before I purchased it. Would have saved me many hours of work. Strap in, this one is a bit ugly.

814_MED

The instructions are for the ubuntu-13.04-armhf-minfs-3.8.12-bone17.img.xz image. If you use a different image it should still work. Just make sure you have the correct kernel headers installed.

1. Grab the modified driver from here:
wget https://realtek-8188cus-wireless-drivers-3444749-ubuntu-1304.googlecode.com/files/rtl8192cu-tjp-dkms_1.6_all.deb

2. Update the available package information
apt-get update

3. Grab the kernel headers and install
wget http://rcn-ee.net/deb/raring-armhf/v3.8.12-bone17/linux-headers-3.8.12-bone17_1.0raring_armhf.deb
dpkg -i linux-headers-3.8.12-bone17_1.0raring_armhf.deb

5. install the dkms package and all its dependencies
apt-get install dkms

6. Install the rtl8192cu-tjp-dkms_1.6_all.deb package. Its going to fail, dont be concerned. We aren’t done yet!
dpkg -i rtl8192cu-tjp-dkms_1.6_all.deb

7. Fix the missing arch type
cd /usr/src/linux-headers-3.8.12-bone17/arch/
ln -s arm armv7l

8. Fix a problem with the timex.h header
vi /usr/src/linux-headers-3.8.12-bone17/arch/armv7l/include/asm/timex.h

change line 18 from

#include <mach/timex.h>

to

#include </usr/src/linux-headers-3.8.12-bone17/arch/arm/include/asm/timex.h>

9. Run make to build the driver

cd /usr/src/rtl8192cu-tjp-1.6
make

10. Copy the new module in to the kernel modules directory
cp 8192cu.ko /lib/modules/3.8.12-bone17/kernel/drivers/net/wireless/

11. Update the module deps
depmod

12. Blacklist the native drivers.
vi /etc/modprobe.d/blacklist.conf

add this to the end:

# Blacklist native RealTek 8188CUs drivers
blacklist rtl8192cu
blacklist rtl8192c_common
blacklist rtlwifi

13. reboot

Its OK to now remove the driver source under /usr/src/rtl8192cu-tjp-1.6 if you need to free up some disk space.

That’s it. Hopefully all the steps worked for you. If not leave me a message. Enjoy!

USB power fix for BeagleBone Black running Ubuntu

If you power your BBB using USB power you’ve probably found the board will power off unexpectedly and/or not boot from the SD. This change allows > 500mA through the mini-USB port.

Edit the uEnv.txt (located in /boot) and add this: i2c mw 0x24 1 0x3e

Your uEnv.txt fill will end up looking something like this:

uenvcmd=run findfdt; if test $board_name = A335BNLT; then i2c mw 0x24 1 0x3e; setenv mmcde…

To give credit where its due I found the fix here: http://archlinuxarm.org/forum/viewtopic.php?f=28&t=5486#p32325

Running Hamachi on a Beaglebone Black

*** I have created an updated Ubuntu image with Hamachi baked right in. Grab it from here ***

After hunting around for a long time I wasn’t able to find instruction on getting Logmein Hamachi working on the Beaglebone Black running Ubuntu 13.04. It turns out Ubuntu dropped support for a armel package that’s required to install some for the necessary dependencies to run armel on armhr hardware. Here is how I finally got it running.

If you want to save some time I have posted all the files to: http://www.gencarelle.com/public_files

1. Download Ubuntu 13.04 image.
http://s3.armhf.com/debian/raring/bone/ubuntu-13.04-armhf-minfs-3.8.12-bone17.img.xz

2. Download and install 7-zip.
http://www.7-zip.org/download.html

3. Uncompress Ubuntu image file using 7-zip.

4. Download and install Image Writer for Windows.
http://sourceforge.net/projects/win32diskimager/files/latest/download

5. Write the Ubuntu image to the SD memory module.

6. If the SD module is larger than 2 Gigs you should expand the root partition. I used gparted on Linux.

7. Boot the beaglebone with the boot button pressed – required to boot from SD. Login name and password is ubuntu. Use “sudo su” to switch to the root user. Password is ubuntu.

8. Update the Ubuntu package repository.
apt-get update

9. Install packages (and package requirements).
apt-get install –fix-missing –no-install-recommends lsb lsb-core aptitude libc6-armel libc6-armel-cross linux-libc-dev-armel-cross

11. Make a directory to hold the downloaded packages.
mkdir /root/packages

12. Change to the new package directory.
cd /root/packages

13. Download the armel libs.
aptitude download libstdc++6-armel-cross libgcc-4.7-dev-armel-cross  libgcc1-armel-cross libgomp1-armel-cross libc6-dev-armel-cross

14. There is no gcc-4.7-arm-linux-gnueabi-base package for this version of Ubuntu. Force Install the armel libs we have.
dpkg -i –force-all *.deb

15. Tell the system where to find the libs hamachi needs. Edit the /etc/ld.so.conf and add this path at the bottom.
/usr/arm-linux-gnueabi/lib

16. Update the library cache.
ldconfig

17. Download the hamachi package.
wget https://secure.logmein.com/labs/logmein-hamachi_2.1.0.101-1_armel.deb

18. Install the hamachi package. I got a python error during the install but it didnt seem to cause a problem.
dpkg –force-architecture -i logmein-hamachi_2.1.0.86-1_armel.deb

 You can now safely remove the /root/packages directory.

Beaglebone Black

I’ve been running an Ubuntu server in a VM at home for some time. The host system is a older XPS laptop running Windows 7. I can’t speak to quality of other XPS systems, but this one has not held up very well. Its now on it’s 4th and final motherboard. I believe most of (all?) the problems have been related to the system overheating.

The main thing I’ve been using this system for is to run a Hamachi VPN and a Squid proxy. Its a nice setup that allows me to browse the web and not have to worry about someone snooping in. However, its only a matter of time  before it dies again and a bit overkill.

Sooo, in my quest to find a small low power standalone Linux server I came across the Beaglebone Black. Its a bit more expensive than the Raspberry PI but the specs (see for a side by side comparison: http://roboteurs.com/beaglebone-black-vs-raspberry-pi/)  are slightly better suited for what I want to use it for.

For anyone who cares I ordered it from Adafruit. I’ve had good luck with them in the past and was able to order everything with no problems. Here is my parts and price list.

  • 1 x Miniature WiFi (802.11b/g/n) Module: For Raspberry Pi and more[ID:814]  = $11.95
  • 1 x Adafruit Bone Box – Enclosure for Beagle Bone/Beagle Bone Black[ID:699] = $19.95
  • 1 x Micro HDMI to HDMI Cable – 2 meter[ID:1322] = $9.95
  • 1 x BeagleBone Black[ID:1278] = $45.00

My first task will be to replace the OS with Ubuntu and then get Hamachi working.