Provided by: kernel-package_13.018+nmu1_all bug


       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 looking 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 installation 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 kernel-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 creates 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 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  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 allow the user to add  hook  scripts  to  run
                     when the package status 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  version  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.