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

       kernel-package - 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 se-
                     ries of steps to be taken in  order;  kernel-package  was
                     written  to take all the required steps (it has grown be-
                     yond 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 (us-
                     ing  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 fa-
                     cilitates  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  one  to create a package with the headers, or
                     the sources, also as a deb file, and enables the  package
                     management  system  to keep track of those (and there are
                     packages that depend on the package management system be-
                     ing 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  allow
                     the user to add hook scripts to run when the package sta-
                     tus changes.

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

              xiii) runtime hooks
                     The preinst, postinst, prerm 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).  There  are directories under /etc/kernel where
                     related packages may drop off scripts that will be run by
                     the  maintainer scripts of the packages created by kernel
                     package. Before running these  scripts,  the  environment
                     variable  KERNEL_PACKAGE_VERSION shall be set to the ver-
                     sion of the kernel-package that created the package.

              xiv) 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).



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

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

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

Debian                           May  25 1999                KERNEL-PACKAGE(5)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2024 Hurricane Electric. All Rights Reserved.