My Progress

In working with the AquaPad, I notieced that the hardware is pretty good, but the software sucks. It is also a pain in the butt to upgrade properly, since FIC has essentially washed their hands of the product. In order to use it, I have decided to put out my own distribution of Linux and some bundled software so I can have a working machine. Also, I am going to host it here so that others can benefit from the work Ido.

Want to help? Let me get a booting base first, then I'd love to get any assistance that anyone would be willing to offer.


  • Upgrade to Linux 2.6.x
  • Build everything from source so that I can ensure optimum speed, and maybe upgrades will be nice and painless as well
  • uClibc (that would be very nice, but it's a VERY difficult goal)
  • Have a shell that is actually useful
  • Install a newer icewm or another window manager (matchbox?)
  • Change the partition system around (yaffs/yaffs2/jffs2 for config?, cloop for root?)
  • Upgrade mozilla to firefox
  • Better handwriting recognition
  • Speech synthesis (at least see if it is a good idea)
  • Touchscreen drivers (might be the hardest part of them all)
  • Better USB hotplug support
  • ssh and other useful network tools
  • If I get really creative, perhaps Linux BIOS could speed things up even more!
  • I know that this isn't exactly what I want to do, but it might be fun to play with BartPE and see if I can get some version of Windows to work.

Current Status

I installed Gentoo to the microdrive and compiled enough to get it to boot. I need to test my new kernel line (added noapic) and install/upgrade several packages. Once that boots, I'll be on my way to

Useful Information

The Linux from Scratch cookbook with a few pointers from the Cross Compiler Mini HOWTO, you can build your own distribution. Also, you might want to take a hard look at asmutils.

My Midori card has executables that were compiled with --target=i386-pc-linux-gnu. The Linux kernel uses -mcpu=crusoe and if that is not supported, it uses -mcpu=i686 -falign-functions=0 -falign-jumps=0 -falign-loops=0. When I specify the CFLAGS for Gentoo, I also add -Os -pipe -fomit-frame-pointer and I change -mcpu=i686 to -march=i686 which would mean that the code won't run on non-i686 machines, but that's fine for me since I am compiling things on my i686 desktop machine or on my tablet.


I have a nearly-working install of Gentoo.
Received 8 gig CF microdrive. It's pretty.
Ordered an 8 gig CF card from eBay. Now I will just recompile everything for the tablet on the tablet. I will likely start with Gentoo and see what happens. I will also be releasing a bootable CF image with FreeDOS so you can flash your bios easier.
I've started looking at to set up my initial build environment. I've tried to merge and the Linux From Scratch cookbook, and I've gotten very close (only waiting for the compiles to finish). binutils, first pass gcc, and glibc all build just fine. Waiting for the second pass gcc. If I ever figure out how to do this, I'm going to add it to this web site. It's a royal pain, but and LFS have helped tremendously.
Compiling glibc before gcc... Gcc doesn't want to compile first; probably due to me specifying --target, thus creating a cross-compiler.
Binutils compiled fine (first pass).
I've started over. In the meantime, if people wanted to get things working like I used to have, there are a few links I've collected. At this point, I have uClibc (development system with gcc and binutils), Linux 2.6.5, Busybox 1.00 pre-9, and LILO 22.5.9 (pre-compiled).
With all of the distributions out there, I should be content to just install Debian or something on the tablet. I'm not. I want the latest, greatest, and most optimized for my tiny processor and 128M RAM.
I took a distribution based off of Knoppix and put it on a CompactFlash card with these easy steps. With it, I was able to use a USB keyboard and mouse, but not the audio and not the touch screen. In fact, when I touched the volume up/down buttons, the computer crashed.
Even with just the most basic system on the tablet, I still am using 83 megs of space on the CF. That will go down when I prune away modules that are unlikely to be ever used – about 74 megs is just modules. It also could easily get smaller if I use cramfs, cloop, or one of a dozen other compressed filesystems. Did I mention that it boots and automatically loads drivers for stuff that you stick in (like keyboards)? I'm so happy.
Got udev set up finally. I feel like such a moron. At least things are now going a tiny bet better for me. Hotplug and module dependencies were also equally silly once I figured out the thing I was doing wrong.
Since I really have nothing to do this weekend, because I strongly want this project complete, I'm devoting the day to it.
Giving it another go. Started installing udev.
Hotplug doesn't wanna work for me still. No love. I do have a shell though.
Minor tweaks.
Working on some init stuff, which modules to load, and tweaking the kernel. I really need hotplug so I can get a keyboard running when I plug one in.
Got it to boot. Built some installation scripts to make things easier. Life is good. Need to remove PS/2 support from the kernel and do other optimizations for size. Need to get /etc/init.d/rcS script for system initialization. Need to remove files in /dev to only the ones that I need. After that, I hope to get hotplug going so I can use my keyboard. Then X and finally I shall conquer the world!
In the 45 minutes I spent on the project today, I created an install script to quickly get packages installed, and I downloaded and compiled modutils. Just need to write a lilo.conf and get lilo installed on the CF card. Hopefully I will have a bootable linux version after that. I still need a ton of stuff, but if it boots, then I have the major hurdle taken care of.
The kernel compiles, things are rolling smoothly. Just figured out that I need to install modutils.
Gave up compiling gcc with uClibc. Binutils worked like a charm. Switched to use the uClibc development environment. Thank goodness I'm on an i386-compatible system and I'm compiling for an i386-compatible system. Got the kernel compiled, busybox compiled, and working on making a bootable image. Supposedly, once it boots and gets to a shell, everything is downhill.
Still no luck. I've downloaded the root fs image from uClibc, which contains everything I need to build ... supposedly. The image is 70+ megs, meaning it is WAY too big for the trimmed down Aquapad image that I want, but it might get me going.
Wiped out what I did so far. Recompiled binutils (a snap). Finally got uClibc working (had to specify Generic i386 as processor instead of Crusoe). Now I should just tweak the config file to get the libs and include files installed in the right spot and I'll be off, working on gcc!
Been really sick. Getting better. Trying from scratch -- I think more research is in order. Wiping out current stuff, recompiling binutils (easy).
Trying again, using the includes and libraries from the current install, which might just work. We'll see.
Still trying to compile gcc 3.3.3
Compiling gcc 3.3.3
Compiled the cross-compiling binutils 2.14.
Installed Linux on a new machine that I will be dedicating for the project. Debian, testing.
The real problem is not whether machines think but whether men do.
– B.F. Skinner
Tyler Akins <>
Legal Info