Das FreeBSD-Handbuch
Zurück | Kapitel 8. Konfiguration des FreeBSD-Kernels | Weiter

# 8.5. Erstellen und Installation eines angepassten Kernels

Zuerst erläutern wir die Verzeichnisstruktur, in der der Kernel gebaut wird. Die im Folgenden genannten Verzeichnisse sind relativ zum Verzeichnis `/usr/src/sys` angegeben, das Sie auch über den Pfad `/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`, `amd64`, `ia64`, `powerpc`, `sparc64` oder `pc98` (eine in Japan beliebte Architektur) sein. Alles in diesen Verzeichnissen ist nur für die jeweilige Architektur relevant. Der Rest des Codes ist maschinenunabhängig und für alle Plattformen, auf die FreeBSD portiert werden kann, gleich. Beachten Sie die Verzeichnisstruktur, die jedem unterstützten Gerät, jedem Dateisystem und jeder Option ein eigenes Verzeichnis zuordnet.

Die Beispiele in diesem Kapitel verwenden ein i386-System. Wenn Sie ein anderes System benutzen, passen Sie bitte die Pfade entsprechend der Architektur des Systems an.

> Anmerkung: Falls Sie kein `/usr/src/sys` Verzeichnis vorfinden, so sind die Kernelquellen nicht installiert. Der einfachste Weg, dies nachzuholen, ist `sysinstall` als `root` auszuführen. Dort wählen Sie Configure, dann Distributions, dann src, danach base und 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 -
>     # cat /cdrom/src/sbase.[a-d]* | tar -xzvf -

Als nächstes wechseln sie in das Verzeichnis ``arch`/conf` und kopieren die Konfigurationsdatei `GENERIC` in eine Datei, die den Namen Ihres Kernels trägt. Zum Beispiel:

    # 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. Wenn Sie so vorgehen, werden Sie kurz darauf merken, dass Sie soeben Ihre Kernelkonfigurationsdatei gelöscht haben.

> Editieren Sie immer eine Kopie von `GENERIC`. Änderungen an `GENERIC` können verloren gehen, wenn der Quellbaum aktualisiert wird.

> Sie sollten die Konfigurationsdatei an anderer Stelle aufheben und im Verzeichnis ``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

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, bevor Sie etwas verändern, `/usr/src/UPDATING` durchlesen. 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.

Den Kernel bauen

1. Wechseln Sie in das Verzeichnis `/usr/src`:

       # cd /usr/src

2. Kompilieren Sie den neuen Kernel:

       # make buildkernel KERNCONF=MYKERNEL

3. Installieren Sie den neuen Kernel:

       # make installkernel KERNCONF=MYKERNEL

> Anmerkung: Sie benötigen den kompletten Quellcodebaum, um den Kernel zu bauen.

> Tipp: In der Voreinstellung werden beim Bau eines angepassten Kernels stets alle Kernelmodule neu gebaut. Wollen Sie Ihren Kernel schneller bauen oder nur bestimmte Module bauen, sollten Sie `/etc/make.conf` anpassen, bevor Sie Ihren Kernel bauen:

>     MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

> Wenn Sie diese Variable setzen, werden ausschließlich die hier angegebenen Module gebaut (und keine anderen).

>     WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs

> Durch das Setzen dieser Variable werden werden alle Module bis auf die angegebenen gebaut. Weitere Variablen, die beim Bau eines Kernels von Interesse sein könnten, finden Sie in make.conf(5).

Der neue Kernel wird im Verzeichnis `/boot/kernel`, genauer unter `/boot/kernel/kernel` abgelegt, während der alte Kernel nach `/boot/kernel.old/kernel` verschoben wird. Um den neuen Kernel zu benutzen, sollten Sie Ihren Rechner jetzt neu starten. 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 startet.

> Anmerkung: Im Verzeichnis `/boot` werden 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/kernel` abgelegt. Beachten Sie bitte, dass diese Module immer zu dem verwendeten Kernel passen müssen. Module, die nicht zu dem verwendeten Kernel passen, gefährden die Stabilität des Systems.

Zurück | Zum Anfang | Weiter
Kerneltreiber, Subsysteme und Module | Nach oben | Die Kernelkonfigurationsdatei

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.