Linux Kernel 3.3 unter Debian Squeeze kompilieren

Der Linux Kernel 3.3 ist als Release Candidate verfügbar, die wohl (für uns) wichtigste Änderung ist, dass die Hyper-V Treiber aus dem staging-Bereich raus sind und nun “in der Treiberecke” zu finden sind. Durch den Umstand, dass Microsoft offiziellen Support bietet, wurde dies möglich. Weitere Informationen zu den Neuerungen finden man auf der folgende Seite:

Heise.de – Kernel-Log: Funktionsumfang von Linux 3.3 steht

Da ich mich ja ganz gerne mit dem Thema Linux und Hyper-V beschäftige, hier eine kleine Anleitung zur Kompilierung des Kernels 3.3. Wie schon erwähnt, der Kernel ist noch in der Test-Phase. Das eine VM mit solch einem Kernel nicht produktiv genutzt werden sollte ist ja eigentlich klar ;)

Update 04.04.12: Der Kernel 3.3 ist final draußen, ein eigener Artikel mit den integrierten Beschreibungen aus den Kommentaren hier findet ihr hier: Linux Kernel 3.3 final unter Debian Squeeze kompilieren

Zur Installation wird das aktuelle netinstall-Image von Debian genutzt, zu finden wie gewohnt unter http://www.debian.org/CD/netinst/. Nach der Grundinstallation beginnt die Vorbereitung des Systems und die Kompilierung des Kernels

SNAGHTML10d94419

apt-get update
aptitude update
apt-get install -y build-essential
apt-get install -y ncurses-dev kernel-package fakeroot
apt-get install -y linux-headers-`uname -r`
apt-get install -y linux-source-`uname -r | awk -F"-" '{print $1}'`
cd /usr/src
wget -c https://www.kernel.org/pub/linux/kernel/v3.x/testing/linux-3.3-rc1.tar.bz2
bzip2 -d linux-3.3-rc1.tar.bz2
tar xf linux-3.3-rc1.tar
cd linux-3.3-rc1
cp /boot/config* ./.config
make menuconfig

Die Treiber sind wie folgt zu finden

SNAGHTML10db53a3

SNAGHTML10dc4477

SNAGHTML10dc689a

SNAGHTML10dc7f93

SNAGHTML10dcc6b0

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-hyperv kernel_image kernel_headers

Die Kompilierung beginnt

SNAGHTML10de4689

cd ..
dpkg -i linux-headers-3.3.0-rc1-hyperv_3.3.0-rc1-hyperv-10.00.Custom_amd64.deb linux-image-3.3.0-rc1-hyperv_3.3.0-rc1-hyperv-10.00.Custom_amd64.deb
echo -e "hv_vmbus\nhv_storvsc\nhv_blkvsc\nhv_netvsc" >> /etc/initramfs-tools/modules
update-initramfs -u -k 3.3.0-rc1-hyperv
reboot

Der erste Boot nach der Kompilierung und dem Neustart des Systems

SNAGHTML10df8cbd

Das System bootet sauber hoch, wie man erkennen kann läuft das System mit dem soeben kompilierten Kernel. Ein Auszug aus der Datei /proc/cpuinfo zeigt, dass die VM mit vier vCPUs konfiguriert wurde, die alle vier erkannt werden.

SNAGHTML10e1ae31

Viel Spaß beim testen :)