Difference between revisions of "Compiling kernel 2.6.21"
imported>ThorstenStaerk m (Reverted edits by 50.17.152.232 (talk) to last revision by 216.64.207.132) |
imported>ThorstenStaerk m (Reverted edits by 200.195.176.98 (talk) to last revision by ThorstenStaerk) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This is an example how to compile a Linux kernel. It has been tested for SUSE Linux 10.2 and kernel 2.6.21, but should work same or similar for every combination. | This is an example how to compile a Linux kernel. It has been tested for SUSE Linux 10.2 and kernel 2.6.21, but should work same or similar for every combination. | ||
− | + | = Check prerequesites = | |
+ | * Make sure you have a compiler installed | ||
+ | yast -i gcc | ||
= Get the code = | = Get the code = |
Latest revision as of 11:13, 30 September 2011
This is an example how to compile a Linux kernel. It has been tested for SUSE Linux 10.2 and kernel 2.6.21, but should work same or similar for every combination.
Check prerequesites
- Make sure you have a compiler installed
yast -i gcc
Get the code
- Download the kernel from ftp.kernel.org
wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2
- unpack the kernel
bunzip linux-2.6.21.tar.bz2
- unpack the kernel for the second time
tar xvf linux-2.6.21.tar
Build it
- configure the kernel
cd linux-2.6.21 make oldconfig
- answer some un-understandable questions
The sense of the step make oldconfig is to tell the kernel its configuration, e.g. which parts should be built as a module, which parts should not be built at all and the name of your special build. oldconfig takes over the settings from the running kernel that you can check with zcat /proc/config.gz. The settings for the new kernel are stored in the file .config. E.g. a line CONFIG_LOCALVERSION="-thorsten" in .config would tell kernel 2.6.27 to call himself 2.6.27-thorsten.
- compile the kernel, note: on a two-CPU VMWare virtual machine with 2.4 GHz, this lasted 19m28.605s
make -j4
- compile the drivers
make -j4 modules
Install it
- install the drivers
make modules_install
- install the kernel
cp arch/x86_64/boot/bzImage /boot/vmlinuz-2.6.21
This will install the kernel for the x86_64 architecture.
- prepare the initial ramdisk
cp System.map /boot mkinitrd
This will build an initial ramdisk for all kernels contained in /boot.
- add an entry to the bootloader. Let's take grub's /boot/grub/menu.lst:
title 2.6.21-selfcompiled root (hd0,0) kernel /boot/vmlinuz-2.6.21 root=/dev/sda1 initrd /boot/initrd-2.6.21
Newer kernels
x86_64 and x86_32 were merged into the x86 folder.