Debian GNU/Linux Anwenderhandbuch | ||
---|---|---|
Zurück | Kapitel 19. Systemadministration | Nach vorne |
Zunächst benötigen Sie, neben dem Paket kernel-package, welches Sie schon installieren können, ein Paket mit dem gewünschten Kernel-Quellcode (Source). Sie finden die Archive unter ftp://ftp.kernel.org oder auf den Spiegelservern in Deutschland: ftp://ftp.de.kernel.org oder ftp://ftp2.de.kernel.org.
Tip: aktuelle Kernel-Version herausfinden: Wenn Sie sich nicht per FTP durch die Verzeichnisse auf dem Kernel-Server „wühlen“ möchten um nachzusehen, ob es eine neue Version gibt, können Sie mit dem Kommando finger @www.kernel.org die aktuelle Kernel-Version ermitteln.
Weiter benötigen Sie einige zusätzliche Pakete, um einen neuen Kernel zu übersetzen, dies sind: gcc, libc5-dev oder besser (weil aktueller) libc6-dev, binutils, make, gawk oder mawk, gzip, shellutils, grep sowie bin86 auf der i386-Plattform. Wenn Sie das Kommando make menuconfig zur Kernel-Konfiguration benutzen möchten, muß das Paket libncurses5-dev installiert sein. Aber sicher haben Sie einige davon bereits installiert...
Wenn die notwendigen Pakete installiert sind, entpacken Sie die Kernel-Quellen, üblicherweise geschieht dies unter /usr/src/. Die entpackten Quellen befinden sich dann im Verzeichnis /usr/src/linux. Es ist ratsam, wenn Sie verschiedene Kernelversionen verwalten wollen, diese umzubenennen, beispielsweise in: kernel-source-2.2.14.
Wählen Sie in jedem Fall ein Verzeichnis auf Ihrer Platte, in dem genug Platz vorhanden ist. Die neuesten Kernel-Versionen sind in gepackter Form ca. 16,5 MB groß und nehmen im entpackten Zustand ca. 97 MB sowie ca. 116 MB, wenn alles übersetzt ist, ein. Je entpackter Kernel-Version! Wechseln Sie nun in das Verzeichnis, in dem die Kernel-Quellcodes liegen.
Der Name eines Debian GNU/Linux-Paketes besteht immer aus dem Basisnamen (hier: kernel-image), der Versionsnummer des Kernels (zum Beispiel 2.2.14, diese wird aus dem Kernel-Makefile ermittelt) und der sogenannten Revisionsnummer, diese können Sie individuell vergeben (über die Option --revision, die Sie dem Programm make-kpkg übergeben können). Sie sollten diese Revisionsnummer eindeutig wählen, um zu verhindern, daß ein bereits installierter Kernel überschrieben wird. Weiterhin darf das Zeichen „_“ (Unterstrich) nicht verwendet werden. Alternativ können Sie auch die Umgebungsvariable DEBIAN_REVISION auf den gewünschten Wert setzen.
Sie sollten die Revisionsnummer bei jedem neuen Kernel erhöhen, das Debian-Paketsystem kann so automatisch ein Update durchführen. Auch für das Paket kernel-package gibt es natürlich eine Konfigurationsdatei, diese finden Sie wie üblich im Verzeichnis /etc/ als kernel-pkg.conf. Üblicherweise sollten Sie dort mindestens Ihren Namen sowie die E-Mail-Adresse angeben, Sie können so immer feststellen, daß dieses Paket kein Original-Debian-Paket ist. Sie können, wenn nötig, noch weitere Variablen in dieser Datei benutzen. Momentan werden folgende Optionen unterstützt:
maintainer: Der „Betreuer“ dieses Kernel-Paketes. Wenn Sie hier ein Apostroph (') verwenden möchten, so müssen Sie dieses wie folgt angeben: John O'\\''Brien.
email: Ihre E-Mail-Adresse
pgp: Name, der in der PGP-Datenbank gesucht werden soll. Normalerweise wird hier der Maintainer automatisch eingesetzt, Sie können dies auch mit der Umgebungsvariablen PGP_SIGNATURE überschreiben.
debian: Revisionsnummer des Paketes, Standardwert ist 1.00. Es kann die Umgebungsvariable DEBIAN_REVISION benutzt werden.
image_in_boot: Wenn Sie diese Variable auf TRUE setzen, wird der Kernel im Verzeichnis /boot/ abgelegt und ein entsprechender symbolischer Link angelegt, anstatt wie sonst üblich den Kernel direkt in das „root-“Verzeichnis (/) zu kopieren. Dies kann auch über die Umgebungsvariable IMAGE_IN_BOOT gesetzt werden.
kimage: Typ des Kernel-Images, zum Beispiel zImage oder bzImage, Standardwert ist bzImage. Dieser Wert kann über die Umgebungsvariable IMAGE_TYPE gesetzt werden.
no_symlink: kann nicht zusammen mit reverse_symlink verwendet werden. Sinnvoll kann diese Option im Zusammenspiel mit image_in_boot verwendet werden. Bei Verwendung der no_symlink Option wird das Kernel Image immer als Datei vmlinuz abgelegt (und nicht als /boot/vmlinuz-x.x.xx). Ein bereits existierendes Kernel Image wird in jedem Fall (und nicht nur wenn es sich vom neuen Kernel Image unterscheidet) in vmlinuz.old umbenannt. Dieses bringt eine Beschränkung auf zwei Kernel Images mit sich, weitere Versionen müssen dann von Hand eingepflegt werden. Diese Option kann auf Systemen eingesetzt werden welche keinen symbolischen Links unterstützen, beispielsweise wenn loadlin eingesetzt wird. Diese Option ist aber eher als Hack zu betrachten...
Sie benötigen folgende Pakete, um einen Kernel selber zu erzeugen:
Nützlich, aber nicht zwingend erforderlich, sind weiterhin folgende Pakete:libncurses4-dev - Entwickler-Bibliotheken und Dokumentation für ncurses
tkstep8.0-dev - NeXTStep ähnlich Version des Tk Toolkits. (oder tk8.0-dev oder tkstep4.2-dev oder tk4.2-dev)
kernel-package - Debian Linux-Kernel Paket-Scripte.
#!/bin/bash umask 772 kernel_dir=/boot # lilo assumes the default image is the first one in lilo.conf, so # we sort the kernel images backwards, hence the highest-version'd kernel # will be the default. images=`cd $kernel_dir && ls -1 vmlinuz-* \ | egrep "vmlinuz-([0-9]+).([0-9]+).([0-9]+)[^-]*$" \ | sort -rn` cp -f /etc/lilo.conf.static /tmp/lilo.conf # three lines per entry, 3 x 19 images = 57 ( for img in $images ; do label=`echo $img | sed 's/vmlinuz/linux/ ; s/-//g ; s/\.//g'` echo "image=$kernel_dir/$img" echo "label=$label" echo "" done ) | head -57 >> /tmp/lilo.conf if /sbin/lilo -C /tmp/lilo.conf ; then mv -f /etc/lilo.conf /etc/lilo.conf.last cp -f /tmp/lilo.conf /etc/lilo.conf echo successfully installed new bootloader. rm -f /tmp/lilo.conf exit 0 else echo eek, lilo barfed rm -f /tmp/lilo.conf exit 1 fi |
none /var/shm shm defaults 0 0 |
Zurück | Zum Anfang | Nach vorne |
Systemzeit | Nach oben | Kernel Pakete |