---
name: "kernel-pkg.conf"
section: "5"
platform: "linux"
package: "kernel-package"
version: "13.014+nmu1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/kernel-pkg.conf"
---

# kernel-pkg.conf(5)

configuration file for make-kpkg

## NAME

kernel-pkg.conf - configuration file for make-kpkg

## SYNOPSIS

*/etc/kernel-pkg.conf* or *~/.kernel-pkg.conf*

## DESCRIPTION

The file */etc/kernel-pkg.conf* or *~/.kernel-pkg.conf* is actually a **Makefile** snippet included during the kernel packages build process, and hence you may put any legal Makefile directive in that file (just make very sure you know what you are doing).  If the per user configuration file *~/.kernel-pkg.conf* exists, it is loaded in favor of the system wide configuration file */etc/kernel-pkg.conf*.

All the variables have reasonable default values, and maybe overridden on a per run or a per individual basis by using environment variables.  Some of the variables can further be overridden by options to **make-kpkg**.

At the moment, the user modifiable variables supported are:

- **maintainer**

  Local kernel (image, header, doc, etc.) package maintainer. Set up at package installation by the *postinst*. Can be overridden by the environment variable **KPKG\_MAINTAINER**. Please note that any apostrophes "'" shall have to be quoted like so: maintainer = John O'\\''Brien. Yes, this is ugly, but this works.

- **email**

  The email address of that person.  Set up at package installation by the *postinst*. Can be overridden by the environment variable **KPKG\_EMAIL**.

- **pgp**

  A key-ID to use when signing packages. Usually passed along to *dpkg-buildpackage* using the *-k* option, and also third party modules in the **KMAINT** environment variable, if separate modules (like pcmcia, etc.) are being built in *$MODULE\_PATH*. Can be overridden by the environment variable **PGP\_SIGNATURE**, and is overridden (again) by the *--pgpsign* option of **make-kpkg**. Defaults to *maintainer*. (Optional)

- **debian**

  The version of the kernel packages, includes both the upstream version and the Debian revision. Can be overridden by the environment variable **DEBIAN\_REVISION**, and is overridden (again) by the *--revision* option of **make-kpkg**. Defaults to *\<VERSION\>-10.0.0.Custom* (Optional)

- **debian\_revision\_mandatory**

  Normally unset. If this, or the environment variable **DEBIAN\_REVISION\_MANDATORY** are set, then not providing a Debian revision results in an error (and **make-kpkg** shall not provide a default value of 10.0.0.Custom)

- **kimage**

  The kernel image type (i.e. zImage or bzImage). Can be overridden from the environment variable **IMAGE\_TYPE**, and is overridden (again) by the options *--zimage* or *--bzimage* of **make-kpkg**. Defaults to *bzImage*. (Optional)

- **config\_target**

  What type of configure step to do. Defaults to oldconfig, which is good for non-interactive (or minimally interactive) runs. (ENV variable **CONFIG\_TARGET** overrides this setting.)  If the value of config\_target is not recognized, then it is reset to oldconfig.

- **use\_saved\_config**

  This is an experts only variable. If set to NO (ENV variable **USE\_SAVED\_CONFIG** overrides this), the file .config.save in the top level directory is ignored.

- **root\_cmd**

  This is a variable meant to be passed on to **dpkg-buildpackage** in the *buildpackage* target. This should be set to a means of gaining superuser access (for example, *\`sudo'* or *\`fakeroot'*) as needed by **dpkg-buildpackages**' -r option. The environment variable **ROOT\_CMD** overrides this. Use the environment variable **UNSIGN\_SOURCE** to pass an option to dpkg-buildpackage to not sign the source; similarly, use the environment variable **UNSIGN\_CHANGELOG** to pass an option to dpkg-buildpackage to not sign the changelog. Again, this variable is only useful for the *buildpackage* target. Set the  environment variable **ROOT\_CMD** if you just wish to build the kernel image, for instance.

- **delete\_build\_link**

  If set to YES, the symbolic link */lib/modules/$VERSION/build* shall be removed from the resulting .deb package.  The environment variable **DELETE\_BUILD\_LINK** overrides this. The default is unset. Note that this is case sensitive, yes shall not work.

- **do\_clean**

  Set to YES, this causes a make clean to be run in the kernel source tree after building the kernel image package. The environment variable **CLEAN\_SOURCE** overrides this.  The default is unset. Note that this is case sensitive, yes shall not work.

- **install\_vmlinux**

  Set to YES to install the uncompressed kernel ELF image along with the bootable compressed kernel image (vmlinuz).  The default is unset. Note that this is case sensitive, yes shall not work.

- **image\_clean\_hook**

  Set to point to an executable, this shall cause that executable to run from the top level of the (temporary) kernel image tree before the kernel image is packaged. This has no effect on anything other than the image that is being packaged -- if the script operates on the current directory and its children, the original source tree should remain intact.  This is to facilitate messaging of the kernel image that is packaged.

- **source\_clean\_hook**

  Set to point to an executable, this shall cause that executable to run from the top level of the (temporary) kernel source tree before the sources are packaged, *./debian/tmp-source/usr/src/kernel-source-X.X.XX*. This has no effect on anything other than the sources that are being packaged -- if the script operates on the current directory and its children, the original source tree should remain intact. This is to facilitate messaging of the kernel sources that are packaged (for example, to remove version control directories, or to prune away unwanted architectures).

- **header\_clean\_hook**

  Set to point to an executable, this shall cause that executable to run from the top level of the kernel headers before the headers are packaged. This has no effect on anything other than the sources that are being packaged -- if the script operates on the current directory and its children, the original source tree should remain intact. This is to facilitate messaging of the kernel headers that are packaged (for example, to remove version control directories, or to prune away unwanted architectures).

- **doc\_clean\_hook**

  Set to point to an executable, this shall cause that executable to run from the top of the documentation tree before kernel documentation is packaged.  This has no effect on anything other than the documentation that is being packaged -- if the script operates on the current directory and its children, the original source tree should remain intact. This is to facilitate messaging of the kernel documentation that is packaged (for example, to remove version control directories, or to prune away unwanted architectures).

- **extra\_docs**

  This variable should be set to the path of any extra documentation that should be installed in */usr/share/doc/kernel-image-X.X.XX/* directory. There is no checking for name conflicts, and the files are not compressed. Hence, if you want the files to be compressed, please precompress it and provide the path of the compressed file.  The environment variable **EXTRA\_DOCS** overrides this, and would most likely be how extra documentation is specified.

- **kpkg\_follow\_symlinks\_in\_src**

  This option is especially useful for people who use symlink farms to compile kernels. With this option, kernel-source and kernel-header packages shall not be just full of dangling symlinks, instead, the symbolic links shall be followed. Please note that any symbolic links in the kernel sources would be flattened as well.  The environment variable **KPKG\_FOLLOW\_SYMLINKS\_IN\_SRC** overrides this.  The default is unset.

- **make\_libc\_headers**

  This is meant to be used by the *libc6* maintainer, when he compiles *libc6*, to also package up the corresponding headers. **DO NOT SET THIS** unless you know what you are doing, since a mismatch between the headers you package and *libc6* may well create a subtle instability in all code compiled on your machine. You have been warned. The environment variable **MAKE\_LIBC\_HEADERS** overrides this.  The default is unset.

- **CONCURRENCY\_LEVEL**

  If defined, this variable sets the concurrency level of make used to compile the kernel and the modules set using *-j* flags to the sub make in the **build** target of **make-kpkg.** Should be a (small) integer, if used.

- **ARCH\_IN\_NAME**

  If defined, this variable causes **make-kpkg** to use an extended name for the kernel image package by embedding the subarchitecture  in the image name, so one could write a script to create multiple subarchitectures one after the  other. **Please note** that  only  the package *name* is  affected,  not module locations etc.

- **CONFDIR**

  Set this variable, either in the environment or in the config file, to point to the location where the kernel config files are located. These are architecture specific *.config* files (look at */usr/share/kernel-package/Config* for examples). This is useful for people who need to compile for several architectures. Defaults to */usr/share/kernel-package/Config*

- **IMAGEDIR**

  If you want the image to be stored elsewhere than */boot* set this variable to the dir where you want the image. This may be of help to **loadlin** users. Defaults to */boot*.

- **MODULE\_LOC**

  Set this variable, either in the environment or in the config file, to point to the location where the add-on modules are located. Defaults to */usr/src/modules*

- The value of a variable can be set so:

  - a)

  Defaults exist in the rules file. These are the values used if no customization is done.

- b)

  Variables can be set in the config file */etc/kernel-pkg.conf*. These values override the defaults.

- c)

  Variables can also be set by setting a corresponding environment variable.  These values override the config file and the defaults.

- d)

  Using **make-kpkg** options, or, if using the rules file directly, on command line\
   **# xxx/rules DEBIAN\_REVISION=2.0a kernel\_image**\
   This overrides all the above methods.

## FILES

The file described here is */etc/kernel-pkg.conf* or *~/.kernel-pkg.conf*.

## SEE ALSO

[**make**(1)](/make/1.md), [**make-kpkg**(1)](/make-kpkg/1.md), [**kernel-img.conf**(5)](/kernel-img.conf/5.md), **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.
