Compiling a kernel in a ppa can take a few tricks. Here is how I do it: * Grab the pristine kernel for the release you want, and/or check out a new branch for your work: {{{ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-natty.git cd ubuntu-natty git co -b mytest }}} * and commit your changes as usual {{{ git status | grep modified | awk -F: '{ print $2 }' | xargs git add git commit -s -m 'My test' }}} * Make sure the tree is clean and ready {{{ fakeroot debian/rules clean }}} * Now create a packaging changelog entry. If the previous entry was 2.6.38-9.43, then I might call my test 2.6.38-9.43creds1. {{{ dch -i }}} * *Important* - copy your changelog entry from debian/changelog into debian.master/changelog. * Make sure that the ppa will skip module and ABI checking * Add the following lines to debian/rules: {{{ export skipmodules=true export skipabi=true }}} * set skipmodule to 1 in debian/scripts/module-check, so it starts with: {{{ #!/usr/bin/perl -w $flavour = shift; $prev_abidir = shift; $abidir = shift; $skipmodule = 1; }}} * Build the kernel source package using the following command: {{{ dpkg-buildpackage -S -sa -rfakeroot -I.bzr -I.git -I.gitignore -i"\.git.*" }}} (Thanks to Sarvatt and tgardner for the info about ignoring VCS files) * You can also test-build locally using {{{ fakeroot debian/rules binary-generic }}} to save having to deal with errors when building in ppa. * Finally push the package to your ppa. {{{ cd .. dput ppa:myuser/ppa *.changes }}} To compile on your own system, just do: {{{ fakeroot debian/rules clean fakeroot debian/rules binary-generic }}} or if you also need ddebs (thanks Sarvatt): {{{ fakeroot debian/rules binary-generic skipdbg=false }}}