72 lines
1.9 KiB
Bash
Executable File
72 lines
1.9 KiB
Bash
Executable File
#!/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
|