Difference between revisions of "Compiling kernel 2.6.21"

From Linuxintro
Line 22: Line 22:
 
  make -j4 modules
 
  make -j4 modules
  
= Install it =
+
Superb inforatmion here, ol'e chap; keep burning the midnight oil.
* 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 =
 
= Newer kernels =
 
x86_64 and x86_32 were merged into the x86 folder.
 
x86_64 and x86_32 were merged into the x86 folder.

Revision as of 12:02, 24 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.

Holy Toledo, so glad I cilcked on this site first!

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

Superb inforatmion here, ol'e chap; keep burning the midnight oil.

Newer kernels

x86_64 and x86_32 were merged into the x86 folder.