Whole document tree
    

Whole document tree

The Debian GNU/Linux FAQ - Debian and the kernel
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ next ]

The Debian GNU/Linux FAQ
Chapter 9 - Debian and the kernel


9.1 Can I install and compile a kernel without some Debian-specific tweaking?

Yes. But you have to understand the Debian policy with respect to headers.

The Debian C libraries are built with the most recent stable releases of the kernel headers.

For example, the Debian-1.2 release used version 5.4.13 of the headers. This practice contrasts with the Linux kernel source packages distributed at all Linux FTP archive sites, which uses even more recent versions of the headers. The kernel headers distributed with the kernel source are located in /usr/include/linux/include/.

If you need to compile a program with kernel headers that are newer than those provided by libc6-dev, then you must add -I/usr/src/linux/include/ to your command line when compiling. This came up at one point, for example, with the packaging of the automounter daemon (amd). When new kernels changed some internals dealing with NFS, amd needed to know about them. This required the inclusion of the latest kernel headers.


9.2 What tools does Debian provide to build custom kernels?

Users who wish to (or must) build a custom kernel are encouraged to download the package kernel-package. This package contains the script to build the kernel package, and provides the capability to create a Debian kernel-image package just by running the command

     make-kpkg kernel_image

in the top-level kernel source directory. Help is available by executing the command

     make-kpkg --help

and through the manual page make-kpkg(8).

Users must separately download the source code for the most recent kernel (or the kernel of their choice) from their favorite Linux archive site, unless a kernel-source-version package is available (where "version" stands for the kernel version).

Detailed instructions for using the kernel-package package are given in the file /usr/doc/kernel-package/README. Briefly, one should:

  • Unpack the kernel sources, and cd to the newly created directory.
  • Modify the kernel configuration using one of these commands:
    • make config (for a tty one-line-at-a-time-interface).
    • make menuconfig (for an ncurses-based menu driven interface). Note that to use this option, the libncurses5-dev package must be installed.
    • make xconfig (for an X11 interface). Using this option requires that relevant X and Tcl/Tk packages be installed.

    Any of the above steps generates a new .config in the top-level kernel source directory.

  • Execute the command: make-kpkg -rev Custom.N kernel_image, where N is a revision number assigned by the user. The new Debian archive thus formed would have revision Custom.1, e.g., kernel-image-2.2.14_Custom.1_i386.deb for the Linux kernel 2.2.14.
  • Install the package created.
    • Run dpkg --install /usr/src/kernel-image-VVV_Custom.N.deb to install the kernel itself. The installation script will:
      • run the boot loader, LILO (if it is installed),
      • install the custom kernel in /boot/vmlinuz_VVV-Custom.N, and set up appropriate symbolic links to the most recent kernel version.
    • To employ secondary boot loaders such as grub or loadlin, copy this image to other locations (e.g., to /boot/grub or to an MS-DOS partition).

9.3 How can I make a custom boot floppy?

This task is greatly aided by the Debian package boot-floppies, normally found in the admin section of the Debian FTP archive. Shell scripts in this package produce boot floppies in the SYSLINUX format. These are MS-DOS formatted floppies whose master boot records have been altered so that they boot Linux directly (or whatever other operating system has been defined in the syslinux.cfg file on the floppy). Other scripts in this package produce emergency root disks and can even reproduce the base disks.

You will find more information about this in the /usr/doc/boot-floppies/README file after installing the boot-floppies package.


9.4 What special provisions does Debian provide to deal with modules?

Debian's modconf package provides a shell script (/usr/sbin/modconf) which can be used to customize the configuration of modules. This script presents a menu-based interface, prompting the user for particulars on the loadable device drivers in his system. The responses are used to customize the file /etc/modules.conf (which lists aliases, and other arguments that must be used in conjunction with various modules) through files in /etc/modutils/, and /etc/modules (which lists the modules that must be loaded at boot time).

Like the (new) Configure.help files that are now available to support the construction of custom kernels, the modconf package comes with a series of help files (in /usr/lib/modules_help/) which provide detailed information on appropriate arguments for each of the modules.


9.5 Can I safely de-install an old kernel package, and if so, how?

Yes. The kernel-image-NNN.prerm script checks to see whether the kernel you are currently running is the same as the kernel you are trying to de-install. Therefore you can remove unwanted kernel image packages using this command:

     dpkg --purge --force-remove-essential kernel-image-NNN

(replace "NNN" with your kernel version and revision number, of course)


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ next ]

The Debian GNU/Linux FAQ

version 3.0, 30 April 2002
Authors, Section 15.1