Thursday, August 03, 2006

iPaq in action

Looking through my old stuff and found my Compaq iPaq 3660. I have installed Familiar Linux to it some time ago, version is 0.7.something. The system is nice, featuring GPE and Linux kernel 2.4.19. Indeed it's better than the default Pocket PC system. But could we get better system running on it?

The device itself is featuring 206 MHz StrongARM CPU, 64 MB RAM memory, 16 MB ROM, touch screen, great connectivity by USB, serial and infrared. So the starting situation is quite challenging. What I'm planning is to set a new kernel (2.6 series), Debian based system and minimal X with Matchbox window manager, featuring GTK+. And of course some test application. Am I able to fit this all to 64 MB? And if possible some extra free space would be nice for extensions and extra applications.

First starting from the kernel. Taking latest 2.6 series stable kernel, optimizing it for handheld use, removing futile drivers, etc. I want as minimal kernel as possible. Under a megabyte would be nice, just dreaming of it? Debian and basic libraries, uClibc would be nice, let's replace traditional libc with it. Saved some preciciuous megabytes. Other required libraries. X takes some megabytes, Matchbox is slight enough, but GTK+ taking again some more memory. Still speculating, only theorical level. The next step: implementing all this.

The best way to compile for ARM target is to use Scratchbox. We have qemu emulator support or we may use the ARM device with sbrsh to compile for ARM. For most compiling operations qemu is sufficient. Scratchbox has proper debian devkits and all required tools to make everything to work. Everything is set up, next I'll start compiling things. Debian provides precompiled ARM binary packages, so I'll just get the kernel and missing packages compiled, build image and flash my device. It'll take some time. Until that, please report your devices running Linux, and what kind of Debian based solution you would like to see on it?


Tuomas Starck said...

I will tip my hat if you achieve to squeez 2.6 kernel in under a megabyte! And why not use 2.4? Is there some serious problem with it?

Jouni Roivas said...

You'll be surprised. I'm building the kernel now to a embedded device. ARM kernel does not have too much options and does not need many devices. Unfortunately I'm having some problems compiling the kernel, but trying to get some numbers soon.

The 2.6 series has some advantages over the 2.4 series. There's nothing wrong with the older ones, but wouldn't you prefer new and shiny kernel over old one? And besides that new kernels has some features for embedded systems.

Jouni Roivas said...

Please read a new post about this:
The resulted kernel was 760 kilobytes compressed.