Sunday, July 25, 2010

How to make a Linux Beagleboard Gadget Wifi-enabled

It's been a busy past few weeks, but thanks to Chris and Will, the Beagle Gadget using the BeagleBoard and the BeagleTouch, can now use Wifi - and it's seriously fast! This means that this is the first official Beagleboard-based wireless handheld Linux device... that's a lot of buzzy words, ha.

Here's a video of the Beagle Gadget communicating over wireless... and... browsing the web using ... drum roll ... Firefox. That's crazy. I remember the days when I was lucky to get a serial communication link going on my PalmOS Treo handheld, let alone wifi. But suffice to say, here it is, actually working:

Here's how I was able to do it:

Step 1: Format the SD card
I followed the instructions here, and made a formatted BeagleBoard SD card with the updated OS that include the kernel module to get WIFI working.
For the more hackerishly inclined, here's a direct link to the kernel image and to the rootfs image.
For reference, these links are also at the bottom of the BeagleBoard page :
Step 2: Attach the USB ethernet module
I used this USB Wifi module, so at least if you have this one, you're guaranteed to work...
I took it out of the case by cracking it open with a screw driver - not because it added anything, but just because it looks a lot cooler that way.
I plugged it into the small USB hub, but only because I also wanted to plug in a USB mouse and mini keyboard. Otherwise there wasn't really any particularly good reason to use the USB hub - I could have plugged the USB wifi module directly into the Beagle Board.

Step 3: Configure the wifi settings
There are also some more detailed instructions on the wiki for this next step...
Once it was plugged in, and Linux was booted up, I edited the file at /etc/wpa_supplicant/wpa-supplicant.conf. This file contains the parameters for the wifi adapter module, and mine looks something like this:
ssid="<your ssid here>"
psk="<your password here>"

Step 4: Turn on wifi

This is the easiest step of all... simply issue this command:

$ ifup wlan0

And then issue this command:

$ ping
$ ping


PS. If you're super lazy, I've put all the parts together in a big kit here and here.

And here's another video showing off Firefox actually browsing on the Beagleboard Linux Gadget:

No comments: