KernelNewbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Hacking

  • Frontpage

  • Kernel Hacking

  • Kernel Documentation

  • Kernel Glossary

  • FAQ

  • Found a bug?

  • Kernel Changelog

  • Upstream Merge Guide

Projects

  • KernelJanitors

  • KernelMentors

  • KernelProjects

Community

  • Why a community?

  • Regional Kernelnewbies

  • Personal Pages

  • Upcoming Events

References

  • Mailing Lists

  • Related Sites

  • Programming Links

Wiki

  • Recent Changes

  • Site Editors

  • Side Bar

  • Tips for Editors

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 1 as of 2006-04-15 04:16:55
KernelNewbies:
  • FAQ
  • KernelCompilation

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..
    1. make config
      • Command line questions.
    2. make oldconfig
      • (Useful only if you kept a .config from a previous kernel build)
    3. make menuconfig
      • (ncurses based)
    4. make gconfig
      • (GTK+ based X-Windows configuration)
    5. make xconfig
      • (QT based X-Windows configuration)
  • 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"]

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01