How to Build the Letux Kernel from Source
Introduction
This describes briefly how to compile the hardware validation kernel from git source. You need to have some ARM cross compiler installed on your host.
Details
Get sources by:
git clone git@github.com:goldelico/gta04-kernel.git
cd gta04-kernel/
git checkout neil-3.7-plus
Build:
export ARCH=arm
export CROSS_COMPILE=arm-angstrom-linux-gnueabi- # adapt to your toolchain
make distclean
make gta04_defconfig modules
make menuconfig # only needed if you want to change the default configuration
make uImage LOADADDR=0x80008000
make modules
export INSTALL_MOD_PATH=`pwd`/install
mkdir install
make modules_install
cd install/ && tar czvf ../modules.tgz .
The result will be the file arch/arm/boot/uImage. Copy this file to the FAT partition of your SD card.
Patches
Patches should follow these guidelines.
Cross compiling toolchain
Under Debian, the most simple way to set up a toolchain for cross compiling for arm is by using the emdebian cross-compiler.
apt-get install emdebian-archive-keyring
echo deb http://www.emdebian.org/debian/ squeeze main >> /etc/apt/sources.list
apt-get update
apt-get install gcc-4.4-arm-linux-gnueabi
export ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
Booting with devicetree
Devicetree updates for gta04 are pushed in wip-gta04-devicetree branch.
If you want to hack or test devicetree booting for gta04 follow steps:
checkout wip-gta04-devicetree:
git checkout -b wip-gta04-devicetree origin/wip-gta04-devicetree
and then follow Build procedure described upper to build uImage. When uImage is build call with export ARCH and CROSS_COMPILE:
make dtbs
(this will build devicetree blobs for omap2plus which include also gta04).
Copy uImage and omap3-gta04.dtb to SD card /boot partition and boot from SD card. When uboot prompt appear press any key to stop and set new env:
setenv dtbloadaddr '0x83000000'
setenv boot_dtb 'mmc rescan 0; fatload mmc 0 ${loadaddr} uImage;
fatload mmc 0 ${dtbloadaddr} omap3-gta04.dtb; run mmcargs; bootm
${loadaddr} - ${dtbloadaddr}'
then issue "run boot_dtb" and your gta04 will start booting.
There is still missing functionality as: USB, wifi, display so this is more less for people interested for testing or contributing (not for daily use).
Note: when using gta04_defconfig device doesn't start kernel (reason unknown) so I was using omap2plus_defconfig.
Note1: After booting to userspace there seems to be some kernel issue which slows down processing (console response is very slow ...)