Kernel build instructions

From Pandora Wiki
Revision as of 11:25, 15 June 2011 by MotE (talk | contribs) (update codesourcery recommended version)
Jump to: navigation, search


Preparation

First you need a toolchain and several other tools.

Cygwin (Windows Users)

Cygwin is a Linux-like environment for Windows; download and install here. You will need additional packages installed to build the kernel:

  • diffutils
  • gcc4
  • make
  • ncurses
  • libncurses-devel
  • git (see below)


CodeSourcery G++

Usually CodeSourcery's ARM GNU/Linux tool chain is used to build OMAP3 kernels, but other variations can be used as well. For CodeSourcery, 2009q1-203 version is recommended (click "all versions" in above page), as 2007q3 doesn't work with kernels above 2.6.29, and 2008q1-2008q3 produce bad code in some situations. See BeagleBoard page for more information.

Windows Users: When installing on Windows, do not use the default install path, as it contains spaces and will cause problems when building (when the build system uses -print-file-name=include). Install to

C:\SourceryG++\

or similar. As mentioned here, create an environment variable called CYGPATH with the value 'cygpath' (minus the quotes). Patching your install using the SourceryG++ guide to kernel building as a reference is necessary to get your cygwin/windows builds off the ground.


Git

For source control access, you need to have git installed. Use your packet manager or build it from source. On Windows, install via cygwin.

A guide for basic git usage.


mkimage

Finally you need to have 'mkimage' tool in PATH, which can be built as part of u-boot build process, or download below:


Cloning and switching branches

Now you need to 'clone' kernel source using git tools from previous step. Make a directory you want to keep source in and cd into it. Then run:

git clone git://openpandora.org/pandora-kernel.git

This will now download the source from openpandora.org. Note that it will take a while, so be patient. When done, you will have default 'master' branch checked out, but it doesn't have the latest files, so you need to checkout the current 'pandora-27-omap1' branch:

git checkout --track -b pandora-27-omap1 origin/pandora-27-omap1

Building

To build you need to have several environment variables set. If you don't have your toolchain in PATH, you need to add it there:

export PATH=$PATH:/path/to/arm-2007q3/bin

You also need to have CROSS_COMPILE set:

export CROSS_COMPILE=arm-none-linux-gnueabi-

Now set up the default .config file:

make omap3_pandora_defconfig

If you want to customize kernel features, run

make menuconfig

When finished, just run

make uImage

and it should build you uImage and place it in arch/arm/boot/ . You can now use it to boot from SD card (recommended) or replace the one in your flash.

Firmware Compatibility

If you need a working drop-in replacement for the firmware kernel, you can apply the patches listed in recipes/linux/omap-pandora-kernel_2.6.27-pandora.bb from the git repository at git://git.openpandora.org/openpandora.oe.git before building.

musb-rxtx.patch may not apply cleanly unless you remove the junk at the end and fix the context for musbhsdma.c