Your own custom kernel can be created using the cross compilation environment. "Cross compilation" means using an i386 desktop computer to compile code that will run on the ARM computer. The cross compiler will also allow you to compile your own applications for the ARM system. To set it up, go to http://www.aleph1.co.uk/armlinux/book/x1768.html for some (now slightly out of date but still functional) info on available toolchains. I like the emdebian one best as the install is painless and operation is seamless.
Using the cross compilation environment described above, you can create your own kernel. To compile a custom kernel, you will need to download a kernel tarball - see http://www.aleph1.co.uk/armlinux/book/kernelcompile.html for some generic info on kernel building. You will need the base source code for the kernel, AND the ARM patch (rmk's), e.g., patch-2.4.18-rmk6.gz. The kernel source code can be obtained HERE, and the ARM patch can be obtained HERE.
In addition, get the 5MX patch for the kernel from http://linux-7110.sourceforge.net/files/Kernels/5mx_and_Revo/ - look for a file like: "linux-2.4.18-rmk6-5mx4.patch.gz" (this one would be for the 2.4.18 kernel, of course). Be sure that the kernel source, the ARM patch, and the 5MX patch all have the same version number - version 2.4.18 is used as an example here.
Assuming that you have downloaded these and copied them to a directory like
execute the following commands:
tar xvf linux-2.4.18.tar
patch -p1 < patch-2.4.18-rmk6
patch -p1 < linux-2.4.18-rmk6-5mx4.patch
These commands will patch the Linux kernel for use with the Psion Series 5MX.
You must now configure and compile the kernel. To configure it, execute:
[uk, us, or de keyboard types are now set by kernel configuration]
make oldconfigthen one of:
CROSS_COMPILE = arm-linux-at about line 24; this should occur by default..
When you have done this, execute these commands to make the kernel:
make dep [NOT bzImage or zImage - kernels must be uncompressed.]
This command will create a kernel image named "Image" in arch/arm/boot/ . This kernel image should then work as the kernel image to be loaded by ARLO.