First, read the LART
page on the linux port.
As they say, you need to get a good combination of kernel and patches,
and these must match EXACTLY.
For your information I am using (grabbed from the links on the above
page);
linux-2.4.4.tar.bz2
patch-2.4.4-rmk3.gz
diff-2.4.4-rmk3-np1
and also a file from there named
em-patch-fix-fork
So get all these in a clean directory such as /usr/src/arm and unpack
the kernel source code;
cd /usr/src/arm
tar jxf linux-2.4.4.tar.bz2
(note: if you downloaded a .gz file instead of a .bz2 then do
a tar zxf instead of jxf)
Now apply the patches (in this order);
cd linux
gzip -dc ../patch-2.4.4-rmk3.gz | patch -p1
cat ../diff-2.4.4-rmk3-np1 | patch -p1
cat ../em-patch-fix-fork | patch -p1
(note: the second patch "diff" was not gzipped so I use cat.
If yours ends in .gz, then use gzip -dc instead of cat)
If there are any errors at all during the patching then you have got an incompatible set of sources (or some other mistake) and you MUST stop here because it WILL NOT WORK.
Still in the /usr/src/arm/linux directory, set up the kernel ready to
compile for a LART with;
make lart_config
If you have a LART you can skip this box;
If your hardware is LART-like then it's good to start with the
LART kernel configuration. You can then tailor the kernel source
to your liking. Most of the files you will want to change are found
in the directory;
/usr/src/arm/linux/arch/arm/mach-sa1100 And deal with hardware specific issues. There is also some hardware specific code in the directory; /usr/src/arm/linux/include/asm but this is less likely to be changed- and it's not generally advised to change things in there these days. Some LARTisms from the first directory include the definition of DRAM memory areas in lart.c and the LED configuration in leds-lart.c. These might want to be changed by people who have a LART but have expanded it. |
Next, simply type;
make oldconfig
and if there are any questions, accept the default answers.
Then type;
make dep clean zImage
make modules
(there shouldn't be any)
Copy the zImage (gzipped kernel) from there to your working directory,
uuencode it and upload it to blob.
cp /usr/src/arm/linux/arch/arm/boot/zImage /data/LART
cd /data/LART
uuencode zImage zImage > zImage.uu
./uploadkernel zImage.uu
Assuming you are using my upload script
based on the Aleph1 upload script.