Sie benötigen den kompletten Quellcodebaum, um den Kernel zu bauen.
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
, in dem
Sie die Konfigurationsdatei für den angepassten Kernel
erstellen werden, und arch
/confcompile
, in dem der Kernel
gebaut wird. arch
kann entweder
i386
,
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.
Falls Sie kein /usr/src/
-Verzeichnis
vorfinden (oder dieses leer ist), so sind die Quellen nicht
installiert. Der einfachste Weg, dies nachzuholen, ist
sysinstall
als root
auszuführen. Dort wählen Sie
, dann
, dann
, und schließlich
. Falls nicht vorhanden, sollten
Sie auch noch einen symbolischen Link auf
/usr/src/sys/
anlegen:
#
ln -s /usr/src/sys /sys
Als nächstes wechseln sie in das Verzeichnis
und kopieren die Konfigurationsdatei
arch
/confGENERIC
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
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
einen Link auf die Datei erstellen.i386
Beispiel:
#
cd /usr/src/sys/i386
/conf
#
mkdir /root/kernels
#
cp GENERIC /root/kernels/MYKERNEL
#
ln -s /root/kernels/MYKERNEL
Jetzt editieren Sie
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
MYKERNEL
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.
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.
Sie benötigen den kompletten Quellcodebaum, um den Kernel zu bauen.
Wechseln Sie in das Verzeichnis /usr/src
:
#
cd /usr/src
Kompilieren Sie den neuen Kernel:
#
make buildkernel KERNCONF=MYKERNEL
Installieren Sie den neuen Kernel:
#
make installkernel KERNCONF=MYKERNEL
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:
Wenn Sie diese Variable setzen, werden ausschließlich die hier angegebenen Module gebaut (und keine anderen).
Durch das Setzen dieser Variable werden werden alle Module auf oberster Ebene 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.
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.
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>.