Debian Linux Kernel mit Hyper-V Additions compilieren

Schon öfters bin ich in den News auf die Hyper-V Linux Kernel Ergänzungen gestoßen und habe auch schon an dieser Stelle darüber berichtet. Wenn man dann aber etwas genauer recherchiert, findet man allerdings kaum Informationen wie man sich seinen Kernel mit Hyper-V Treibern erzeugen kann.

Deswegen habe ich die aktuelle Debian Distribution lenny geladen und es einfach mit dem Kernel 2.6.33.5 ausprobiert. Im Folgenden finden Sie die Schritte zum Nachvollziehen:

Information: Dieser Beitrag geht von dem Kernel 2.6.33.5 sowie Debian Lenny aus. Einen aktuelleren Beitrag zum Kernel 2.6.38 sowie Debian Squeeze gibt hier: Kompilierung eines eigenen Debian Squeeze-Kernels 2.6.38 mit Hyper-V Client Treiber / Integrationsdienste

  1. Erstellen Sie eine VM mit 512MB und mind. 5GB Platte
  2. Laden Sie ein Debian lenny 64bit ISO Image (z.B. das “debian-505-amd64-netinst.iso”) herunter, dieses dann als DVD in der VM mounten und damit eine Debian Grundinstallation durchführen
  3. Installieren Sie einige Kernel Entwicklungspakete mit dem Befehl apt-get install build-essential ncurses-dev kernel-package fakeroot
  4. Zusätzlich benötigen wir eine neuere Version des Packets “kernel-package”. Diese erhalten wir indem wir in der Datei “/etc/apt/sources.list” die Zeile “deb http://ftp.de.debian.org/debian squeeze main” ergänzen, mit dem Befehl “apt-get update” die neuen Packetinformationen heruntergeladen und dann schließlich mit “apt-get install kernel-package” dieses Paket updaten.
  5. Danach wechsel wir mit dem Befehl “cd /usr/src” in das Kernelquellverzeichnis und laden dort mit dem Befehl “wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.5.tar.bz2” die gewünschten Kernelquelle herunter
  6. Diese dekomprimieren wir dann mit “tar xf linux-2.6.33.5.tar.bz2” an Ort und Stelle
  7. Wir wechseln mit “cd linux-2.6.33.5” in das Kernell Quellverzeichnis. Jetzt stehen Sie vor der Wahl  welchen Kernel Sie erzeugen wollen. Sie können einfach die Standartwerte übernehmen Befehl “make menuconfig”, Sie können die Konfiguration des alten Kernel als Vorlage benutzen indem Sie die aktuelle Konfiguration nach .config kopieren Befehl cp /boot/config-2.6.32-2-amd64 .config“ oder Sie laden sich eine für Debian vorkonfigurierte Version unter “config-2.6.33-2-amd64.gz” herunter, entpacken und benutzen diese um den Kernel zu bauen (mit Befehl cp config-2.6.33-2-amd64 .config„)
  8. Jetzt schalten wir das Erzeugen der Hyper-V Komponenten als ladbare Kernelmodule ein, in dem wir den Befehl “make menuconfig” ausführen, nach “Device Drivers –> Staging Drivers –> Microsoft Hyper-V Client Drivers” navigieren und diese als ladbare Module aktivieren
  9. Mit dem Befehl “make-kpkg clean” und einem darauf folgenden “fakeroot make-kpkg –-initrd –-revision=hv.custom.1.0 kernel_image” erzeugen wir dann das Kernelpacket (Dauer ca. 1 Stunde)
  10. Nach dem Kopilieren wechseln wir mit “cd ../” in das Verzeichnis “/usr/src” und installieren mit “dpkg -i linux-image-2.6.33.5_hv.custom.1.0_amd64.deb” den neuen Kernel
  11. Damit die Hyper-V Module in der Kernel Ramdisk vorhaden sind, tragen wir in die Datei “/etc/initramfs-tools/modules”  jeweils einen Zeile mit “hv_vmbus”, “hv_storvsc”, “hv_blkvsc” und “hv_netvsc” ein
  12. Normalerweise würde das System eine initrd erzeugen, da das aber komischerweise nicht der Fall ist erzeugen wir diese manuell mit dem Befehl  “mkinitramfs -o /boot/initrd.img-2.6.33.5”. Danach updaten wir mit dem Befehl “update-initramfs –t –u –k 2.6.33.5” die Bootramdisk, so dass Sie auch unsere Hyper-V Integrations Komponenten kennt. Zuletzt müssen wir noch die Bootkonfiguration mit dem Befehl “update-grub” aktualisieren
  13. Jetzt können wir mit dem Befehl “reboot” die VM neu starten und booten den neuen Kernel
  14. Im letzten Schritt melden Sie sich an und prüfen mit dem Befehl “lsmod” ob die Hyper-V Module geladen werden. Sie sollten in der Ausgabe vier Module sehen: hv_vmbus, hv_storvsc, hv_blkvsc und hv_netvsc.

Anzumerken ist bei dieser Lösung, dass momentan noch die Zeitintegration, die Herunterfahrmöglichkeit und der Heardbeat fehlen. Dieses sind Features die mit den Hyper-V Integration Komponenten 2.1 voraussichtlich mit Kernel 2.6.35 kommen werden.

Vorlage für diese Konfiguration ist der folgender Artikel von Matthew Mattoon:
http://blog.allanglesit.com/Blog/tabid/66/EntryId/44/Hyper-V-Guests-Compile-Linux-2-6-32-on-Debian.aspx

Carsten Rachfahl
 

Dipl. Ing. Carsten Rachfahl ist seit mehr als 25 Jahren in der IT-Branche tätig. Er ist einer der geschäftsführenden Gesellschafter der Rachfahl IT-Solutions GmbH & Co. KG und für den technischen Bereich verantwortlich.

Comments are closed