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
makemake zImagmake 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/.
