You are looking at an old revision of the page Build. This revision was created by Nikolaus Schaller.
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 master
(replace master by some other branch if you want a specific variant, e.g. 3.18-rc1)
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`/modules
mkdir modules
make modules_install
cd modules/ && 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. And expand the modules to your root filesystem. After the first boot with significant changes in modules, you may have to run depmod -a.
Patches
Patches should follow these guidelines. Please submit them to the gta04-owner mailing list for review and inclusion.
Cross compiling toolchain
Debian
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-
Angstrom
Neil Brown says: "I found that I needed to update my cross-compile tool chain to build 3.12. I used angstrom-eglibc-x86_64-armv7a-vfp-neon-v2012.12-toolchain from
http://www.angstrom-distribution.org/toolchains/
Booting with devicetree
Devicetree updates for gta04 are included in kernels starting with 3.13. You find them in arch/arm/boot/dts/omap3-gta04*
Follow Build procedure described above to build uImage. When uImage is build call with export ARCH and CROSS_COMPILE:
make dtbs
(this will build devicetree blobs).
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.
Or use the latest gta04 u-boot which "magically knows" which variant it is running on, locates the right device tree binary and boots it.