Is there any documentation on how to build custom kernel packages and upload the result into a PPA? In particular, I would like to build mostly the stable upstream kernel (i.e. git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git) with a patch for MPTCP. Since the MPTCP patch requires a very specific kernel version, I cannot simply use the Ubuntu kernel repositories.

So far, I found this:

  • Manually building kernels works, of course, i.e.: fakeroot make-kpkg clean CONCURRENCY_LEVEL=getconf _NPROCESSORS_ONLN fakeroot make-kpkg --initrd --append-to-version=-mptcp \ kernel_image kernel_headers kernel_source kernel_doc kernel_manual kernel_debug

Then, I get .deb packages. "dpkg -i ..." works as well, but I would like to automatise package handling with apt-get and a PPA.

  • make-kpkg does not generate a .changes file, which is necessary for dput. I of course checked documentation, manpage of make-kpkg, and grep'ed through the sources of the kernel-package package -> no information on how to let it generate the right output.

  • Some other users (like https://forum.ubuntuusers.de/topic/ppa-mit-custom-kernel-erstellen/) did not manage a kernel PPA upload as well. At least, there is no documentation available.

Is there any change of building PPA-uploadable kernel packages with reasonable effort?

1 Answer 1


I had the same question and I have finally found a working solution.

The following worked for me. Some steps can certainly be optimized.

  1. get the source for a mainline build, check the SOURCES file and get everything:

    git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
    cd mainline-crack/
    git checkout -b v4.7.10 b3afc4525a507f21e98cc7571ea8c3f28484241c
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0001-base-packaging.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0004-UBUNTU-SAUCE-no-up-disable-pie-when-gcc-has-it-enabl.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0005-debian-changelog.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0006-configs-based-on-Ubuntu-4.7.0-0.2.patch
    1. apply the patches:

      git am 000*

    2. build files in debian:

      debian/rules clean

    3. build the source debs (without signature):

      dpkg-buildpackage -us -uc -S

    4. adjust the Changed-By: in the .changes file to your ppa uploader account

    5. sign the package

      deb-sign linux_4.7.10-040710.201610220847_source.changes

    6. upload

      dput ppa linux_4.7.10-040710.201610220847_source.changes

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.