FreeBSD 15 auf dem Notebook: Installation, NEO2-Layout und ein nutzbarem KDE-Desktop

FreeBSD genießt zu Recht den Ruf, eines der konsistentesten und am saubersten dokumentierten Unix-Systeme zu sein. Wo Linux-Distributionen oft viele lose Enden zusammenbinden, liefert FreeBSD Kernel, Basissystem und Werkzeuge aus einer Hand – inklusive ZFS als nativem Dateisystem und Boot-Environments, die “Systemexperimente ohne Reue” praktisch zum Standard machen.

In diesem Beitrag dokumentiere ich meinen kompletten Weg von der Installation von FreeBSD 15 auf einem Notebook bis zu einem produktiv nutzbaren KDE-Plasma-Desktop – inklusive deutscher Spracheinstellung, NEO2-Tastaturlayout und den typischen Stolperfallen auf mobiler Hardware.

Installationsreihenfolge

Die Installation folgt bewusst einer bestimmten Logik: Erst das Grundsystem (Verschlüsselung, Dateisystem, Grunddienste), dann die Absicherung gegen eigene Fehler (Boot-Environments), danach die persönliche Anpassung (Sprache, Tastatur) und erst zum Schluss der Desktop.

1. Installation

Der FreeBSD-Installer (bsdinstall) fragt an mehreren Stellen Entscheidungen ab, die sich nachträglich nur mit Aufwand ändern lassen. Diese Punkte sind daher besonders wichtig:

  • Installer-Modus: Package Mode. Früher basierte FreeBSD auf sogenannten Distribution-Sets, für den Alltag ist der neue Package Mode seit FreeBSD 15 deutlich schneller und unkomplizierter, und irgendwie auch vertrauter.
  • WiFi-Region: ETSI → DE Germany. Jedes Land hat eigene Vorgaben für erlaubte WLAN-Kanäle und maximale Sendeleistung. Wählt man hier die falsche Region, arbeitet die WLAN-Karte mit reduzierter Leistung oder ganze Kanäle werden gesperrt, ein Fehler, der sich später nur schwer diagnostizieren lässt, weil das WLAN grundsätzlich “funktioniert”, nur eben schlechter als es könnte.
  • Disk-Layout: Auto ZFS. ZFS bringt Copy-on-Write, Checksummen gegen Bitrot und, entscheidend für den nächsten Abschnitt, native Snapshot-Funktionalität mit, auf der die Boot-Environments aufbauen.
  • Swap: mindestens 16 GB (Richtwert: Größe des RAM, in meinem Fall - 16 GB)
  • Encryption: (GELI). Auf einem Notebook, das unterwegs verloren gehen oder gestohlen werden kann, sollte auch der Swap-Bereich verschlüsselt sein – sonst können dort theoretisch Speicherabbilder mit sensiblen Daten landen, selbst wenn die eigentliche Systempartition verschlüsselt ist.
  • Distribution Sets: base und lib32. lib32 liefert die 32-Bit-Kompatibilitätsbibliotheken, die z. B. für Steam oder Wine unter FreeBSD benötigt werden.

Bei den Diensten aktiviere ich direkt im Installer:

Dienst Zweck
sshd Fernzugriff von Anfang an verfügbar
ntpd + ntpd_sync_on_startup Zeitsynchronisation, wichtig für TLS/Zertifikate und Logs
powerd CPU-Frequenzskalierung – auf Notebooks entscheidend für Akkulaufzeit und Wärmeentwicklung
moused Maussteuerung auch auf der Textkonsole

Den angelegten Benutzer nehme ich sofort in die Gruppen wheel auf, damit ich direkt per su Root-Rechte bekommen kann.

Nach dem ersten Reboot lohnt sich ein kurzer Root-Login zur Kontrolle, bevor man weitermacht – so lassen sich Basis-Probleme (Netzwerk, Boot) noch vor der eigentlichen Konfiguration erkennen.

Direkt im Anschluss installiere ich die ersten Pakete:

pkg install nano wget firefox drm-kmod powerdxx

drm-kmod liefert die Kernel-Module für moderne Intel-/AMD-Grafiktreiber mit Kernel Mode Setting (KMS). Ohne dieses Paket bleibt man auf vielen aktuellen Notebooks im reinen VESA-Modus hängen – ohne Beschleunigung, ohne korrekte Auflösung.

Direkt nach der Installation

Als Erstes wird das System auf den aktuellen Stand gebracht:

pkg update && pkg upgrade

Danach lohnt sich ein Blick in /etc/rc.conf, um Hostname, Netzwerkkonfiguration und aktivierte Dienste zu überprüfen. Wer mobil in wechselnden Netzen unterwegs ist, sollte außerdem über eine pf-Firewall nachdenken – gerade in öffentlichen WLANs ein sinnvoller Basisschutz.

Für den Laptop-Betrieb kommen noch ein paar gezielte Anpassungen dazu:

pkg install wpa_supplicant acpi powerd
sysrc powerd_enable="YES"
sysrc powerd_flags="-a hiadaptive -b adaptive"

Die powerd_flags steuern das Taktverhalten der CPU getrennt danach, ob das Gerät am Netzteil hängt (-a, adaptive-hoch) oder im Akkubetrieb läuft (-b, adaptive) – ein guter Kompromiss zwischen Leistung und Laufzeit.

Falls das Touchpad (Synaptics- oder I2C-HID-Geräte) vom Standardtreiber nicht sauber erkannt wird:

pkg install xf86-input-libinput

2. Boot-Environments: das Sicherheitsnetz für alle folgenden Schritte

Bevor es an Sprache, Tastatur und Desktop geht, richte ich mir ein Sicherheitsnetz ein. ZFS erlaubt es, den kompletten Systemzustand als sogenanntes Boot-Environment (BE) einzufrieren und bei Bedarf per Bootloader-Auswahl dorthin zurückzukehren – ganz ohne Backup-Restore.

# Vorhandene Environments auflisten
bectl list

# neues BE vom aktuellen "default" erstellen
bectl create -e default kde

# Boot-Environment für den nächsten Boot aktivieren
bectl activate kde

Die Status-Spalten in bectl list sind schnell gelesen: N steht für Now (aktuell gebootet), R für Reboot (wird beim nächsten Neustart gebootet).

Praxis-Regel: Vor jeder größeren Änderung – Desktop-Installation, pkg upgrade, riskante Konfig-Experimente – lege ich ein neues BE an. Geht danach etwas kaputt, reicht ein einfacher Wechsel zurück, ganz ohne Neuinstallation:

bectl activate default
reboot

Nicht mehr benötigte Environments räume ich anschließend wieder auf, damit sie keinen unnötigen Platz auf dem Pool belegen:

bectl destroy kde

3. Spracheinstellungen (Locale, Zeitzone, KDE-Übersetzung)

Damit Datum, Zeit, Sortierreihenfolge und Programme konsistent auf Deutsch bzw. mit deutschen Konventionen laufen, wird die Locale sowohl für die Shell als auch systemweit gesetzt.

Für csh/tcsh (Standard-Shell von root unter FreeBSD) z. B. in ~/.login:

setenv LANG de_DE.UTF-8
setenv LC_ALL de_DE.UTF-8

Für sh/bash-Nutzer entsprechend in ~/.profile:

export LANG=de_DE.UTF-8
export LC_ALL=de_DE.UTF-8

Systemweit lässt sich die Locale auch über /etc/login.conf im passenden Class-Eintrag hinterlegen, sodass alle Benutzer dieselbe Spracheinstellung erhalten. Nach jeder Änderung an /etc/login.conf muss die Login-Datenbank neu erzeugt werden, sonst greift die Änderung nicht:

cap_mkdb /etc/login.conf

KDE Plasma übernimmt die Systemsprache in der Regel automatisch aus der gesetzten Locale, sofern die passenden Sprachpakete installiert sind. Für eine vollständig deutschsprachige Oberfläche installiere ich zusätzlich:

pkg install kde6-l10n

(Paketname je nach aktuellem FreeBSD-15-Portsstand ggf. abweichend, z. B. l10n-kde – am besten vorher mit pkg search l10n kde gegenprüfen.)

4. NEO2-Tastaturlayout

Wer, so wie ich, mit NEO2 statt QWERTZ tippt, muss unter FreeBSD Konsole und grafische Oberfläche getrennt konfigurieren, da beide unterschiedliche Keymap-Systeme verwenden.

Konsole (vt/syscons)

wget https://git.neo-layout.org/neo/neo-layout/raw/branch/master/unix/freebsd/neo.kbd
cp neo.kbd /usr/share/syscons/keymaps/
cp neo.kbd /usr/share/vt/keymaps/
kbdcontrol -l neo.kbd

Damit das Layout auch nach einem Reboot aktiv bleibt, wird es dauerhaft in /etc/rc.conf hinterlegt:

keymap="neo"

Bekanntes Problem: Manchmal ist nach dem Neustart wieder das alte Layout aktiv, obwohl keymap="neo" gesetzt ist. In diesem Fall hilft es, statt des Namens den absoluten Pfad zur Datei einzutragen:

keymap="/usr/share/syscons/keymaps/neo.kbd"

X11/Xorg (für den Desktop)

FreeBSD liefert von Haus aus nur Unterstützung für Neo 1.0 mit. Für Neo2 braucht es eine eigene Xorg-Konfigurationsdatei, z. B. unter /usr/local/etc/X11/xorg.conf.d/keyboard.conf:

Section "InputClass"
    Identifier "keyboard-neo2"
    MatchIsKeyboard "on"
    Option "XkbLayout" "de"
    Option "XkbVariant" "neo"
EndSection

Wayland (KDE Plasma)

KDE Plasma unter Wayland nutzt ebenfalls XKB als Basis, daher gilt dieselbe Layout-/Variant-Angabe (de / neo) wie unter Xorg. Sobald XKB korrekt konfiguriert ist, übernimmt Plasma das Layout automatisch, ohne dass eine separate Wayland-spezifische Konfiguration nötig wäre.

Test und Verifikation

kbdcontrol -l          # aktuell geladenes Konsolen-Layout anzeigen
setxkbmap -query        # aktuelles Xorg-/Wayland-Layout anzeigen

5. Rechteverwaltung: doas statt sudo

FreeBSD bringt standardmäßig kein sudo mit. Statt es nachzuinstallieren, nutze ich doas aus dem OpenBSD-Umfeld – funktional ausreichend und mit einer deutlich kürzeren, leichter zu auditierenden Codebasis.

pkg install doas

Konfiguriert wird doas über /usr/local/etc/doas.conf:

permit nopass keepenv :wheel
permit nopass keepenv root as root

Die erste Zeile erlaubt allen Mitgliedern der Gruppe wheel, ohne Passwortabfrage Befehle als root auszuführen, keepenv sorgt dafür, dass dabei die eigenen Umgebungsvariablen (z. B. $PATH, $DISPLAY) erhalten bleiben – wichtig, damit grafische Programme über doas überhaupt starten.

Wichtig: Der eigene Benutzer muss Mitglied der Gruppe wheel sein, sonst greift die Regel nicht. Falls das beim Anlegen vergessen wurde, kann man Root-Rechte auch nachträglich über eine Textkonsole vergeben (Strg+Alt+F1, danach Login als root):

pw group mod wheel -m benutzername

Ob alles funktioniert, zeigt ein einfacher Test:

doas whoami

Die Ausgabe sollte root lauten.

6. Desktop-Installation – der schnelle Weg

Wer nicht jede Komponente manuell zusammensetzen möchte, kann als Startpunkt das interaktive desktop-installer-Tool nutzen, das Desktop-Umgebung, Display-Manager und Treiber komfortabel abfragt:

pkg install desktop-installer nano wget
su
desktop-installer

danach starte ich per desktop-installer das Menü und werde Durchgeleitet. Ich hatte den Eindruck das Gnome nicht so gut funktioniert auf FreeBSD, daher habe ich mich für KDE entschieden, aber XFCE oder Openbox sind sicher auch gute alternativen. Da ich mit bectl jeweils ein neues Environment angelegt habe konnte ich sehr einfach ohne etwas kaputt zu machen mehrere Desktops ausprobieren, und am Schluss die löschen die mir nicht zugesagt haben.

7. KDE Plasma: Post-Install-Setup

Nach der Basisinstallation folgt der eigentliche Feinschliff für den produktiven KDE-Desktop.

Browser und Basis-Anwendungen

pkg install firefox

Als Firefox-Erweiterung installiere ich standardmäßig uBlock Origin. Für den täglichen Gebrauch kommen noch ein paar Standardanwendungen dazu:

pkg install keepassxc thunderbird syncthing xournalpp krita inkscape gimp

Diese Auswahl deckt Passwortverwaltung (KeePassXC), E-Mail (Thunderbird), Dateisynchronisation (Syncthing) sowie Notizen/Grafik (Xournal++, Krita, Inkscape, GIMP) ab.

WLAN-Verwaltung

Für eine grafische Netzwerkverwaltung unter KDE:

pkg install net-mgmt/networkmgr

In /etc/rc.conf:

ifconfig_DEFAULT="DHCP"
networkmgr_enable="YES"

Danach den Dienst starten:

service networkmgr start

CPU-Power-Management (powerdxx)

Als moderneren Ersatz für das im Installer aktivierte powerd nutze ich im Desktop-Betrieb powerdxx, das feiner abgestufte Regelprofile für Netz- und Akkubetrieb erlaubt:

pkg install powerdxx
sysrc powerdxx_enable="YES"
sysrc powerdxx_flags="-a hiadaptive -b adaptive -n adaptive"

Der zusätzliche Parameter -n definiert dabei das Verhalten, wenn der Netzteilstatus nicht eindeutig erkannt werden kann.

Lenovo X230 – Maustasten-Fix (Synaptics/TrackPoint)

Auf dem Lenovo X230 kommt es ohne diese Einstellung gelegentlich zu Fehlfunktionen der TrackPoint-Maustasten. Abhilfe schafft in /etc/rc.conf:

hw.psm.synaptics_support="1"

Wacom-Tablet

pkg install xf86-input-wacom

Konfiguration unter /usr/local/etc/X11/xorg.conf.d/50-wacom.conf:

Section "InputClass"
  Identifier "Wacom class"
  MatchProduct "Wacom"
  Driver "wacom"
EndSection

Drucken mit CUPS einrichten

Schritt 1 – Pakete installieren:

pkg install cups cups-filters gutenprint avahi-app nss_mdns

avahi-app und nss_mdns sorgen dafür, dass Netzwerkdrucker über mDNS/Bonjour (.local-Namen) automatisch gefunden werden können, gutenprint liefert eine breite Treiberbasis für gängige Druckermodelle.

Schritt 2 – Dienste aktivieren:

In /etc/rc.conf:

cupsd_enable="YES"
avahi_daemon_enable="YES"
dbus_enable="YES"

Starten:

service cupsd start

Schritt 3 – Benutzer zur cups-Gruppe hinzufügen:

pw groupmod cups -m deinuser

Damit die Gruppenmitgliedschaft wirksam wird, muss man sich danach einmal neu anmelden.

7. Notebook-spezifische Besonderheiten

Energieverwaltung

  • powerd bzw. powerdxx aktivieren für dynamisches CPU-Throttling
  • Akkustatus prüfen: acpiconf -i 0
  • Suspend/Resume testen: acpiconf -s 3 (S3 Sleep) – auf FreeBSD-Notebooks nicht durchgängig zuverlässig, vor dem produktiven Einsatz unbedingt testen

Grafik

drm-kmod ist praktisch Pflicht für beschleunigte Intel-/AMD-Grafik (KMS). Bei Hybrid-Grafik (Intel + Nvidia/AMD) sollte in der Regel nur der tatsächlich verbaute, aktive Chip angesprochen werden – Optimus-/PRIME-Setups mit Umschaltung zwischen zwei GPUs sind unter FreeBSD nur eingeschränkt unterstützt.

WLAN-Hardware

Der passende Treiber hängt vom verbauten Chipsatz ab (iwlwifi/iwm für Intel-Karten, andere Treiber für weitere Hersteller). Vor dem Kauf eines neuen Notebooks lohnt sich daher ein Blick auf die FreeBSD-Hardwarekompatibilitätslisten. Für WPA2/WPA3-Netzwerke wird wpa_supplicant über /etc/wpa_supplicant.conf konfiguriert.

Verwaltung mehrerer Geräte

Für mehrere Notebooks bietet sich ein eigenes, konsistentes Boot-Environment-Namensschema an, z. B. kde-thinkpad, kde-x230. /etc/rc.conf und doas.conf lassen sich außerdem zentral in einem privaten Git-/Dotfiles-Repository pflegen, um Konfigurationen zwischen mehreren Geräten synchron zu halten.

8. Troubleshooting: nützliche Befehle im Überblick

bectl list                  # Boot-Environments anzeigen
pkg info                    # installierte Pakete auflisten
pkg autoremove               # verwaiste Abhängigkeiten entfernen
service <name> status        # Status eines Dienstes prüfen
dmesg | grep -i error        # Boot-/Kernel-Fehler prüfen

Fazit

FreeBSD 15 auf einem Notebook einzurichten ist deutlich weniger Handarbeit, als man angesichts der vielen Einzelschritte vermuten könnte – aber dennoch deutlich mehr Aufwend als z.B. ein Fedora Linux einzurichten. Schlussendlich ist FreeBSD eine nette alternative zu Linux. Die Konfiguration über die rc.conf Datei gefällt mir sehr gut. Die Grafik und Sound Treiber funktionieren hervorragend, wenn sie erst einmal eingerichtet sind. Wer FreeBSD nur mal schnell ausprobieren will hat mit NomadBSD ein fertig eingerichtetes System das auch super von einem USB Stick startet, jedoch zum Zeitpunkt dieses Artikels noch auf FreeBSD 14 basiert.