[ 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.

There's only one common catch: the Debian C libraries are built with the most recent stable releases of the kernel headers. If you happen to need to compile a program with kernel headers newer than the ones from the stable branch, then you should either upgrade the package containing the headers (`libc6-dev`), or use the new headers from an unpacked tree of the newer kernel. That is, if the kernel sources are in `/usr/src/linux`, then you should add `-I/usr/src/linux/include/` to your command line when compiling.

## 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-version` 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(1)`.

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/share/doc/kernel-package/README.gz`. 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 text-based 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.N, e.g. `kernel-image-2.2.14_Custom.1_i386.deb` for the Linux kernel 2.2.14 on i386.

- Install the package created.

  - Run `dpkg --install ../kernel-image-VVV_Custom.N_i386.deb` to install the kernel itself. The installation script will:

    - run the boot loader (grub, LILO or some other) if needed,

    - install the custom kernel in `/boot/vmlinuz_VVV-Custom.N`, and set up appropriate symbolic links to the most recent kernel version.

    - prompt the user to make a boot floppy. This boot floppy will contain the raw kernel only. See How can I make a custom boot floppy?, Section 9.3.

  - To employ secondary boot loaders such as `loadlin`, copy this image to other locations (e.g. 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/share/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