| Kernel-Tips zur Version 2.2 |
|
|
|
|
Von Diese E-Mail-Adresse ist gegen Spam-Bots geschützt, du musst Javascript aktivieren, damit du sie sehen kannst und Diese E-Mail-Adresse ist gegen Spam-Bots geschützt, du musst Javascript aktivieren, damit du sie sehen kannst Es gibt zwei Möglichkeiten, den Kernel zu beziehen:
2.1. 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. 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. 3. 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). 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. 5. 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. 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:
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:
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. Jetzt kommt der einfache Teil, das Compilieren des Kernels. Wechseln Sie zuerst wieder in das Kernelverzeichnis (cd /usr/src/linux/). Lassen Sie zunächst eine Abhängigkeits-Tabelle für das Compilieren anfertigen. make dep Anschließend beseitigen Sie unnötige Objekt-Dateien make clean Bauen Sie den Kernel make bzImage Nur in Ausnahmefällen sollte man noch auf den Befehl make zImage anstelle von make bzImage zurückgreifen. Wenn Sie unter einer anderen Architektur als x86 arbeiten, müssen Sie wahrscheinlich make vmlinux oder ähnliches verwenden. Generell hier eine kleine Empfehlung: Lagern Sie, wenn möglich, die meisten Optionen und vor allem Treiber als Module aus. Denn wenn Sie z.B. einen Netzwerkkartentreiber direkt in den Kernel compilieren und diesen irgendwann mal durch einen anderen ersetzen wollen, kann es unter Umständen dazu kommen, daß der Kernel mit einer Fehlermeldung abbricht. Der Vorteil der Module besteht darin, daß sie nicht zwingend notwendig sind, also auch zur Laufzeit von Linux geladen und wieder beendet werden können. Sie werden folgendermaßen erstellt: make modules Installieren Sie dann die Module: make modules_install Dieser Befehl installiert die Module dann in /lib/modules/2.2.* Die ganze Prozedur noch einmal für Schreibfaule: make dep clean bzImage modules modules_install Es kann beim Compilieren manchmal zu einem Abbruch mit anschließender Fehlermeldung kommen. Leider lassen sich diese kaum verallgemeinern, da sie oftmals systemspezifisch sind. Aber die meisten Fehler liegen an nicht installierten Paketen. Es wird z.B. unbedingt gcc benötigt. Auch sollten sie darauf achten, daß die entsprechenden Pfadverweise existieren. Generell sei hier noch erwähnt, daß Sie sich die Fehlermeldung, mit der der Compilierungsprozeß abbricht, genau durchlesen sollten. Hier finden Sie durchaus kleine Hinweise, was schief gelaufen sein könnte. Mir ist es schon passiert, daß ich die config-Datei der Vorgängerversion einfach kopiert habe und nachträglich neue Optionen hinzugefügt wurden und er diese nun nicht finden konnte. Wenn Sie mit LILO booten, müssen Sie (wenn Sie sich im Kernel-Verzeichnis befinden) nur make zlilo eingeben, bzw. make bzlilo wenn Sie vorher mit make bzImage compiliert haben. Wollen Sie den Kernel auf eine Diskette bringen (für Anfänger am besten), dann geben sie make zdisk ein, bzw. make bzdisk. Wenn Sie mit LOADLIN von DOS aus booten, dann kopieren Sie den compilierten Kernel /usr/src/linux/arch/i386/boot/bzImage dahin (und mit demselben Namen), wo ihr alter Kernel war. Das ist normalerweise im Verzeichnis von LOADLIN.EXE. Beispiel: cp /usr/src/linux/arch/i386/boot/bzImage /dos/LOADLIN/vmlinuz Sie können es auch auf die "harte Tour" machen: Der ins Binärformat umgesetzte Kernel befindet sich im Verzeichnis /usr/src/linux/arch/i386/boot/ (für PC-kompatible Computer). Dort befindet sich die Datei (b)bzImage. Diese kopieren Sie zusammen mit der Datei System.map, zu finden in /usr/src/linux, in ein Verzeichnis. Danach editieren Sie die Datei /etc/lilo.conf und ändern die Angaben entsprechend, je nachdem wo sich nun der neue Kernel befindet. Die beiden Dateien sollten sich im gleichen Verzeichnis befinden. Hier ein kleines Beispiel:
image=/boot/vmlinuz
label=linux
root=/dev/hdb2
read-only
image=/boot/vmlinuz.old
label=linux-alt
root=/dev/hdb2
read-only
other=/dev/hda1
label=Windows
table=/dev/hda
Wichtig ist die Zeile image=/boot/vmlinuz. Hier wird der Kernel eingetragen. Danach finden Sie noch einen Verweis auf den alten Kernel (den Sie vorher umbenannt haben sollten, falls etwas schief geht). Zu guter Letzt sorgt der Befehl lilo dafür, daß diese ganzen Einstellungen im Master Boot Record (MBR) der Festplatte gespeichert werden. |
|||||||||||||||||||||||||||||||||||||||||
| < Zurück | Weiter > |
|---|



