How do I compile a kernel?
(These instructions assume we are installing version 2.6.0 of the kernel, replace all instances with the version you are trying to build. These instructions are also x86-specific; other architecture's build procedures may differ.)
- Download your tarball from ftp.XX.kernel.org where XX is your country code. If there isn't a mirror for your country, just pick a near one.
- Unpack the tarball in your home directory
bzip2 -dc linux-2.6.0.tar.bz2 | tar xvf -
- (Replace bzip2 with gzip if you downloaded the .gz)
- cd into the linux directory. You'll now need to configure the kernel to select the features you want/need. There are several ways to do this..
- make config
- Command line questions.
- make oldconfig
- (Useful only if you kept a .config from a previous kernel build)
- make menuconfig
- (ncurses based)
- make gconfig
- (GTK+ based X-Windows configuration)
- make xconfig
- (QT based X-Windows configuration)
- make config
- Now we can build the kernel (for older kernel like 2.4.x first build the dependencies with "make dep").
make
- Wait. When its finished, it will have build both the kernel (bzImage) and the modules (for older kernels like 2.4.x, you need to run "make bzImage ; make modules").
- Become root to be able to install modules and kernel. Everything before this point can and should be done as a normal user, there is really no need to be root to compile a kernel. It's actually a very bad idea to do everything as root because root is too powerful, one single mistake is enough to ruin your system completely.
- Install the modules.
make modules_install
- Install the new kernel..
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.0 cp System.map /boot/System.map-2.6.0
- Edit /etc/lilo.conf, and add these lines...
image = /boot/vmlinuz-2.6.0 label = 2.6.0
- Also copy your root=/dev/??? line here too.
Run /sbin/lilo, reboot, and enjoy. If you get modversion problems (symbols ending in _Rxxxxxxxx), have a look at [http://www.tux.org/lkml/#s8-8 this question] in the linux-kernel mailing list FAQ to solve the problem.
Still not getting it? Try this [http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html more indepth tutorial]
["CategoryFAQ"]