| FreeBSD Handbuch | ||
|---|---|---|
| Zurück | Kapitel 9. Konfiguration des FreeBSD Kernels | Nach vorne |
Zuerst erläutern wir die Verzeichnisstruktur, in der der Kernel gebaut wird. Die im Folgenden genannten Verzeichnisse sind relativ zu /usr/src/sys angegeben, das Sie auch über /sys erreichen können. Es existieren mehrere Unterverzeichnisse, die bestimmte Teile des Kernels darstellen, aber die für uns wichtigsten sind arch/conf, in dem Sie die Konfigurationsdatei für den angepassten Kernel erstellen werden, und compile, in dem der Kernel gebaut wird. arch kann entweder i386, alpha oder pc98 (eine in Japan beliebte Architektur) sein. Alles in diesen Verzeichnissen ist nur für die jeweilige Architektur relevant, während der Rest des Codes für alle Plattformen, auf die FreeBSD portiert werden kann, gleich ist. Beachten Sie die Verzeichnisstruktur, die jedem unterstützten Gerät, jedem Dateisystem und jeder Option ein eigenes Verzeichnis zuordnet.
Anmerkung: Falls Sie kein /usr/src/sys Verzeichnis vorfinden, so sind die Kernelquellen nicht installiert. Der einfachste Weg dies nachzuholen, ist /stand/sysinstall als root auszuführen. Dort wählen Sie Configure, dann Distributions, dann src und schließlich sys. Wenn Sie eine Aversion gegen sysinstall haben und eine ``offizielle'' FreeBSD CD-ROM besitzen, können Sie die Kernelquellen auch von der Kommandozeile installieren:
# mount /cdrom # mkdir -p /usr/src/sys # ln -s /usr/src/sys /sys # cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
Als nächstes wechseln sie in das Verzeichnis, in dem die GENERIC Konfigurationsdatei liegt und kopieren diese in eine Datei mit dem Namen, den Sie Ihrem Kernel geben wollen:
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
Traditionell ist der Name des Kernels immer in Großbuchstaben. Wenn Sie mehrere FreeBSD mit unterschiedlicher Hardware warten, ist es nützlich, wenn Sie Konfigurationsdatei nach dem Hostnamen der Maschinen benennen. Im Beispiel verwenden wir den Namen MYKERNEL.
Tipp: Es ist nicht zu empfehlen die Konfigurationsdatei direkt unterhalb von /usr/src abzuspeichern. Wenn Sie Probleme haben, könnten Sie der Versuchung erliegen, /usr/src einfach zu löschen und wieder von vorne anzufangen. Fünf Sekunden später werden Sie dann feststellen, dass Sie soeben Ihre Kernelkonfigurationsdatei gelöscht haben.
Sie sollten die Konfigurationsdatei an anderer Stelle aufheben und in i386 einen Link auf die Datei erstellen.
Beispiel:
# cd /usr/src/sys/i386/conf # mkdir /root/kernels # cp GENERIC /root/kernels/MYKERNEL # ln -s /root/kernels/MYKERNEL
Anmerkung: Diese und die folgenden Kommandos müssen Sie als root ausführen, da Sie sonst permission denied Fehler erhalten.
Jetzt editieren Sie MYKERNEL mit einem Texteditor Ihres Vertrauens. Wenn Sie gerade neu anfangen, ist Ihnen vielleicht nur der vi Editor bekannt, der allerdings zu komplex ist, um hier erklärt zu werden. Er wird aber in vielen Büchern aus der Bibliographie gut erklärt. FreeBSD bietet aber auch einen leichter zu benutzenden Editor, den ee an, den Sie, wenn Sie Anfänger sind, benutzen sollten. Sie können die Kommentare am Anfang der Konfigurationsdatei ändern, um die Änderungen gegenüber GENERIC zu dokumentieren.
Falls Sie schon einmal einen Kernel unter SunOS oder einem anderen BSD kompiliert haben, werden Sie diese Konfigurationsdatei bereits kennen. Wenn Sie mit einem anderen Betriebssystem wie DOS vertraut sind, könnte die GENERIC Konfigurationsdatei Sie verschrecken. In diesen Fall sollten Sie den Beschreibungen im Abschnitt über die Konfigurationsdatei langsam und vorsichtig folgen.
Anmerkung: Wenn Sie die FreeBSD Quellen synchronisieren, sollten Sie immer /usr/src/UPDATING durchlesen, bevor Sie etwas verändern. Diese Datei enthält alle wichtigen Informationen, die Sie beim Aktualisieren beachten müssen. Da /usr/src/UPDATING immer zu Ihrer Version der FreeBSD Quellen passt, sind die Informationen dort genauer, als in diesem Handbuch.
Nun müssen Sie die Kernelquellen kompilieren. Dazu gibt es zwei Verfahren. Welches Verfahren Sie nehmen, hängt davon ab, warum Sie den Kernel neu bauen und welche Version von FreeBSD Sie verwenden.
Wenn Sie nur die Kernelquellen installiert haben, benutzen Sie das Verfahren 1.
Wenn Sie eine FreeBSD Version vor 4.0 benutzen und nicht auf FreeBSD 4.0 oder höher mit make world migrieren, benutzen Sie Verfahren 1.
Wenn Sie einen neuen Kernel bauen wollen, ohne dabei den Quellcode zu aktualisieren, weil Sie vielleicht nur eine neue Option wie IPFIREWALL hinzugefügt haben, können Sie jedes der Verfahren einsetzen.
Wenn Sie als Teil eines make world den Kernel aktualisieren, benutzen Sie das Verfahren 2.
Verfahren 1. Bau eines Kernels mit der ``alten'' Methode
Generieren Sie die Kernel Quellen mit config(8).
# /usr/sbin/config MYKERNEL
Wechseln Sie in das Bauverzeichnis.
# cd ../../compile/MYKERNEL
Kompilieren Sie den Kernel.
# make depend
# make
Installieren Sie den neuen Kernel.
# make install
Verfahren 2. Bau eines Kernels mit der ``neuen'' Methode
Wechseln Sie in das usr/src Verzeichnis.
# cd /usr/src
Kompilieren Sie den Kernel.
# make buildkernel KERNCONF=MYKERNEL
Installieren Sie den neuen Kernel.
# make installkernel KERNCONF=MYKERNEL
Anmerkung: Mit FreeBSD 4.2 und älteren Versionen müssen Sie KERNCONF durch KERNEL ersetzen. 4.2-STABLE nach dem 2. Februar 2001 erkennt die Option KERNCONF.
Wenn Sie die Quellen nicht auf irgendeine Weise aktualisiert haben, das heißt, Sie haben nicht CVSup, CTM oder anoncvs benutzt, dann können Sie die Sequenz config, make depend, make, make install benutzen.
Der neue Kernel wird nach /kernel kopiert, während der alte Kernel nach /kernel.old verschoben wird. Um den neuen Kernel zu benutzen, sollten Sie die Maschine jetzt rebooten. Falls etwas schief geht, sehen Sie bitte in dem Abschnitt zur Fehlersuche am Ende dieses Kapitels nach. Dort sollten Sie auch unbedingt den Abschnitt lesen, der erklärt, was zu tun ist, wenn der neue Kernel nicht bootet.
Anmerkung: Ab FreeBSD 5.0 werden der neue Kernel und die Module in das Verzeichnis /boot/kernel installiert. Der alte Kernel und die dazugehörenden Module werden in das Verzeichnis /boot/kernel.old gesichert. Im Verzeichnis /boot werden auch andere Dateien, die zum Systemstart benötigt werden, wie der Boot-Loader ( loader(8)) und dessen Konfiguration, abgelegt. Module von Fremdherstellern oder angepasste Module werden in /boot/modules abgelegt. Beachten Sie bitte, dass diese Module immer zu dem verwendeten Kernel passen müssen, da Module, die nicht zu dem verwendeten Kernel passen, die Stabilität des Systems gefährden.
Anmerkung: Wenn Sie neue Geräte, wie Soundkarten, hinzugefügt haben und FreeBSD 4.X oder eine frühere Version benutzen, müssen Sie unter Umständen Gerätedateien in /dev erstellen, bevor Sie die Geräte benutzen können. Weitere Informationen finden Sie in Erstellen von Gerätedateien später in diesem Kapitel.
| Zurück | Zum Anfang | Nach vorne |
| Wieso einen eigenen Kernel bauen? | Nach oben | Die Kernelkonfigurationsdatei |
Wenn Sie Fragen zu FreeBSD haben,
schicken Sie eine EMail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie
eine Email an <de-bsd-translators@de.FreeBSD.org>.