Letux Kernel

Build

You are looking at an old revision of the page Build. This revision was created by Nikolaus Schaller.

Table of Content

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`/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.

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 ...)