For those who follow my blog you no doubt know that I have been on a bit of a quest to put Linux on any box I can find lately. In a previous blog entry I had been playing with the Gumstix bitty board computer. It is cool but the challenge was gone, been there, booted that. So about three weeks ago I started messing around with the Soekris 4501 a 486 based single board computer. This one proved to be a bit more challenging..
I heard of the Soekris boards from a friend of mine Trent Hein, CEO of Applied Trust. Trent is good guy and co-author of UNIX System Administration Handbook, so he knows what he's doing. He has been using the Soekris boards for sometime and gave them a nod of approval.
The board is basically a 486 class computer about the size of an old 5.25 floppy (remember those ?) with a serial port, three 10/100 network interfaces, a compact flash adaptor that the 4501 treats like it's main drive, a couple PCI slots of various form factors, 64Mb of RAM, and various other interfaces. You can get the board with a small power supply and metal case for around $200, which is the configuration that I purchased.
As you read the website it becomes obvious that while the board can run about any operating system, it is left as an exercise for the student to convince it to do so. Basically Soekris is an engineering firm that builds great hardware. You bring the software.
I decided I wanted to run Linux so I immediately headed for google. For those that remember the Gumstix review the wiki to support that development system was looking pretty good at this point. I was truly off in the weeds with this setup..
The 4501 uses the compact flash adaptor as its main drive. The version I have does not have an IDE interface so that excludes the CDROM. Hmmm. No place to put the CDROM’s and no screen to see the install.
Basically it came down to two options. Either you mount the flash card on an existing linux box to format the flash and create the filesystem, or you network boot the soekris onto an NFS boot server. I decided the easiest way to go was to build up a development “box” that would serve as surrogate for the 4501. I had enough computer parts lying about to create my one-eyed-erector-set-spider-baby development system complete with video card, network, and a cool little IDE/compact flash adaptor.
The theory was I would mount the flash drive, install, and move the flash card to the 4501, viola..
After fumbling with several Linux distributions that insist on having swap partitions (not going to happen), I had pretty good luck with Redhat 6.2. RH6.2 is an older distribution but I finally did get it to install on the flash and run. But, it was kind of a mess and used way to much flash space. I stared with a 512Mb flash card as I knew I was going to suck at making it small. In the end I bailed on this approach because I found a more interesting solution at https://www.nycwireless.net
Nycwireless is a volunteer group constructing a community owned network of computers that share internet access over radio connections. Each access point is run independently by volunteers with their own equipment. In order to support their cause they have built open access points using the Soekris boards and a small Linux distribution called pebble that is based on the Debian distribution.
Jackpot.. I wiped the flash cards clean and headed off in that direction. After a few false starts (this kind of stuff is a world of false starts) I got my flash card formatted, installed the distro from a tarball on the nycwireless site, and was off to the races. I installed the full debian install on the one-eyed-erector-set-spider-baby development box along with a full compliment of compilers, etc..
I have to say it’s a very cool setup. You know, for a nerd. The hardware is very capable and the pebble Linux distribution is very well thought out. Linux and a custom app would easily fit on a 128Mb card or less. This would be a great platform for consumer firewalls, network appliances, and routers, as well as other personal appliance like projects.