How to make non-interactive kernel packages using make-kpkg?

David Hendricks david.hendricks at
Thu Jun 25 05:09:29 UTC 2009

[ubuntu-devel-discuss bcc'd]

Hello everyone,
I am interested in doing some kernel development and testing, which means a
lot of patching and packaging of kernels. I'm pretty used to the manual way
of patching a kernel, configuring, and installing it but for my current
project this process must be 100% non-interactive. For the most part
make-kpkg (from kernel-package) has made this a breeze, but I still seem to
be getting some undesired interactions (nag screens) when I try to install a
kernel that is rolled with make-kpkg.

Before I go on with details about my make-kpkg endeavors, I'm also
interested in knowing more about how Ubuntu does this, since it could be
that I'm simply going about this the wrong way. I was unable to find
thorough documentation on Ubuntu or Debian's release process for kernels, so
any pointers would be greatly appreciated.

Here's an example how my simple shell script calls make-kpkg:
cd /usr/src
apt-get source linux-source-2.6.30
cp test.config linux-2.6.30/.config
cd linux-2.6.30
make-kpkg clean
          setarch i386 make-kpkg \
          --append-to-version="-custom" --revision="123" \
          --arch="i386" \
          --rootcmd fakeroot \
          --config oldconfig \
          --initrd --bzImage kernel_image

...and off it goes. Eventually a .deb file appears in the parent directory.
And then I try to install it (using dpkg -i) and am prompted to abort due to
pre-existing modules for my kernel version (in spite of clobber_modules =
yes and silent_modules = yes) or installation of an initrd/initramfs kernel
(in spite of do_initrd = yes and warn_initrd = no) or lack of a vmlinuz link
in a pristine environment (in spite of do_symlinks = yes). I have my
/etc/kernel-{img,pkg}.conf files below for further scrutiny, but needless to
say I am a bit confused as to why I am prompted when I explicitly configure
make-kpkg to package the kernel in such a way as to omit those kinds of

I should also note that I do not have a ~/.kpackage directory or any special
environment variables that would override the settings in the .conf files.

My /etc/kernel-img.conf:
# Kernel image management overrides
# See kernel-img.conf(5) for details

link_in_boot = yes
do_symlinks = yes
minimal_swap = yes
clobber_modules = yes
warn_reboot = no
silent_modules = yes
silent_loader = yes

# don't try to update the bootloader
do_bootloader = no

# prevent any warnings about installing an initrd kernel
do_initrd = yes
warn_initrd = no

My /etc/kernel-pkg.conf:
# Kernel package management overrides
# See kernel-pkg.conf(5) for details

# This file is used by kernel-package (>2.0) to provide a means of the site
# admin to over-ride settings in the distributed debian/rules. Typically
# this is used to set maintainer information, as well as the priority
# field. However, one may hack a full makefile in here (you should
# really know what you are doing here if you do that, though)

# Please change the maintainer information, as well as the Debian version
# below, (and maybe the priority as well, especially if you are uploading
# an official package)

# The maintainer information.
maintainer := Nobody
email := nobody at nowhere

# Priority of this version (or urgency, as dchanges would call it)
priority := Low

link_in_boot = yes
kimage = bzImage
root_cmd = fakeroot
do_clean = yes

I'd appreciate any advice on using make-kpkg to make kernel packages which
are non-interactive. If there are some example configurations out there, I'd
love to know. Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Ubuntu-devel-discuss mailing list