Difference between revisions of "Compiling a kernel"
From Linuxintro
imported>ThorstenStaerk |
imported>ThorstenStaerk |
||
Line 4: | Line 4: | ||
yast -i gcc | yast -i gcc | ||
* Download the kernel from ftp.kernel.org | * Download the kernel from ftp.kernel.org | ||
− | wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6. | + | wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2 |
* unpack the kernel | * unpack the kernel | ||
− | bunzip linux-2.6. | + | bunzip linux-2.6.21.tar.bz2 |
* unpack the kernel for the second time | * unpack the kernel for the second time | ||
− | tar xvf linux-2.6. | + | tar xvf linux-2.6.21.tar |
* configure the kernel | * configure the kernel | ||
− | cd linux-2.6. | + | cd linux-2.6.21 |
make oldconfig | make oldconfig | ||
* answer some un-understandable questions | * answer some un-understandable questions | ||
− | * compile the kernel | + | * compile the kernel, '''note:''' on a two-CPU VMWare virtual machine with 2.4 GHz, this lasted 19m28.605s |
make -j4 | make -j4 | ||
* compile the drivers | * compile the drivers | ||
Line 20: | Line 20: | ||
make modules_install | make modules_install | ||
* install the kernel | * install the kernel | ||
− | cp arch/x86_64/boot/bzImage /boot/vmlinuz-2.6. | + | 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 | * prepare the initial ramdisk | ||
mkinitrd | 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: | * add an entry to the bootloader. Let's take grub's /boot/grub/menu.lst: | ||
− | title 2.6. | + | title 2.6.21-selfcompiled |
root (hd0,0) | root (hd0,0) | ||
− | kernel /boot/vmlinuz-2.6. | + | kernel /boot/vmlinuz-2.6.21 root=/dev/sda1 |
− | initrd /boot/initrd-2.6. | + | initrd /boot/initrd-2.6.21 |
Revision as of 05:14, 2 February 2009
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.
- Make sure you have a compiler installed
yast -i gcc
- 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
- configure the kernel
cd linux-2.6.21 make oldconfig
- answer some un-understandable questions
- 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 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
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