Am Ende der Konfiguration weist das Script ebenfalls darauf hin, man
solle ein make dep
sowie ein make clean
durchführen.
Dies sollte man in jedem Fall tun, damit die wechselseitigen
Abhängigkeiten der Quell- und Include-Dateien richtig zusammengestellt
werden. Dies dauert nicht sehr lange (auf meinem DX/2-80 aber fast
länger als ein kompletter Kernel-Compile auf einem PPro...). Danach
löscht man mit make clean
alle alten Objekt-Dateien und stellt
so sicher, das sie wirklich neu übersetzt werden. Dieser Schritt ist
wirklich wichtig, und einige fehlgeschlagene Kompilierungsversuche
beruhten nur auf einem vergessenen make dep ; make clean
!
Nun kommt der zeitraubende Teil: make zImage
(oder make
zdisk
) kompiliert den gesamten Kernel und hinterläßt die Datei
zImage
im Verzeichnis arch/i386/boot
. Dies ist der
neue, komprimierte Kernel. make zdisk
macht dasselbe,
installiert aber diesen Neuen Kernel gleich auf einer Floppy, die man
hoffentlich rechtzeitig in das Laufwerk A:
getan hat.
Die letztere Methode ist ziemlich praktisch, um neue Kernels relativ
gefahrlos zu testen: Wenn er aus irgendeinem Grund nicht richtig
funktioniert oder gar abstürzt nimmt man einfach die Diskette aus dem
Laufwerk und bootet den alten Kernel. Generell ist es immer eine gute
Idee, eine solche bootfähige Diskette mit einem funktionierenden Kernel
zur Hand zu haben. Denn irgendwann kommt immer der Tag, an dem man aus
Versehen den Kernel von der Festplatte löscht oder eine ähnliche
Dummheit begeht.
Alle halbwegs aktuellen Kernels sind komprimiert, daher das z
am Anfang der Namen. Ein solcher komprimierter Kernel entpackt sich
automatisch selber, wenn er bootet.
make mrproper
macht etwas ähnliches wie clean
, aber
sehr viel umfassender. Manchmal ist das notwendig, um ein wirklich
`sauberen' Verzeichnisbaum zu generieren. Dabei werden aber auch die
alten Einstellungen der Konfiguration gelöscht, eventuell sollte man
sich deshalb eine Sicherungskopie der Datei .config
aufheben um
bei Bedarf die alten Einstellungen nachsehen zu können.
make oldconfig
versucht, die Kernel-Konfiguration automatisch
anhand einer alten Konfigurationsdatei durchzuführen. Wer noch nie einen
Kernel kompiliert hat sollte diese Option besser nicht benutzen, da
sicherlich die eine oder andere Einstellung verändert werden muß.
make modules
wird in einem eigenen Abschnitt beschrieben.
Jetzt, nachdem der Kernel erfolgreich den eigenen Wünschen entsprechend
kompiliert wurde, ist es an der Zeit, ihn zu installieren. Die meisten
Leute benutzen LILO, den Linux Loader, um Linux (und eventuell
auch einige weitere Betriebssysteme) zu booten. Für diesen Fall genügt
meist ein einfaches make zlilo
. Dabei wird der Kernel
kompiliert, installiert und lilo
aufgerufen. Danach sollte
alles für einen Reboot des neuen Kernels bereit sein.
Aber: das funktioniert nur dann, wenn lilo
folgendermaßen eingestellt und installiert ist: Der Kernel ist
/vmlinuz
, lilo
befindet sich in /sbin
und die
Konfigurationsdatei für lilo
(/etc/lilo.conf
) stimmt
mit dieser Einstellung überein. Ist dies nicht der Fall, muß man
lilo
selber aufrufen, nachdem der neue Kernel an die richtige
Stelle kopiert wurde.
Eigentlich ist
lilo
ein Paket das sehr einfach zu installieren und auch zu
benutzen ist, dennoch lassen sich manche von der Konfigurationsdatei
(/etc/lilo.conf
oder, bei älteren Versionen,
/etc/lilo/config
) verwirren. Ein typischer Eintrag in dieser
Datei sieht so aus:
image = /vmlinuz label = Linux root = /dev/hda1 ...
Der Eintrag image =
gibt den vollen Pfad des gegenwärtig
installierten Kernels, die meisten verwenden /vmlinuz
.
label
gibt einen Namen, unter dem man diesen Eintrag (wenn
mehrere vorhanden sind) ansprechen kann, und root
gibt
diejenige Partition der Festplatte an, die als /
gemountet
werden soll. Um für das hier beschriebene System den neuen Kernel zu
installieren sollte man also vom alten Kernel eine Sicherheitskopie
machen, den neuen Kernel an die angegebene Stelle kopieren und lilo
aufrufen:
% mv /vmlinuz /Old_Kernel
% mv /usr/src/linux/arch/i386/boot/zImage /vmlinuz
% lilo
Bei älteren Versionen von lilo
muß die letzte Zeile eventuell
/etc/lilo/install
oder sogar /etc/lilo/lilo -C
/etc/lilo/config
lauten.
LILO kann im Prinzip beliebig viele verschiedene Systeme booten, deshalb
kann man es auch sehr gut dazu verwenden, neuen und alten Kernel
gleichzeitig bootfähig zu haben. Hierzu ein Beispiel (Zeilen, die mit
einem #
beginnen, sind Kommentare):
# LILO configuration file Peter Suetterlin September 1996
#
# Start LILO global section
boot = /dev/hda
message=/etc/lilo.bootmenue
compact
prompt
timeout = 100
image = /vmlinuz
label = 1
root = /dev/hda2
image = /vmlinuz_old
label = 2
root = /dev/hda2
other = /dev/hda1
label = 3
table = /dev/hda
Der erste Eintrag gibt an, wo lilo
installiert werden soll
(hier auf der ersten Festplatte). In der zweiten Zeile wird eine Datei
angegeben, deren Inhalt lilo
beim Laden am Bildschirm ausgibt.
In dieser Datei steht etwa folgendes:
^LBitte eine der angegebenen Konfigurationen auswaehlen:
Def. --> 1 Linux (neuer Kernel)
2 Linux (alter Kernel)
3 MSDOS 6.0
Das ^L
(CONTROL-L
) am Anfang bewirkt dabei, daß der
Bildschirm gelöscht wird. Der dritte Eintrag (compact
)
optimiert den Ladevorgang. Das prompt
in der nächsten Zeile
bewirkt, daß lilo
auf eine Eingabe des Benutzers wartet der nun
auswählen kann, welche der drei Konfigurationen er starten will. Auf
diese Eingabe wartet lilo
10 Sekunden (timeout = 100
)
und lädt dann automatisch den ersten Eintrag der folgenden Liste.
Diese Liste enthält hier drei Einträge. Die ersten beiden beginnen mit
image =
und weisen damit auf Linux-Systeme hin. Der dritte
Eintrag (other = /dev/hda1
) betrifft ein nicht näher
spezifiziertes Betriebssystem, dessen Boot-Partition /dev/hda1
ist (in diesem Fall ist es eine DOS-Partition).
Aus diesen drei Möglichkeiten kann man nun, wie in der Meldung
angegeben, durch drücken der Tasten 1
, 2
oder
3
, entsprechend den Einträgen label=
in den einzelnen
Abschnitten, eine auswählen.
Dies beschreibt nur äußerst knapp die unzähligen Möglichkeiten, die LILO bietet. Wer sich näher darüber informieren will, sollte die sehr ausführliche Dokumentation, die mit LILO mitgeliefert wird, studieren.