The bifferboard is a low power (2W or so) headless computer which has a usb port, network port and serial among other things. This page deals with some of the software problems I had while trying to set it up as what is essentially a battery powered, mobile webserver on wheels.

The Setup

For the LURC, I installed the bifferboard (BB) with the Sunspot distro of debian, with the kernel in the onboard flash and a file system on a 4GB usb stick. The USB stick is connected via a 4 port powered hub in order provide spare USB ports for a 3G dongle and a webcam. I found the easiest way to flash the kernel onto the BB was with a 3.3V FT232 USB adapter from, but I have also done it with a home made MAX232 voltage converter. The python scripts for flashing the kernel are awesome, use them. Putting the file system on to the USB stick is as simple as formatting the stick to ext2 and copying it across, cp -a is your friend for doing this.

The BB only has 32MB RAM, and I discovered that debian has only just enough memory to run in it. I got around this by creating a 300MB swap partition on the USB flash disk - this is generally a bad idea because the frequent writing will quickly wear out the flash disk, but I have no other choice. I also blacklisted all the sound modules that were loading due to the webcam having a microphone, as well as replacing openssh with dropbear. In the future, I will do more to reduce the memory usage.

Huawei E122 3G Dongle

Yay, 3G dongle!...nowait...I wanna be a cdrom drive! The E122 is one of those dongles that has the drivers built in on a flash disk, to make it act as a 3G dongle requires USB_Modeswitch, which pretty much lives up to its name as soon as the device is inserted. This in combination with wvdial gets us connected. Beware, wvdialconf doesn't work all that well with the E122, and will default to the slowest speed of 9600bps - so run it and then go and edit /etc/wvdial.conf manually.

Dynamic DNS

The dynamic dns is set up with ddclient. ddclient seems to have a problem with the system clock being off, which is a real problem - the BB has no real time clock, so has no way of telling the time until connected to the internet. I got around this by writing a very short script to call ntpdate after a connection is made, but before ddclient runs.