FreeBSD — Selbstbaukernel

Als erstes ein Hinweis, das ist eine Übersetzung meines Wiki Eintrages für DesktopBSD (FreeBSD 5.5). Als erstes eine Warnung, das ist keine Anleitung für blutige Anfänger, aber es ist auch nicht derart schwierig oder zeitfressend wie z.B. in Linux. In der Regel muß man in FreeBSD keinen eigenen Kernel compilieren. Das Gros der Änderungen kann man während des Bootvorgangs tätigen, das ist z.B. einer von vielen Vorteilen des FreeBSD Systems. Wie immer werden diese Änderungen als root vorgenommen, wenn nicht bekannt ist warum oder wie man es macht, sollte man sich zuerst mit dem Portsystem vertraut machen.

Update der Quellen

#cp /usr/share/examples/cvsup/standard-supfile /etc/source-supfile

#ee /etc/source-supfile

ändere

*default host=cvsup2.at.FreeBSD.org

zu Beginn der Datei (CHANGE_THIS …), beende den Editor und speichere die Änderungen.

cvsup /etc/source-supfile

nun beginnt der Update-Vorgang, der ein paar Minuten dauert.

Anpassung des Kernels

#cd /usr/src/sys/i386/conf

#cp GENERIC CUSTOM

#ee DESKTOPBSD

(oder CUSTOM, falls man eine komplett neue Konfiguration anlegen möchte)

Damit wird die Konfigurationsdatei des Kernel geöffnet, die Anpassung kann beginnen.

Wichtig:

–niemals irgendwelche Zeilen aus der Konfigurationsdatei löschen, man sollte diese immer auskommentieren

–bevor man irgendwelche Änderungen tätigt bzw. options oder devices hinzufügt, sollte man sich schlau machen, welche Wechselwirkungen u.U. damit einhergehen z.B. via Google Groups.

–die Datei NOTES, im gleichen Verzeichnis, enthält wichtige Hinweise bezüglich diverser Einstellungen

–die entsprechenden Seiten des Handbuchs zum Kernelbau sollte man sich genauestens durchlesen

Ein paar nützliche Beispiele für ein wenig mehr Geschwindigkeit und Funktionalität:

#cpu I486_CPU

#cpu I586_CPU

kann man auskommentieren, wenn man eine relativ aktuelle CPU besitzt.

#options SMP

kann ebenfalls auskommentiert werden, falls man einen Pentium4 mit Hyperthreading besitzt bzw. überhaupt kein Multiprozessorsystem.

#options PREEMPTION

Sollte man hinzufügen, um das System reaktionsschneller zu machen. Ich habe es auf einem Athlon XP und einem Pentium 640 getestet, funktioniert seit längerer Zeit einwandfrei. Dennoch sollte man diese Option in Augenschein nehmen, falls später irgendetwas nicht sauber funktionieren sollte.

#device agp

Diese Option sollte man auskommentieren, wenn man den Nvidia Treiber benutzt, der einen eigenen AGP Treiber mit sich bringt. Höhere Stabilität und Performance sind möglich.

Kernel bauen und installieren

Nach dem die Konfigurationsdatei, z.B. DESKTOPBSD, abgespeichert wurde, ist die Kompilierung des Kernels ein Kinderspiel

#cd /usr/src

#make buildkernel KERNCONF=DESKTOPBSD

wenn alles fertig ist und kein Fehler gemeldet wurde

#make installkernel KERNCONF=DESKTOPBSD

dieser Befehl installiert den Kernel. Nun kann man auch schon das System neustarten

#shutdown –r now

Den Kernel konfigurieren ohne diesen neuzukompilieren

Wie schon erwähnt ist einer der entscheidenden Vorteile von FreeBSD die Möglichkeit viele Dinge des Kernels zu beeinflussen ohne diesen neuzubauen. Möchte man z.B. den AGP Treiber des Nvidia Treibers nutzen, muß man in

#ee /boot/devices.hints

die folgende Zeile hinzufügen,

hint.agp.0.disabled=«1»

dies deaktiviert den FreeBSD AGP Treiber.

Desweiteren ist es nicht notwendig Treiber etc. in den Kernel einzukompilieren, man kann diese während dem Betrieb temporär laden und entladen bzw. dies während des Bootens bewerkstelligen.

#kldload snd_driver

lädt den Metasoundtreiber

#kldunload snd_driver

entlädt diesen wieder

#kldstat

zeigt die geladenen Treiber an.

#ee /boot/loader.conf

fügt man dort folgendes hinzu,

snd_driver_load=«YES»

so wird der Metasoundtreiber während dem Bootvorgang geladen. Diesem Metapakete ist es auch egal welche Karte installiert ist, sofern ein Treiber dafür vorhanden ist, denn der passende wird automatisch ausgewählt. Wichtig auch in diesem Zusammenhang das Kapitel Gerätekonfiguration im Handbuch. Wer weitere Tipps besitzt, kann diese wie immer als Kommentar hinterlassen.

, ,

3 Antworten zu “FreeBSD — Selbstbaukernel”

  1. pfleidi sagt:

    Hmm. So ein komplett Modularer Kernel hat schon was 😉

    Unter Linux gestaltet sich das ganze wirklich um einiges komplexer … steht mir bei meinem neuen System noch bevor.

  2. Oli sagt:

    Ich war zuvor lange Jahre Linux Nutzer, insofern … 😉

  3. […] Damit wird in das Verzeichnis gewechselt und der FreeBSD Kernel-Code gepatcht. Übrigens ist es auch leicht wieder möglich den Code zu entfernen, ein make deinstall genügt. Bei jedem CVSupdate der Sourcen, wird der gepatchte USB-Teil natürlich überschrieben. CVSupdate und Kernelbau en detail, ist hier beschrieben. […]

RSS-Feed abonnieren