Howto recompile a custom kernel for our SheevaPlug:
In this example we suppose that our pc has ip 192.168.1.220, and the network has dhcp.
First of all install packages needed:
apt-get install git-core build-essential
Then download the latest kernel from Marvell:
cd /usr/src
git clone git://git.marvell.com/orion.git
Then set default config for SheevaPlug:
cd orion
make ARCH=arm kirkwood_defconfig
And then run menuconfig for set our personalized features:
make ARCH=arm menuconfig
When done, save the config and compile it:
make -j4 ARCH=arm CROSS_COMPILE=../arm-2009q3/bin/arm-none-eabi- uImage
make -j4 ARCH=arm CROSS_COMPILE=../arm-2009q3/bin/arm-none-eabi- modules
make -j4 ARCH=arm CROSS_COMPILE=../arm-2009q3/bin/arm-none-eabi- INSTALL_MOD_PATH=.. modules_install
The last command copy our modules in ../lib, we make a tar of them and copy into sheevaplug:
cd ..
tar cvf lib_snapshot.tar lib
The new kernel is built in orion/arch/arm/boot/, we copy it in our tftp directory
cp orion/arch/arm/boot/uImage /var/lib/tftpboot
log in as root in sheevaplug, and copy the tar of modules:
scp 192.168.1.220:/usr/src/sheeva/compile/lib_snapshot.tar .
tar xvf lib_snapshot.tar
mv lib/modules/2.6.KERNEL_VERSION /lib/modules
now we need to connect the sheeva’s console cable to our pc and connect with a terminal emulator like minicom (for information on how to do this look at plugcomputer.org), stop the boot process and go to bootloader prompt. On our machine we need to setup a tftp server (information at http://plugcomputer.org), in this example 192.168.1.220 is the tftpserver ip.
Write this on bootloader prompt:
bootp
setenv serverip 192.168.1.220
tftpboot 0x2000000 uImage
setenv bootargs $(bootargs_console) $(mtdpartitions) $(bootargs_root)
bootm 0x2000000
Now our sheevaplug is booting with new kernel….
If it start 😉 run uname -a and look the kernel version!
Enjoy 😉
Test your sheevaplug with your new kernel, it is running well we can write the new kernel in flash, copy the uImage in any directory of sheevplug and flash it!
scp 192.168.1.220:/var/lib/tftpboot/uImage /tmp
flash_eraseall /dev/mtd0
nandwrite -p /dev/mtd0 /tmp/uImage
reboot and sheevaplug automatically start with new kernel 😉
Leave a Reply