#!/bin/bash # Script to build new Debian kernel packages for 2.6.33.1 # # Caveats: # # Since kernel-package in debian-stable doesn't work with # 2.6.33.1, we attempt to patch it in place. This may not be the # right thing to do. A possibly better alternative is to install # a later version of kernel-package, although that could potentially # cause problems with upgrades, etc.. # # The patch to tun.c is a workaround rather than a real fix. # # Building a full Debian kernel package with all drivers takes a long # time, 60-80 minutes on my laptop. # # Re-running a make-kpkg may not work without running 'make-kpkg clean' # Season to taste # export PATH=/usr/lib/ccache:$PATH export CONCURRENCY_LEVEL=3 debversion=2.6.26-2-686-bigmem image=linux-image-$debversion echo "*** Installing $image" sudo aptitude install $image newversion=2.6.33.1 archive=linux-$newversion.tar.bz2 location=http://www.kernel.org/pub/linux/kernel/v2.6 echo "*** Fetching $location/$archive" wget -c $location/$archive tree=linux-$newversion if [ -e $tree ]; then echo "*** $tree already exists" else echo "*** Extracting $archive" tar xjf $archive fi echo "*** Patching tun driver" patch $tree/drivers/net/tun.c < tun.patch echo "*** Patching debian build script" sudo patch /usr/share/kernel-package/ruleset/misc/version_vars.mk < version_vars.patch config=/boot/config-$debversion echo "*** Copying $config to $tree/.config" cp $config $tree/.config echo "*** Updating config" cd $tree yes '' | make oldconfig 1> /dev/null sed 's/# CONFIG_NET_NS is not set/CONFIG_NET_NS=y/' .config > .config-new mv .config-new .config echo "*** Result: " `grep CONFIG_NET_NS .config` echo "*** Building kernel" time fakeroot make-kpkg --initrd --append-to-version=-mininet kernel_image kernel_headers cd .. echo "*** Done - package should be in current directory" ls *$newversion*.deb echo "To install:" echo "# dpkg -i " *$newversion*.deb