Linux on Dell Axim

For a long time I wanted to try to program some small and intelligent device. First I was looking at microcontrollers, but then I bought the Dell Axim X5 handheld, and the question "what to try" was resolved.

Of course, I never was going to use the handicapped windows CE - ugly and functionless, that comes with it. I was going to run Linux on it, that's how I got involved in the "Linux on all PDAs" project, the core of the project is the handhelds.org site.

HaRET helper project

First of all, I had to learn the PDA architecture. Having quite a lot of experience with the PC architecture (and with home computers before that), the learning process duration was just about a month. To have a better understanding of how the PDA hardware works, I wrote a small tool called HaRET - the Handheld Reverse Engineering Tool. It will allow you to connect to your PDA (via a normal telnet command) and issue different commands such as dump memory, write memory, check which GPIOs change for some period of time and so on.

Axim boot loader

Then using HaRET I've dumped the Axim loader (the first 256k of ROM) into a binary file and disassembled the entry point. Not to my surprise (I was expecting something like it), I've found that it checks for a magic key combination, and if it is pressed, it launches something different from WindowsCE. Here is the magic key combination: ScrollPush + Contacts + Reset.

ScrollPush is the button activated when you press the up/down scroller until it clicks, Contacts is the button immediately to the left of joypad, Reset is the almost unnoticeable button right below the Record button on the side of the PDA (I usually press it with the finger, to avoid piercing it with the stylus when used a lot).

If there's a CompactFlash memory card inserted, and you have in the root directory something with an .IMG extension, it tries to flash it into the ROM. That is, rename A04H-06140301.RIS (or whatever you got) to, say, A04H-06140301.IMG, copy it to the CompactFlash, insert it into the PDA, press the magic key combination - and voila! it's flashed.

This means that it is possible to flash something different into the ROM without fearing that something will go wrong - we'll always be able to revert back to windows CE. In fact, as soon as Linux will work stable enough (and will support most features that currently don't work) on the PDA, I'm going to start working on a loader that will start Linux directly from ROM.

Current project status

The current status of Linux on Dell Axim project can be found here.

Also you can download the latest proof-of-concept release here.