Difference between revisions of "Compiling a 2.6 kernel"
Line 1: | Line 1: | ||
− | == Making a custom 2.6 kernel for the TS-7260 == | + | == 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. | ||
<code> curl -O ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7200-linux/sources/tskernel-2.6.21-ts-src.tar.gz </code><br> | <code> curl -O ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7200-linux/sources/tskernel-2.6.21-ts-src.tar.gz </code><br> | ||
<code> tar -zxvf tskernel-2.6.21-ts-src.tar.gz </code><br> | <code> tar -zxvf tskernel-2.6.21-ts-src.tar.gz </code><br> | ||
<code> cd linux-2.6.21-ts </code><br> | <code> cd linux-2.6.21-ts </code><br> | ||
− | edit the Makefile: | + | edit the Makefile to reflect the type of kernel: |
* ARCH ?= arm | * ARCH ?= arm | ||
− | * CROSS_COMPILE ?= /usr/local/arm-linux-gnu/bin/arm-linux-gnu- | + | * 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. | ||
+ | |||
+ | <code> make ts72xx_defconfig </code><br> | ||
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.<br> | 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.<br> | ||
Line 19: | Line 25: | ||
<code>make modules_install INSTALL_MOD_PATH=TARGETDIR</code> | <code>make modules_install INSTALL_MOD_PATH=TARGETDIR</code> | ||
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 | 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/. |
Revision as of 14:57, 6 January 2010
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/.