Didj 2.6.31 Kernel
This tutorial will take you through the basic steps to get the 2.6.31 Kernel (LF-Linux-2503-20110602-1237.tar.gz) loading on your Didj. This will only deal with the kernel, and will be set up to run completely from SD, rootfs included.
Leapster Explorer Source (LF-Linux-2503-20110602-1237.tar.gz)
Here we will configure the kernel for compiling, currently if you are using Lightning Boot 1.4 to 2.1 there is a problem with the bootloaders framebuffer and where the kernel is loaded. Two ways currently around this, create a kernel < 2mb or boot it manually with uboot and a lower address. This tutorial uses the < 2mb method, which is easy to achieve after all the modules for things Didj doesn't have are removed.
After getting your build environment set up, we'll load a default config file:
Next edit .config, you can do this with a text editor, or make menuconfig, this is all one line:
CONFIG_CMDLINE="mem=14M mlc_fb=0x00E00000,0x01200000 root=179:02 rw rootfstype=ext3 rootdelay=1 debug=1 init=/sbin/init console=ttyS0,115200 ubi.mtd=Brio ubi.mtd=prg_Brio ubi.mtd=Cartridge ubi.mtd=EXT ubi.mtd=prg_EXT" ubi.mtd=prg_Brio ubi.mtd=Cartridge"
You will also need to disable a few things, such as Touch Screen, Acellerometer, Camera, USB Host, etc. You can check the example config file for all the options.
Next we need to change the Mach Type in /linux-2.6/arch/arm/tools/mach-types the number has changed to 2028 - but the boot loader only knows about 1235:
#zir2412 MACH_ZIR2412 ZIR2412 1235 didj MACH_DIDJ DIDJ 1235 ... ... #didj MACH_DIDJ DIDJ 2028
Also edit arch\arm\mach-lf1000\include\mach\mlc.h
#define MLC_MAJOR 251 #define MLC_LAYER_MAJOR 250
This will enable the mlc driver to work with /dev/mlc
Then just run the install script
zImage will be found in the path defined with $TFTP_PATH in your Environmental Variables