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
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.
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
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 crosstool.sh to set up my initial build
environment. I've tried to merge crosstool.sh 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 crosstool.sh and LFS have
- 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
- 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
- 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
- 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
- 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.