Kernel-Tips zur Version 2.2
Der Download:
Es gibt zwei Möglichkeiten, den Kernel zu beziehen:
- Die vollen Sourcen:
Entweder findet man sie auf CDs oder man bezieht sie aus dem Internet: Die Quellen des 2.2er-Kernels findet man z.B. auf ftp://ftp.de.kernel.org/pub/linux/kernel/v2.2/ Die Datei heißt entweder linux-2.2.*.tar.gz, wenn sie mit gzip gepackt wurde, oder linux-2.2.*.tar.bz2, wenn sie mit bzip2 gepackt wurde. Es empfiehlt sich, wenn man bzip2 installiert hat, dass man die bz2-Datei herunterlädt, denn diese ist um mehrere Megabyte kleiner. - Den Patch:
Den Patch kann man genauso bekommen wie die vollen Sourcen. Die Patch-Dateien heißen patch-2.2.*.gz oder patch-2.2.*.bz2. Diese Patches kann man aber nur verwenden, wenn man die vorhergegangene Version des Kernels hat. Man kann es mit einem Upgrade vergleichen.
Vor der Installation
Den alten Kernel und System.map sichern.
Man wechselt in das Verzeichnis, in dem der Kernel ist, z.B. cd /boot/. Dann muss man den alten Kernel sichern, für den Fall, daß etwas mit dem neuen nicht stimmt.
mv vmlinuz vmlinuz.old
Damit die Sicherung komplett ist, sollte auch noch die System.map gesichert werden.
LILO konfigurieren
Falls LILO verwendet wird, den gesicherten Kernel in lilo.conf eintragen. Tragen Sie dazu folgende Zeilen am Ende von /etc/lilo.conf ein. Hier wird /boot/ als Kernel-Verzeichnis genommen. Bitte beachten Sie, das richtige Verzeichnis zu benutzen. Und tragen Sie auch die richtige Root-Partition bei root= ein (hier wird /dev/hdb4 benutzt).
#Eintrag fuer alten Kernel: image = /boot/vmlinuz.old root = /dev/hdb4 label = old
Initialisieren Sie LILO noch NICHT neu.
Entpacken der vollen Sourcen
cp linux-2.2.*.tar.* /usr/src cd /usr/src mv linux linux.old tar xvfz linux-2.2.*.tar.gz
Kopieren Sie das Archiv des Linux-Kernels nach /usr/src/. Wechseln Sie nach /usr/src/ Entfernen Sie das aktuelle Verzeichnis linux. Falls es ein Symlink ist, kann man ihn löschen. Ist es jedoch ein Verzeichnis, empfiehlt sich, es umzubenennen. Entpacken Sie nun die Sourcen mit tar. Haben Sie das bzip2-Archiv, dann sind die Optionen xvfz durch xvfj zu ersetzen (bei älteren tar-Versionen xvfI oder xvfy).
Installation der Patches
cp patch-2.2.* /usr/src cd /usr/src zcat patch-2.2.*.gz | patch -p0 -s -E
Kopieren Sie den Patch nach /usr/src/. Wechseln Sie nach /usr/src/ Installieren Sie den Patch. Haben Sie eine bzip2-Datei, dann verwenden Sie bzcat (oder bz2cat) statt zcat. Zur Sicherheit sollten Sie aber vorher eine Sicherungskopie des Verzeichnisbaumes anlegen, denn es kann ja mal etwas schief gehen und der Kernel läßt sich später nicht mehr richtig compilieren. Zwar können Sie den Patch auch rückgängig machen:
patch -p0 -s < config.in.rej
aber auch das kann schiefgehen. Eine Möglichkeit, den ganzen Patch rückgängig zu machen, gibt es auch noch, indem man einfach ein -R als Parameter anfügt. Doch aus das kann scheitern.
Abarbeiten der Datei Changes
Sie müssen erst einmal in das Verzeichnis /usr/src/linux/Documentation wechseln. In der Datei Changes stehen eine Reihe von Versionsnummern von Programmen, die der Kernel benötigt. Sie müssen nun die Programme updaten, wenn nötig. Natürlich nicht alle, es ist unnötig, LOADLIN zu updaten, wenn Sie nicht mit LOADLIN booten. Woher Sie die Programme bekommen, steht auch in der Changes-Datei.
Kernel konfigurieren
Wenn dann die Programme auf die gewünschte Version aktualisiert wurden, geht es daran, den Kernel zu konfigurieren. Wechseln Sie zunächst in das Kernel-Verzeichnis (cd /usr/src/linux). Es gibt drei Befehle, die verschiedene Oberflächen zur Konfiguration bieten:
- make config: Die älteste Methode. Hier wird jeder Treiber einzeln abgefragt. Mit zunehmender Zahl von Treibern wird diese Methode immer zeitaufwendiger.
- make menuconfig: Das basiert auch auf dem Textmodus. Jedoch ist es menügesteuert und bunt.
- make xconfig: Das ist eine X-Window-Applikation.
Ich empfehle, make xconfig
zu benutzen, da dieses mittlerweile übersichtlicher ist. Manchmal verrutschen Teile des Fensters. Dann sollten Sie make menuconfig
benutzen. Hier stehen dann folgende Untermenüs zur Verfügung:
Menüeintrag | Bedeutung |
Code maturity level options | Hier wird bestimmt, ob experimentelle Treiber zur Auswahl stehen sollen. |
Processor type and features | Hier werden Prozessor-spezifische Einstellungen gemacht. |
Loadable module support | Hier können Einstellungen für die Kernel-Module gemacht werden. Kernel-Module sind Treiber, die während der Laufzeit zum Kernel zugegeben oder weggenommen werden können. Wenn Sie in diesem SubMenu Kernel module loader wählen, werden Module automatisch geladen, wenn sie gebraucht werden (das ist vorteilhaft). |
General setup | Für die generellen Kernel-Einstellungen |
Plug and Play support | Einstellungen für die Unterstützung von Plug&Play |
Block Devices | Einstellungen für Block-Geräte (Festplatte, CD-ROM, Floppy,...) |
Networking options | Einstellungen für das Netzwerk |
Telephony Support | Einstellungen für die Telephonie-Unterstützung |
SCSI support | Einstellungen für SCSI |
Network Device support | Einstellungen für die zu unterstützenden Netzwerk-Geräte und Interfaces |
Amateur Radio support | Alle Einstellungen spezifisch für Amateurfunk |
IrDA subsystem support | Einstellungen für Infrarot-Schnittstellen |
ISDN subsystem | Einstellungen für ISDN-Protokolle, ISDN-Karten... |
Old CD-ROM drivers | Einstellungen für nicht IDE/SCSI-CD-ROM-Laufwerke |
Character devices | Einstellungen für Drucker, Maus, Joystick, ... |
Filesystems | Festlegungen der zu unterstützenden Dateisysteme oder Partitionstabellentypen |
Console drivers | Verschiedene Treiber für den Textmodus |
Sound | Soundunterstützung |
Kernel hacking | Sehr nützlich, um in das (auch abgetürzte) System einzugreifen... es z.B. beenden |
Verlassen Sie das Programm und speichern Sie die Konfiguration.
Editieren Sie Makefile. In etwa der 70. Zeile befindet eine Zeile wie #install_path=/boot. Entfernen Sie das # und tragen Sie den Pfad ein, wo der Kernel installiert werden soll. Speichern Sie ab, und beenden Sie den Editor.