Compiling a 2.6 kernel

From Nuclear Physics Group Documentation Pages
Revision as of 14:57, 6 January 2010 by Maurik (talk | contribs)
Jump to navigationJump to search

Making a custom 2.6 kernel for the TS-7260 or TS-7390

You can get the source of the kernel from embeddedarm and then unpack it on a Linux station using tar.

curl -O ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7200-linux/sources/tskernel-2.6.21-ts-src.tar.gz
tar -zxvf tskernel-2.6.21-ts-src.tar.gz
cd linux-2.6.21-ts
edit the Makefile to reflect the type of kernel:

  • ARCH ?= arm
  • CROSS_COMPILE ?= /usr/local/arm-linux-gnu/bin/arm-linux-gnu- # For "normal" arm, using etch
  • CROSS_COMPILE ?= /usr/local/arm-linux-gnueabi/bin/arm-linux-gnueabi- # For an eabi compiled kernel.

You now want to pre-load the configuration for the board you are making the kernel for. Use the ts72xx_defconfig for TS-7260 board or ts7350_defconfig for the TS-73xx boards. Note that the latter needs to be found on the embedded website (can't remember where.) These config files are in arch/arm/configs.

make ts72xx_defconfig

If you want, you can edit the default options. For instance, enabling usb serial conversion as a module, so that you can modprobe ftdi_sio and get usb/serial support. 'MAKE SURE YOU REMOVE DEBUGGING HEADER SUPPORT!' Otherwise, your kernel will be huge and/or your modules won't work on other systems.

 make menuconfig  

then make the kernel

make
make zImag 
make modules 

The final product is found in "arch/arm/boot" and is called "zImage". You can now copy all the modules to TARGET_DIR with:

make modules_install INSTALL_MOD_PATH=TARGETDIR

If you were just compiling the kernel so you can get the ftdi_sio module, you'll find it in drivers/usb/serial/ftdi_sio.ko

Local lore

There are several kernel trees that were build in ~maurik/kernels/.