Linux on Palm Tungsten E

The kernel

Which sources to choose ?

When it comes to the Linux kernel, there are many alternatives. For example, many PDAs running Linux use a heavily-patched version of the Linux kernel (such as uClinux for example). Since the OMAP processor is a full-featured CPU, and since we're not that short on memory (32 Mb of RAM is far enough), we decided to use plain vanilla kernel (available from the well-known kernel.org website). However, it appeared that there was an OMAP-development tree being maintained. This tree is pushed up to the mainline kernel, so it doesn't really matter which one we use. The later just let us benefit earlier from the latest patches.

How to build a kernel image ?

Unless you're working on an ARM-powered machine you'll first need to install a cross-compilation environment. Basically the idea is to build a specific version of GCC that will run on your platform (say PowerPC or x86 for example) and that will produce ARM binary code. Once you've installed this environment, you should have a lot of binaries starting by "arm-linux-" somewhere in your $PATH. When you're done with this, just put "ARCH=arm CROSS_COMPILE=arm-linux-" before any "make" invocation.

Booting your kernel image

Once you've built your kernel image, just fetch the file arch/arm/boot/Image, and copy it into the garux directory. Then cd to garux root folder, and "make". You'll obtain a nice .prc containing your image plus its associated bootloader. Please just make sure you're Image is not bigger than a megabyte, otherwise Garux may have problems booting it.

What we're working on

The most important part now is to get some output out of the kernel. That is extremly important, since we cannot debug the kernel nor the bootloader till we haven't figured this. An easy way to do it is to use a serial console. But here is the big problem : the Tungsten E doesn't have such an output :-(. Here are the choices we have :