This is a snapshot diff of my development tree. So, no warranty what so ever, like usual. Don't hesitate to comment, fix bugs, or even send patches to me if you feel like it! :-) ----- This is quick and dirty... just to give you some clues if you need them. Step 1: Grab a fresh 2.2.1 source archive and untar it tar -xzf linux-2.2.1.tar.gz Step 2: Grab the ARM patch for this kernel from the ARM Linux FTP site and apply it gunzip < patch-2.2.1-rmk2.gz | patch -p0 Step 3: Apply the SA1100 patch gunzip < patch-2.2.1-rmk2-np1.gz | patch -p0 Step 4: Configure the kernel cd linux make config Step 5: Make the kernel binary. You should have your cross compiler all set for "arm-linux" target. make Image (for the normal binary) or make zImage (for the compressed image) The following steps are very similar to the instructions provided by the Itsy team for the original Brutus distribution (http://www.research.digital.com/wrl/itsy/linux/linux-distrib-notes). Step 6: You need angelboot to load the kernel and a ramdisk image. A version of angelboot is provided in angelboot.tgz where you found this patch. tar -xzf angelboot.tgz cd angelboot make cd .. Step 7: You need a ramdisk image. You may use the one provided with the original Brutus Linux distribution. The image used is specified as "otherfile" in the opts file from the angelboot.tgz archive. The file can be gzipped. It will be loaded along with the kernel image in the next step. Step 8: Load and start the kernel. I provided the "go" script in the angelboot.tgz archive which makes use of angelboot with the right options for the 2.0.35 patch. These options are NOT working with the 2.2.x patches. The following points are important: load=0xc0008000 entry=0xc0008000 and the linux/arch/arm/boot/Image file must be used from the "go" script file. Dont use vmlinux or such. That's it! Have fun! Nicolas Pitre nico@cam.org nico@visuaide.com