focal (5) kernel-package.5.gz

Provided by: kernel-package_13.018+nmu2_all bug

NAME

       kernel-package - system for creating kernel related packages

DESCRIPTION

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

FILES

       /etc/kernel-pkg.conf

       /etc/kernel-img.conf

SEE ALSO

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

BUGS

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

AUTHOR

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