Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Debian-5.0)
Apropos / Subsearch:
optional field

KERNEL-PACKAGE(5)           Debian GNU/Linux manual          KERNEL-PACKAGE(5)

       kernel-package - A system for creating kernel related packages

       The  kernel-package  package grew out of desire to automate the routine
       steps required to compile and install a custom kernel. If you are look-
       ing  for  instructions on how to use kernel-package, please have a look
       at the manual make-kpkg (1).  Configuring instructions are to be  found
       in kernel-pkg.conf(5).

Advantages of using kernel-package
              i) Convenience.
                     I  used  to  compile  kernels manually, and it involved a
                     series of steps to be taken in order; kernel-package  was
                     written  to  take  all  the  required steps (it has grown
                     beyond that now, but essentially, that is what it  does).
                     This  is especially important to novices: make-kpkg takes
                     all the steps required to compile a kernel, and installa-
                     tion of kernels is a snap.

              ii) Multiple images support
                     It  allows  you to keep multiple version of kernel images
                     on your machine with no fuss.

              iii) Multiple Flavors of the same kernel version
                     It has a facility for you to keep multiple flavors of the
                     same  kernel  version  on  your machine (you could have a
                     stable 2.0.36 version, and a 2.0.36 version patched  with
                     the latest drivers, and not worry about contaminating the
                     modules in /lib/modules).

              iv) Built in defaults
                     It knows that some  architectures  do  not  have  vmlinuz
                     (using vmlinux instead), and other use zImage rather than
                     bzImage, and calls the appropriate target, and takes care
                     of moving the correct file into place.

              v) Module hooks
                     Several other kernel module packages are hooked into ker-
                     nel-package, so one can seamlessly compile,  say,  pcmcia
                     modules at the same time as one compiles a kernel, and be
                     assured that the modules so compiled are compatible.

              vi) dpkg support
                     It enables you to use the package  management  system  to
                     keep  track  of the kernels created. Using make-kpkg cre-
                     ates a .deb file, and dpkg can track  it  for  you.  This
                     facilitates the task of other packages that depend on the
                     kernel packages.

              vii) Configuration tracking
                     It keeps track of the configuration file for each  kernel
                     image  in  /boot, which is part of the image package, and
                     hence is the kernel image and the configuration file  are
                     always together.

              viii) Multiple config files
                     It  allows  you to specify a directory with config files,
                     with separate  config  files  for  each  sub-architecture
                     (even  allows  for different config files for i386, i486,
                     etc). It is really neat for people who  need  to  compile
                     kernels for a variety of sub architectures.

              ix) Auxiliary kernel .deb packages
                     It  allows  to  create a package with the headers, or the
                     sources, also as a deb file, and enables the package man-
                     agement  system  to  keep  track  of those (and there are
                     packages that depend on  the  package  management  system
                     being aware of these packages).

              x) Maintainer script services
                     Since  the  kernel image package is a full fledged Debian
                     package, it comes with  maintainer  scripts,  which  take
                     care of details like offering to make a boot disk, manip-
                     ulating symbolic links in / so that  you  can  make  boot
                     loader  scripts static (just refer to the symbolic links,
                     rather than the real image files; the names of  the  sym-
                     bolic  links  do  not  change,  but the kernel image file
                     names change with the version).

              xi) Sub architecture support
                     There is support for the multitudinous sub  architectures
                     that  have  blossomed  under the umbrella of the m68k and
                     power-PC architectures.

              xii) kernel-patch support
                     There is support there for optionally applying patches to
                     the  kernel  provided  as  a  kernel-patch .deb file, and
                     building  a  patched  kernel  auto-magically,  and  still
                     retain an UN-patched kernel source tree.

              xiii) Portable kernel images
                     Allows  one to compile a kernel for another computer, for
                     example using a fast machine to compile  the  kernel  for
                     installation  on  a  slower  machine. This is really nice
                     since the modules are all included in the .deb;  and  one
                     does not have to deal with modules manually.

              xiv) Customizations on the target host
                     The postinst looks at a configuration file on the instal-
                     lation machine (as opposed to the machine that the  image
                     was compiled on), and allows the local admin to decide on
                     issues of symbolic links, and  whether  the  boot  loader
                     stuff must be run, and whether one wants to create a boot
                     floppy or not.

              xv) runtime hooks
                     The postinst and the postrm scripts allow the local admin
                     on  the installation machine to add a script into runtime
                     hooks; this can allow, amongst other things,  grub  users
                     to add and remove kernel image stanzas from the grub menu
                     (example scripts to do this are in the package).

              xvi) Append descriptive bits to the kernel version
                     One can append to the kernel version on the command line,
                     or  by setting an environment variable. So if your kernel
                     is called kernel-image-2.4.1John.Home; it is unlikely  to
                     be  overridden  by  the official 2.4.1 kernel, since they
                     are not the same version.

Disadvantages of using make-kpkg
       i) Automation.
              This is a cookie cutter approach to compiling kernels, and there
              are people who like being close to the bare metal.

       ii) Non traditional
              This  is not how it is done in the non-Debian world. This flouts
              tradition. (It has been pointed out, though, that this  is  fast
              becoming Debian tradition).

       iii) Needs superuser
              It  forces  you  to  use fakeroot or sudo or super or be root to
              create a kernel image .deb file (this is not as bad as  it  used
              to be before fakeroot)

       /etc/kernel-pkg.conf.  /etc/kernel-img.conf.

       make-kpkg(1), make(1), The GNU Make manual.

       There are no bugs.  Any resemblance thereof is delirium. Really.

       This manual page was written by Manoj Srivastava <srivastaATdebian.org>,
       for the Debian GNU/Linux system.

Debian                           May  25 1999                KERNEL-PACKAGE(5)