Ubuntu on the BeagleBone with Userland SPI

After a couple of months of searching, reading, patching, and compiling, I finally have managed to get a build of linux working on the BeagleBone with userland SPI that you can access through the file system.

The path was paved for me by an excellent tutorial by Brian Hensley on how to get the BeagleBone’s big brother, the BeagleBoard xM running with userland SPI. I figured out how to modify his instructions for the bone and combined it with a patch by Craig Berscheidt I found on the BeagleBoard mailing list (which I had to re-create for the 3.2 kernel). I’m going to be working on getting a full tutorial up, but since that may take me a week or more I figured I’d first share an image of my working system. Just write this image to a 4gb micro SD card as you would any other disk image and you’re good to go (These directions on how to write disk images for hacking on the Nook Color should point you in the right direction if you haven’t mucked about with disk images before). The username is ‘ubuntu’ and the password is ‘temppwd’.

ubuntu-beaglebone-spi.img.tar.gz

Talking to the BeagleBone with OSX 10.7 (Lion)

Recently I became the proud owner of a BeagleBone. In case you’ve never heard of it, a BeagleBone is a 700mHz ARM Cortex computer that can fit in an Altoids tin. It has gobs and gobs of ways to talk to the outside world including USB, Ethernet, and over 60 GPIO pins! It comes complete with a micro SD card loaded with Angstrom Linux and lots of nice software goodies including Node.js and python.

When I first got the ‘bone I plugged it into my network and quickly discovered I could just SSH to beaglebone.local and I was off to the races (Gotta love ZeroConf networking a.k.a. Bonjour!). The problem was that this setup required both a handy ethernet plug and a power outlet, neither of which are always available. That lead me to attempt to use the USB mini interface to handle both power and data. So, I installed the required FTDI drivers and hooked the ‘bone up to my trusty MacBook Pro that’s currently running OSX 10.7.2 (Lion). And… nothing happened.

After some searching for a while I eventually found information on a process that works (Big thanks to everyone in that email thread who did the dirty work!). Unfortunately, this process turned out to be somewhat convoluted, so I wanted to document it here for any fellow BeagleBone users wishing to connect in this manner.

The problem is with the FTDI drivers that tell your Mac to treat the BeagleBone’s USB interface like a serial port. The FTDI driver that ships with the BeagleBone doesn’t play nice with Lion, and the most up-to-date FTDI driver doesn’t have the right configuration to work with the BeagleBone. So what do you do? You mix and match! Here’s how you do it:

  1. Download the 64-bit FTDI drivers for OSX
  2. Install the drivers
  3. Download this Info.plist file extracted from the BeagleBone FTDI driver
  4. Open Terminal.app
  5. Hop into the driver’s installation by typing: cd /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/
  6. Backup the old Info.plist by typing: sudo mv Info.plist Info.plist.old
  7. Copy the plist file you just downloaded (assuming it’s in your download folder) by typing: sudo cp ~/Downloads/Info.plist .
  8. Set the correct permissions on the file by typing: sudo chmod 644 Info.plist
  9. Restart the driver by typing: sudo kextutil ../../FTDIUSBSerialDriver.kext

Now just plug in your BeagleBone, wait about 10 seconds for it boot, and type:

screen /dev/tty.usbserial-*B 115200

Then hit Return and you should be connected directly to your ‘bone.

Reboot

Yet again I’m rebooting my blog. I finally came to the realization that my sporadic posting schedule means using a service like Tumblr is a much better choice than self-hosting. I simply wasn’t keeping up with WordPress updates and every few months my blog would get compromised. Ugh.

With the exception of a couple of articles that got some press on HackerNews there wasn’t much up on the last couple versions of the blog worth saving. That being said, if you’ve ended up here looking for something in particular, let me know and I may be able to dig it up out of the old database(s).

My hope is to use this blog to document all of my various non-work projects, which these days include creative parenting, woodworking, electronics, and CNC machining (just to name a few!)