Compiling a kernel the boot

The source

The source consists of the celinux source and the skytone ingenic+XIP patches. They are all available now. Download the celinux source here, and the skytone patches celinux-skytone-update-kernel-0902.tar.bz2 or from the skytone site.

Your compile environment

Make sure you are running debian GNU/Linux with the following in /etc/apt/sources.list:
deb http://www.emdebian.org/debian/ unstable main
And run the following:
sudo aptitude install uboot-mkimage uboot-envtools gcc-3.3-mipsel-linux-gnu binutils-mipsel-linux-gnu
Yes, you need gcc-3.3 or lower for a 2.4 kernel. 3.3 is the lowest is the cross compiler.

Let me restate that: gcc-3.4 is over, it's out of time. You REALLY REALLY need 3.3 . (Big warning because I waisted 2 hours with the cross compile, only to find out it was just the wrong (3.4) compiler).

Prepping and compiling the source

tar xvjf celinux-040503.tar.bz2
cd celinux-040503
patch -p1 < ../celinux-skytone-080902.patch
# Fix the cross compiler. A better way is to put that in the environment
sed -i 's:mipsel-linux-:mipsel-linux-gnu-:' Makefile
cp CURRENT_CONFIG .config
make oldconfig
make dep
make uImage

Booting: the network way

cp the resulting uImage to your favorite local tftp server. Type the following on the uboot prompt on the serial console:
dhcp
setenv serverip 192.168.0.148
tftpboot 0x80600000 /boot/uImage      
bootm

Booting: the serial way

Because I hate to explain how you have to install a simple tftp/dhcp server or answer any such questions wink
loady 0x80600000
# start your ymodem upload and wait until it is finished
bootm

Booting the SD-card way

Make sure you have an SD-card with a first partition of less than 32MB, make it 16 or so.
SDCARD=/dev/sdb
fdisk ${SDCARD}  # make the first partition at *most* 32MB, better to take less like 16MB
mkfs.vfat -F 16 /dev/${SDCARD}1
mount /dev/${SDCARD}1 /mnt
wget -o /mnt/uimage http://projects.kwaak.net/twiki/pub/Epc700/CompilingAKernel/uImage
umount /mnt
Put the SD card in your minipc. Turn it on while pressing Fn+LeftShift+LeftCtrl. Of course, once you have a small partition or SD card with vfat, you can also copy the image using your minipc to the SD card. No need to take it out anymore. Somehow this all seems very convenient to me. Like mounting the first partition of the sd-card under /boot, and the second under / . smile .

WARNING: there is also a key combination that makes it flash the uimage file straight to the linux partition. Do not play with key combinations unless you have a serial console.

Showing off

/ $ cat /proc/version
Linux version 2.4.20-celf3 (ard@bookje) (gcc version 3.3.6 (Debian 1:3.3.6-15)) #1 Thu Sep 4 23:46:48 CEST 2008

Limited to just showing off

Get my uImage, and follow the booting sequence.
Topic attachments
I Attachment Action Size Date Who Comment
elsebz2 celinux-skytone-update-kernel-0902.tar.bz2 manage 2526.4 K 04 Sep 2008 - 09:14 ArdVanBreemen  
elseEXT uImage manage 1003.3 K 05 Sep 2008 - 02:07 ArdVanBreemen Test kernel
Topic revision: r13 - 18 Dec 2008 - 10:26:39 - ArdVanBreemen
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback