Mandrake Linux 8.2: Referenz | ||
---|---|---|
Zurück | Kapitel 13. Neue Kerne kompilieren und installieren | Nach vorne |
Der Kern befindet sich in arch/i386/boot/bzImage (oder zImage falls Sie make zImage gewählt haben). Normalerweise werden Kerne im Verzeichnis /boot abgelegt. Sie müssen auch die Datei System.map dort ablegen, um sicherzustellen, dass einige Programme (etwa top) richtig laufen. Nun werden wir wieder etwas üben: benennen Sie diese Dateien anhand der durchgebauten Kernversion um. Nehmen wir an, dass Ihr Kern 2.4.10-foo heißt. Dann müssen Sie folgendes eingeben:
$ cp arch/i386/boot/bzImage /boot/vmlinux-2.4.10-foo $ cp System.map /boot/System.map-2.4.10-foo |
Jetzt müssen Sie aber noch den GNU/Linux-Starter konfigurieren. Sie haben in Ihrer Mandrake Linux-Distribution zwei Möglichkeiten: grub und LILO.
Es macht Sinn, den aktuellen Kern weiterhin starten zu können! Der einfachste Weg, grub zu aktualisieren ist die Verwendung von DrakBoot (siehe Kapitel Ihre BS-Start-Einstellungen ändern im Benutzerhandbuch). Alternativ können sie die Konfiguration auch manuell wie Folgt anpassen:
Editieren Sie die Datei /boot/grub/menu.lst. Bewahren Sie sich immer die Möglichkeit Ihren momentan laufenden Kern starten zu können. Es folgt eine typische Datei /boot/grub/menu.lst nach der Installation von Mandrake Linux und vor irgendwelchen Veränderungen.
timeout 5 color black/cyan yellow/cyan i18n (hd0,4)/boot/grub/messages keytable (hd0,4)/boot/de-latin1.klt default 0 title linux kernel (hd0,4)/boot/vmlinuz root=/dev/hda5 title failsafe kernel (hd0,4)/boot/vmlinuz root=/dev/hda5 failsafe title windows root (hd0,0) makeactive chainloader +1 title floppy root (fd0) chainloader +1 |
Wie Sie sehen, besteht diese Datei aus zwei Blöcken: dem Kopf mit allgemeinen Optionen (die ersten fünf Zeilen) und den Einträgen, die jeweils zu einem Linux-Kern oder einem sonstigem BS gehören. timeout setzt die Zeit (in Sekunden) fest, die Sie zur Auswahl eines Betriebssystems haben – hier also fünf Sekunden. Nach Ablauf dieser Zeit wird das vor eingestellte BS geladen. Dieses wird mit der Zeile default festgelegt (hier wird also der erste Eintrag vor eingestellt). Die Zeile color setzt die Farben des Menüs, die Zeile i18n wo die Willkommensmeldung zu finden ist (hier: auf der fünften Partition, also der ersten logischen der ersten Festplatte). Die Option keytable ist für die Einstellung der Tastaturbelegung an der Eingabeaufforderung verantwortlich (hier wird eine deutsche Tastatur eingestellt). Die hd(x,y) Einträge der Datei beziehen sich auf Partition y+1 auf Platte x+1, die das BIOS vorgibt.
Kommen wir nun zum Bereich mit den BS-Einträgen. Wie Sie sehen, haben wir vier verschiedene Möglichkeiten: linux, failsafe, windows und floppy.
Die Zeile für linux teilt grub mit, dass wir das Abbild mit Namen vmlinuz im Verzeichnis /boot/ der fünften (also ersten logischen) Partition der ersten Festplatte laden wollen. Die Option root=/dev/hda5 ist nicht für grub, sondern wird an den Kern weitergereicht, um diesem mitzuteilen, dass sich die Verzeichnisbaum-Wurzel (/) auf der Partition /dev/hda5 (ebenfalls die erste logische Partition) befindet. Das ist wichtig, da der Kern auf einer anderen Partition liegen könnte als die Verzeichnisbaumwurzel.
Der Eintrag failsafe ähnelt sehr stark dem Vorangegangenen. Der Unterschied liegt an der weiteren Option failsafe, welche ebenfalls an den Kern weitergegeben wird. Dieser wird dadurch veranlasst im Einbenutzermodus (engl. Single Mode), auch Rettungsmodus (engl. Rescue) genannt, zu starten.
Der Eintrag windows veranlasst grub den Start-Sektor der ersten Partition zu laden, da dieser den Windows Start-Sektor enthalten soll.
Der letzte Eintrag (floppy) lässt Ihr System von einer Diskette aus starten, unabhängig von dem darauf installierten Betriebssystem.
![]() | In Abhängigkeit zur Sicherheitsebene, die Sie eingestellt haben, sind eventuell einige der oben beschriebenen Einträge in Ihrer Datei nicht vorhanden. |
Aber zurück zum eigentlich Thema. Wir wollen nun einen weiteren Eintrag mit dem neuen Kern hinzufügen. In diesem Beispiel werden wir ihn vor alle anderen Einträge setzen, Sie können ihn aber auch an einer anderen Stelle eintragen.
title Mein Kern kernel (hd0,4)/boot/vmlinuz-2.4.10-foo root=/dev/hda5 |
Vergessen Sie nicht die Datei nach Ihren Anforderungen anzupassen. Beispielsweise muss Ihre Verzeichnisbaum-Wurzel ja nicht auf /dev/hda5 zu finden sein.
Das war's. Im Gegensatz zu LILO müssen Sie nichts weiter tun, nur Ihr System neu starten, um mit Ihrem nagelneuen Kern glücklich zu werden.
Doch halt! Haben Sie vielleicht Ihren Kern mit Framebuffer-Unterstützung kompiliert? Dann wollen Sie diese doch wahrscheinlich auch nutzen. Fügen Sie also eine Anweisung an den Kern hinzu, aus der hervorgeht, in welcher Auflösung er starten soll. Die Liste aller möglichen Modi finden Sie in /usr/src/linux/Documentation/fb/vesafb.txt oder in den Ihrer Konfiguration entsprechenden Dateien. Für den Modus 800x600 und 32 Bit[1], die Modenummer ist 0x315, geben Sie also den folgenden Befehl an:
vga=0x315 |
und der Eintrag sieht folgendermaßen aus:
title Mein Kern kernel (hd0,4)/boot/vmlinuz-2.4.10-foo root=/dev/hda5 vga=0x315 |
Für weitere Informationen lesen Sie bitten in den Info-Seiten zu grub nach (info grub).
Der einfachste Weg, LILO zu aktualisieren ist die Verwendung von DrakBoot (siehe Kapitel Ihre BS-Start-Einstellungen ändern im Benutzerhandbuch). Alternativ können sie die Konfiguration auch manuell wie Folgt anpassen:
Bei LILO müssen Sie die Datei /etc/lilo.conf anpassen. Eine typische lilo.conf sieht zu Anfang so aus:
boot=/dev/hda map=/boot/map install=/boot/boot.b vga=normal default=linux keytable=/boot/de-latin1.klt lba32 prompt timeout=50 message=/boot/message image=/boot/vmlinuz-2.4.8-17mdk label=linux root=/dev/hda1 read-only other=/dev/hda2 label=dos table=/dev/hda |
lilo.conf besteht aus einer Hauptsektion, gefolgt von einem Abschnitt für jedes zu startende Betriebssystem. Bei der oben gezeigten Datei besteht die Hauptsektion aus folgenden Anweisungen:
boot=/dev/hda map=/boot/map install=/boot/boot.b vga=normal default=linux keytable=/boot/de-latin1.klt lba32 prompt timeout=50 message=/boot/message |
,, boot= `` sagt LILO, wohin er sich installieren soll. In unserem Fall ist das der MBR (Master Boot Record) der ersten IDE-Festplatte. Möchten Sie eine LILO-Diskette erstellen, ersetzen Sie /dev/hda durch /dev/fd0. prompt teilt LILO mit, beim Start die Eingabeaufforderung anzuzeigen und ,, timeout=50 ``, das Standardsystem nach 5 Sekunden zu starten. Wenn Sie die timeout-Zeile entfernen, wartet LILO solange, bis Sie etwas eingegeben haben.
Es folgt eine linux-Abschnitt:
image=/boot/vmlinuz-2.4.8-17mdk label=linux root=/dev/hda1 read-only |
Eine ,, linux ``-Sektion beginnt immer mit ,, image= ``, gefolgt vom vollständigen Pfad zu einem gültigen GNU/Linux-Kern. Wie jede Sektion enthält sie ein ,, label `` zur eindeutigen Identifikation. ,, root `` legt fest, welche Partition die Verzeichnisbaum-Wurzel enthält. Dieser Eintrag kann bei Ihnen anders lauten. ,, read-only `` weist LILO an, dieses Dateisystem beim Start als schreibgeschützt einzuhängen. Diese Anweisung ist wichtig, um einen Konsistenztest des Dateisystems durchführen zu können. Sollten Sie ihn weglassen, erhalten Sie eine Warnung.
Es folgt die Windows-Sektion:
other=/dev/hda2 label=dos table=/dev/hda |
Ein Abschnitt um andere Betriebssysteme zu starten, wird eingeleitet durch das Wort ,, other ``. Das Argument bezeichnet den Bootsektor des Systems, hier den eines Windows-Systems. Um den Startsektor für dieses System zu finden, muss LILO noch wissen, wo sich die Partitionstabelle der betreffenden Festplatte befindet (,, table ``). ,, label `` dient wiederum zur Identifikation.
Nun wird es Zeit, den neuen Kern einzubinden. Sie können den Abschnitt an irgend einer Stelle nach dem Globalen Abschnitt platzieren. Passen Sie nur auf, dass Sie keinen andern Abschnitt ,,zerteilen``:
image=/boot/vmlinux-2.4.10-foo label=foo root=/dev/hda1 read-only |
Sie müssen natürlich daran denken, die Einstellungen an Ihre reale Situation anzupassen – daher wurde hier auch ein anderer Fall als im grub Abschnitt gewählt.
Wenn Sie Ihren Kern mit Unterstützung für den Framebuffer kompiliert haben, richten Sie sich nach dem obigen Abschnitt. Der Unterschied besteht darin, dass die Anweisung eine eigene Zeile bekommt:
vga=0x315 |
Nach diesen Änderungen, sollte Ihre lilo.conf (mit einigen zusätzlichen Kommentaren versehen, eingeleitet durch #) in etwa so aussehen:
# # Haupt-Abschnitt # boot=/dev/hda map=/boot/map install=/boot/boot.b # Wir wollen im VGA-Modus starten. Der Framebuffer ändert die Auflösung # selbst, wenn wir das wollen: vga=normal # Unser Willkommensgruß ... message=/boot/message # Was unser Standard-Betriebssystem werden soll. Sagen wir, unser # eigener Kern: default=foo # Eingabeaufforderung zeigen ... prompt # ... 5 Sekunden warten timeout=50 # # Unser neuer Kern: das Standard-BS # image=/boot/vmlinux-2.4.10-foo label=foo root=/dev/hda1 read-only # Fall VESA Framebuffer verwendet werden soll: vga=0x315 # # Der original Kern # image=/boot/vmlinuz-2.4.8-17mdk label=linux root=/dev/hda1 read-only # # Die "andere Seite" # other=/dev/hda2 label=dos table=/dev/hda |
So oder so ähnlich könnte Ihre lilo.conf nun aussehen. Passen Sie diese Datei Ihrer Konfiguration an!
Da nun alles richtig eingestellt sein sollte müssen Sie LILO noch dazu veranlassen, den Boot-Sektor der Platte zu aktualisieren:
$ lilo Added foo * Added linux Added dos $ |
Auf diese Weise können Sie so viele Kerne kompilieren wie Sie wollen: fügen Sie einfach so viele Sektionen hinzu wie Sie benötigen. Wenn Sie möchten, können Sie Ihr System jetzt neu starten, um Ihr Gesellenstück zu testen :-)
[1] | 8 Bit bedeutet 28 also 256 Farben, 16 Bit 216, also 65536 und 24 bzw. 32 Bit jeweils 224, also mehr als 16 Millionen Farben. |
Zurück | Zum Anfang | Nach vorne |
Kern und Module kompilieren, Module installieren | Nach oben | Problemlösungen |