Kapitel 7. Kernelkonfiguration

7.1. Ich möchte meinen Kernel anpassen. Ist das schwierig?
7.2. Warum ist mein Kernel so groß?
7.3. Wieso kann ich nicht einmal den Standard-Kernel (GENERIC) bauen?
7.4. Wie kann ich prüfen, welchen Scheduler das System benutzt?
7.5. Was bedeutet kern.sched.quantum?

7.1.

Ich möchte meinen Kernel anpassen. Ist das schwierig?

Überhaupt nicht! Lesen Sie den Abschnitt zur Kernelkonfiguration im Handbuch.

Anmerkung:

Der neue kernel wird zusammen mit seinen Modulen im Verzeichnis /boot/kernel installiert werden. Der alte Kernel und dessen Module wird in das Verzeichnis /boot/kernel.old verschoben, damit Sie, wenn Sie einen Fehler in Ihrer Konfiguration haben, die vorherige Version des Kernels starten können.

7.2.

Warum ist mein Kernel so groß?

FreeBSDs GENERIC-Kernels werden im Debug-Modus erstellt. Ein Debug-Kernel enthält viele zusätzliche Informationen für die Fehlersuche. In FreeBSD 11.0 und neueren Versionen werden diese Debug-Dateien in /usr/lib/debug/boot/kernel gespeichert. Ältere Versionen von FreeBSD speichern diese Dateien im selben Verzeichnis wie den Kernel, /boot/kernel. Bitte beachten Sie, dass die Verwendung eines Debug-Kernels die Performance des Systems nicht oder nur minimal reduziert; außerdem ist es für den Fall einer system panic sehr praktisch, einen Debug-Kernel zur Hand zu haben.

Wenn Ihnen allerdings der Plattenplatz ausgeht, gibt es verschiedene Möglichkeiten die Größe von /boot/kernel/ und /usr/lib/debug/ zu reduzieren.

Um die Kernel-Symbole nicht zu installieren, nehmen Sie folgende Zeile in /etc/src.conf auf:

WITHOUT_KERNEL_SYMBOLS=yes

Weitere Informationen finden Sie in src.conf(5).

Wenn Sie überhaupt keine Debug-Dateien erzeugen möchten, müssen Sie folgendes sicherstellen:

  • Die folgende Zeile darf nicht in der Kernelkonfigurationsdatei enthalten sein:

    makeoptions DEBUG=-g
  • Rufen Sie nicht config(8) mit -g auf.

Jede der oben genannten Einstellungen bewirkt, dass der Kernel im Debug-Modus erstellt wird.

Um nur die angegebenen Module zu erstellen und zu installieren, nehmen Sie diese in /etc/make.conf auf:

MODULES_OVERRIDE= accf_http ipfw

Ersetzen Sie accf_httpd ipfw durch die gewünschten Module. Nur aufgelistete Module werden gebaut. Dies reduziert die Größe des Kernel-Verzeichnisses sowie die benötigte Zeit, um den Kernel zu übersetzen.

Um die Größe des Kernels weiter zu reduzieren, können nicht benötigte Geräte aus dem Kernel entfernt werden. F: 7.1 enthält weitere Informationen.

Um eine dieser Optionen in Kraft zu setzen, folgen Sie den Anweisungen zum Erstellen und Installieren eines neuen Kernels.

Der FreeBSD 11 amd64 Kernel (/boot/kernel/kernel) ist circa 25 MB groß.

7.3.

Wieso kann ich nicht einmal den Standard-Kernel (GENERIC) bauen?

Es gibt eine Reihe von möglichen Ursachen für dieses Problem:

  • Der Quellbaum unterscheidet sich von dem, der verwendet wird, um das aktuell laufende System zu erstellen. Wenn Sie ein Upgrade durchführen, lesen Sie /usr/src/UPDATING und achten Sie besonders auf den Abschnitt COMMON ITEMS am Ende.

  • Beim Kommando make buildworld sind Fehler aufgetreten. Um seine Arbeit erledigen zu können, benötigt make buildkernel Dateien, die von make buildworld erzeugt werden.

  • Auch wenn Sie FreeBSD-STABLE verwenden, ist es durchaus möglich, dass Sie die Quellen genau zum falschen Zeitpunkt aktualisiert haben: Während Sie gerade modifiziert wurden oder kurzzeitig fehlerhaft waren. Eine Garantie, dass Sie die Quellen übersetzen können, gibt es nur für die Releases, bei FreeBSD-STABLE ist das nicht immer so. Versuchen Sie, die Quellen nochmals zu aktualisieren. Es ist denkbar, dass der von Ihnen genutzte Server zurzeit Probleme hat, benutzen Sie daher auch einmal einen anderen Server.

7.4.

Wie kann ich prüfen, welchen Scheduler das System benutzt?

Der Name des aktuell verwendeten Schedulers steht in der sysctl-Variablen kern.sched.name:

% sysctl kern.sched.name
kern.sched.name: ULE

7.5.

Was bedeutet kern.sched.quantum?

kern.sched.quantum ist die maximale Anzahl Ticks, die ein Prozess im 4BSD-Scheduler ununterbrochen laufen kann.

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>.