Real Programmers/ Hack/ IA-1
Google site:

realprogrammers.com

GNU/Linux on the Compaq IA-1 Internet Appliance

This is a complete step-by-step "How To" guide to modifying a Compaq IA-1 a.k.a. MSN Companion device so that it runs GNU/Linux with a full GUI [screenshot 60K].

"News"

Since I wrote this I've left the US and am in the midst of a relocation. My IA-1 is packed up & in transit and I haven't had a chance to play with it since. If this info in here isn't enough for you my best advice is Google and the site of another IA-1 hacker, http://www.php.net/~rasmus/.

Is it worth it?

I'm assuming at this point you already own the device or are trying to decide if you want to take the plunge and get one for this kind of hack. The short answer to this question is, it: only costs only $99; has an AMD K6-2 266MHz CPU i.e. a PC architecture thus life is made much simpler; has an external CompactFlash slot so booting a new OS is remarkably easy. Not only that, pretty much all the software is ready for download so there is relatively little work for the end-user at this point. Go for it!

If you want to learn about the Compaq IA-1, see the links section below.

What do I need?

You will need: That's it! You will not lose the IA-1's original MSN functionality up until you overwrite the IA-1's internal Flash, which is not required. In other words, you can enjoy X, networking, etc and still have the unit function as before, just by removing your CompactFlash card and re-enabling booting from the internal Flash (a.k.a. Primary IDE).

What do I do?

The steps involved are:
  1. Obtaining a disk image of a bootable system: ia-linux-16mb.img (this is on an external site). This is a modified JAILBAIT image. JAILBAIT is the core of this effort, a Linux distro that fits on a 16MB Flash ROM.
  2. Writing that image to the CompactFlash card: dd if=ia-linux-16mb.img of=/dev/sda. Note: /dev/sda is my USB CompactFlash card reader which appears as a SCSI drive -- use the appropriate device for your card reader. I used a 20MB card and it worked fine. (There is a way to do this from DOS; I'll write that up too if anyone asks.)
  3. Insert the CompactFlash card into your IA-1. Make sure it's snuggly in.
  4. Making the IA-1 boot from the CompactFlash card:
    1. Try step 2. first, but on some units you have to reset the BIOS memory in order to be able to get access to the BIOS setup utility. This involves a slightly fiddly disassembly which I have put on its own page: disassembly and BIOS reset (contains about 600K of images).
    2. Hold the Compaq key down during the boot phase to bring up the BIOS setup.
    3. Using the left & right arrows at the far bottom-right of the keyboard (not the two intended for browser-back/forward under the comma and period), select the Storage menu, and set Primary IDE Controller to Disable [screenshot, showing it prior to Disable].
    4. Accept this change with F10. No F10 key? Oops! Hint: it's the Compaq key.
    5. If you're curious, the F1 key (help) is the Instant Messenger key, the iconic person below the butterfly (whatever that does..).
    6. Back under Main select Save Changes and Exit.
    7. After POST (Power-On Self Test) There should be a message that (only) Drive 3 is enabled and it should match the size of your CompactFlash card, perhaps a megabyte less.
  5. At this point the machine will reset and, with any luck, you'll see a LILO boot sequence. Catch it when it prompts for boot: and enter hdb single to boot to single user. (hdb is the LILO label for which kernel to boot, and is nothing to do with which drive it's coming from). I noticed I had to do this a couple of times and occasionally got some random errors or hangs. Removing power and replugging the Flash card seemed to help. Apparently this may be to do with USB devices being plugged in during boot (I had a USB-to-Ethernet adapter and a MS Natural keyboard).
  6. The boot sequence will end with a bash prompt. Remount root read-write: mount -o remount,rw / and then passwd to set root's password. exit will continue with the rest of the full boot in runlevel 2.
  7. Login as root and startx.
  8. Start apps by right-clicking on the desktop. Marvel at X and grin broadly.
The following steps are optional, and depend on your hardware choice:

What's Next

I'll write about: Please feel free to mail me: ia1(at)paulm.com

Credits

Most of the work was done by Jeff Baitis with his JAILBAIT distro, and Michael Rothwell for getting it to work with the IA-1. I hope to be able to add to this with a more recent kernel and driver support. Watch this space...

Useful Links


All non-user content and code Copyright © 2000-2006 realprogrammers.com / Paul Makepeace. Comments & feedback welcome!