Compiling the Kernel
Howto compile and install the Linux kernel for the Zaurus.
Acquiring the source
First thing of course is to get the kernel source (~22MB). A local copy is kept [here | http://www.oesf.org/howto/downloads/linux-sl5500-20020910.tar.bz2], but the [Sharp Japan's site] (seems to have moved to [here]) should always be checked to see if they have released anything new.
Unpack the archive using your favorite tool/commands.
$ bunzip2 linux-sl5000d-20020318.tar.bz2 $ tar xf linux-sl5000d-20020318.tar
Configuring the source
Go into the newly created linux directory and run make menuconfig.
$ cd linux $ make menuconfig
The configuration for the 5500 and the 5000D are stored within the kernel source and should be loaded. Choose "Load an Alternate Configuration File" and Input
"arch/arm/def-configs/sl5500" for the SL-5500 and "arch/arm/def-configs/sl5000d" for the SL-5000D.
Make whatever changes to the kernel config that are desired. (Such as enabling Wireless Extensions.)
When done changing configuration options, Select "Exit"
Answer "Yes" to "Do you wish to save your kernel configuration?"
Compiling the source
Make sure the cross-compiler (arm-linux-gcc) is in the path at this point
$ export PATH=$PATH:/opt/Embedix/tools/bin
And go ahead and start to compile the new kernel.
$ make dep && make clean && make zImage
Once done there should be a file called zImage in arch/arm/boot which is the newly compiled kernel. If any modules where added to the new kernel config, compile them:
$ make modules
You will have to copy the modules into Zaurus's filesystem.
Installing the kernel
To install the kernel simply place the file by itself on a cf card and flash like normal, following the Upgrading the ROM howto, but only with that one file (zImage) on the cf card and nothing else.
Attempting to install kernels other then the one suplied by Sharp are likely to cause the binary-only modules to fail such as the SD module.
You've only got 1MB of space to store the new kernel, so it had better fit in that size.