To compile kernel and vivi for our target device (mini2440) we need to set up a cross compilation environment on our host system.The trick is that we generate binaries for the target(mini2440) on our host system.
So frst we need some packages installed in our system they are
sudo apt-get install build-essential make ncurses gcc g++ libncurses5 libncueses5-dev
After that we need to download some packages
ARM Linux gcc – http://www.friendlyarm.net/dl.php?file=arm-linux-gcc-4.3.2.tgz
Cross compiler toolchain – http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/cross-2.95.3.tar.bz2
Linux kernel source – http://www.friendlyarm.net/dl.php?file=linux-2.6.32.2-mini2440_20110413.tgz
Vivi source – http://www.friendlyarm.net/dl.php?file=bootloader_20090728.zip
Now setup cross compiler toolchain and Arm gcc on our system
Configuring cross compiler
tar -xvf cross-2.95.3.tar.bz2 sudo mkdir -p /usr/local/arm sudo mv 2.95.3/ -v /usr/local/arm/ ls /usr/local/arm/ export PATH=/usr/local/arm/2.95.3/bin:$PATH echo $PATH
Configuring Arm gcc
tar -xvf arm-linux-gcc-4.3.2.tgz sudo mv ./usr/local/arm/ /usr/local/arm/ sudo mv /usr/local/arm/arm/4.3.2/ /usr/local/arm/ export PATH=/usr/local/arm/4.3.2/bin:$PATH echo $PATH
On doing echo $PATH we can see if path variable is set or not
Now compile vivi to generate binary
extract vivi cd bootloader_20090728/vivi/ cp smdk2440 ./.config make menuconfig
You may get a error like this
error-Preparing scripts: functionsYour lxdialog utility does not exist
To fix this error we need to give permission to lxdialog
cd scripts/lxdialog/ sudo chmod +x lxdialog make menuconfig Load an Alternate config file make vivi sudo ../../usbpush/usbpush/usbpush ./vivi
The vivi binary will be generated now on the folder ,Now using usb push utility we can push it to mini2440
Next compiling Linux kernel
cd linux-2.6.32.2/ cp config_mini2440_n35 ./.config cat .config |grep CPU_S3C2440
Check whether the out put is Y
make menuconfig
An error may occur like this
error –include/linux/compiler-gcc.h:86: linux/compiler-gcc2.h: No such file or directory
make mrproper make menuconfig check - system type-->sc32440 machines-->Friendlyarm mini2440 dev board make make zImage
make mrproper will eliminate that error and will build necessary dependencies.If everything goes correct you will get an output like this
The zImage is available in this path arch/arm/boot/zImage
Using usbpush push it to mini2440
sudo ../usbpush/usbpush/usbpush arch/arm/boot/zImage