DebianXenKernelbauen

Aus Xen-Forum-Wiki

Wechseln zu: Navigation, Suche

Diese Anleitung soll dabei helfen, einen eigenen angepassten XEN-Kernel zu bauen. Die Schritte wurden unter Debian/Sarge ausgeführt, sollten aber in allen anderen Debian-Versionen auch so funktionieren. Die Schritte sind als root auszuführen. Es wird der Kernel 2.6.16.x mit XEN 3.0.2-2 verwendet. Bisher habe ich noch nicht den Link zu einer aktuelleren XEN-Version gefunden, welche mit Kernel 2.6.17.x funktioniert. Es könnte XEN 3.0.2-3 sein.

Inhaltsverzeichnis

XEN-Kernel für Debian bauen

Vorbereitung

Um den Kernel zu kompilieren sind einige Zusatzpakete nötig. Wichtig ist, dass man das Paket kernel-package nicht aus Sarge benutzt, da dies noch nicht mit XEN zurecht kommt. Hier sollte man die Version von backports.org nehmen. Setzt man Etch oder höher ein, so benötigt man keine andere Version.

Mit folgendem Aufruf werden die benötigten Pakete installiert:

apt-get install make libncurses5-dev libncurses5 gcc libc6-dev zlib1g-dev python python-dev python-twisted libcurl3 libcurl3-dev bzip2 automake autoconf vim ncurses-dev python2.3-dev

Und das Paket kernel-package von www.backports.org

apt-get install -t sarge-backports kernel-package

Wie man apt für die Installation aus den backports einrichtet, steht hier

Nach dieser Vorbereitung wird nach /usr/src gewechselt:

cd /usr/src

Nun werden die XEN-Sourcen heruntergeladen:

wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/xen-3.0.2-2-src.tgz

entpackt:

tar xzf xen-3.0.2-2-src.tgz

und in das Verzeichnis gewechselt:

cd xen-3.0.2-2

Um den neusten Kernel aus der 2.6.16er Reihe (2.6.16.29; Stand 15.10.2006) zu benutzen, muß der Eintrag für die herunterzuladende Kernelversion in der Datei mk.linux-2.6-xen angepasst werden. Die Kernelversion darf für XEN 3.0.2-2 nicht kleiner als 2.6.16.12 sein!

vi buildconfigs/mk.linux-2.6-xen

Die Einträge am Anfang der Datei sind wie folgt anzupassen:

OS           = linux

LINUX_SERIES = 2.6
LINUX_VER    = 2.6.16.29
LINUX_SRCS = linux-2.6.16.29.tar.bz2

EXTRAVERSION ?= xen
...

Konfigurieren

Um nun den Kernel zu konfigurieren, gibt man im Verzeichnis der XEN-Sourcen (da sollte man sich auch noch befinden) folgenden Befehl ein:

make linux-2.6-xen0-config CONFIGMODE=menuconfig

Es wird dabei der Kernel, welchen man in der Datei buildconfigs/mk.linux-2.6-xen eingetragen hat, herunter geladen, entpackt und zum Konfigurieren mit menuconfig geöffnet. Möchte man den Kernel selber downloaden oder hat es bereits, dann muss die *.tar.bz2-Datei im Verzeichnis /usr/src/xen-3.0.2-2 liegen. Er wird dann ebenfalls entpackt.

Es wird nun ein Dom0 Kernel gebaut. Treiber für z.B. IDE-/SCSI-/SATA-Controller, den Prozessor, XEN, ... sollten fest in den Kernel aufgenommen werden. Netzwerkkarten, oder Geräte, welche nicht sofort beim Start benötigt werden, können als Modul eingetragen sein.


Kompilieren

Um den Kernel zu kompilieren, wird in das Kernelverzeichnis gewechselt, welches nun im XEN-Source-Verzeichnis entstanden ist. Darin folgendes Kommando ausführen:

make-kpkg --revision xen1 kernel_image

Der Kernel wird nun kompiliert und in ein Debian-Paket gepackt. Dieses lässt sich anschließend mit

dpkg -i linux-xen0-KERNELVERSION_0.1_i386|amd64.deb

Nun müssen noch manuell die Einträge in Grub gemacht werden.

Kernel für eine DomU bauen

Um einen Kernel für eine DomU zu erstellen, sind die gleichen Schritte wie oben genannt nötig. Die Konfiguration startet man jedoch mit:

make linux-2.6-xenU-config CONFIGMODE=menuconfig

Im XEN-Source-Verzeichnis liegt dann ein Kernelverzeichnis, welches ein U im Namen hat. Es ist wichtig dieses Verzeichnis umzubenennen. Das U muss klein geschrieben werden, da make-kpkg nicht mit Großbuchstaben im Paketnamen zurecht kommt.

>ls
linux-2.6.16.29-xenU
mv linux-2.6.16.29-xenU linux-2.6.16.29-xenu

Man kann dem Verzeichnis auch einen anderen Namen geben, z.B. den Namen für die Domain - linux-2.6.16.29-firewall.

Um auch dem Kernel einen individuellen Namen zu geben, kann man im Makefile im Kernelverzeichnis die Zeile:

XENGUEST = -xenu

durch z.B.:

XENGUEST = -firewall

ersetzt werden.

Mit

make-kpkg --revision 0.1 kernel_image

baut man dann wieder den Kernel.

Die Installation geschieht dann wieder mit dpkg wie bei dem Dom0-Kernel.

--McAldo 18:49, 15. Okt 2006 (CEST)

Persönliche Werkzeuge