FreeBSD 15 auf einem Laptop verwenden
(sacredheartsc.com)- FreeBSD 15 wurde dank pkgbase, Verbesserungen an LinuxKPI-Treibern und dem Laptop-Support-Projekt so weit verbessert, dass es über ein Server-OS hinaus als primäre Desktop-Umgebung genutzt werden kann
- Seit dem Versuch mit FreeBSD 14 kamen KDE Plasma 6, Wayland und Intel-WiFi-Unterstützung hinzu, sodass auf einem ThinkPad X1 Carbon bis auf Bluetooth alles gut funktioniert
- Die Installation basiert auf dem FreeBSD-15.1-memstick-Image, UEFI-Boot, ZFS (GPT) und der Auswahl des Base-System-Installationstyps
Packages - Die Einrichtung der Desktop-Umgebung erfordert schrittweise Treiber, Stromsparfunktionen, devfs-Berechtigungen, Linux-Kompatibilität, D-Bus, Ly, KDE, PipeWire und hardwarebeschleunigte Videowiedergabe
- In einigen Laptop-Umgebungen bestehen weiterhin bekannte Probleme, etwa WiFi-Probleme nach dem Aufwachen aus dem Ruhezustand, Hänger der Intel-Grafik und verbleibende Prozesse nach dem KDE-Logout, für die jeweils Workarounds nötig sind
Überblick
- FreeBSD 15 zeigt durch pkgbase, Verbesserungen an LinuxKPI-Treibern und den Start des Laptop Support and Usability Project große Fortschritte in Desktop-Umgebungen auf Laptops
- Im Vergleich zum früheren Desktop-Versuch mit FreeBSD 14 haben sich das Porting von KDE Plasma 6, die Funktionsfähigkeit von Wayland und die vollständige Unterstützung von Intel WiFi deutlich verändert
- Auf einem ThinkPad X1 Carbon beträgt die Akkulaufzeit etwa 6–7 Stunden, und abgesehen von Bluetooth, das nicht getestet wurde, funktionieren die Gerätefunktionen gut
- Über die neue Laptop Compatibility Matrix lässt sich prüfen, was auf der jeweils vorhandenen Hardware funktioniert
- Der Leitfaden setzt Intel-Grafik und einen Intel-WLAN-Chipsatz voraus; andere Hardware-Konfigurationen liegen außerhalb der eigenen Praxiserfahrung
Installation
- Das FreeBSD-15.1-memstick-Image wird heruntergeladen und mit
ddauf einen USB-Stick geschrieben- Im Beispiel wird das Image mit
curl -OJgeladen und anschließendsudo dd if=FreeBSD-15.1-RELEASE-amd64-memstick.img of=/dev/sdX bs=1M conv=syncausgeführt
- Im Beispiel wird das Image mit
- Der Installationsassistent ist einfach gehalten; das System wird für UEFI-Boot eingerichtet und als Festplattenlayout
ZFS (GPT)gewählt - In dem Schritt, in dem nach dem Base-System-Installationstyp gefragt wird, wird
Packagesgewählt, um das neue pkgbase zu nutzen - Wenn während der Installation SSH aktiviert wird, kann man per SSH-Sitzung kopieren und einfügen, statt direkt in der virtuellen Konsole zu tippen
- Nach dem Neustart meldet man sich mit dem während der Installation festgelegten Passwort am Root-Konto an
Aktuelle Pakete verwenden
- Der FreeBSD-Ports-Tree hat die zwei Branches
quarterlyundlatest quarterlyfriert den Ports-Tree viermal im Jahr als Snapshot ein; dazwischen erhalten Drittanbieterpakete nur wichtige Sicherheitsupdateslatestfolgt einem Rolling-Release-Modell, bei dem größere Paket-Updates verfügbar werden, sobald sie bereitstehen- Die Standardeinstellung ist das Repository
quarterly; für den Wechsel zulatestwird unter/usr/local/etc/pkg/reposeine Override-Datei angelegt - Anschließend wird die Repository-URL auf
pkg+https://pkg.FreeBSD.org/${ABI}/latestundkmods_latest_${VERSION_MINOR}gesetzt und danachpkg updatesowiepkg upgradeausgeführt
Hardwaregeräte, Treiber, Tuning
-
Bootloader-Anpassungen
- In
/boot/loader.conflassen sich Bootloader-Wartezeit, das Deaktivieren von destructive dtrace sowie eine Erhöhung der Limits für Shared Memory und Prozesse festlegen. - Systeme mit Unterstützung für Intel Speed Shift können mit
machdep.hwpstate_pkg_ctrl="0"so konfiguriert werden, dass jeder Kern seinen eigenen Energiezustand selbst festlegt. - PCI-Energiesparen, schnelles
soreceive(), eine vergrößerte Netzwerkwarteschlange und ein erhöhter ZFS-Transaktions-Timeout lassen sich für die Nutzung auf Desktop und Laptop anpassen.
- In
-
Kernel-Module
cpuctlundcoretempwerden zukld_listhinzugefügt, um CPU-Informationen und Temperaturabfrage zu aktivieren.- Der H-TCP-Überlastkontrollalgorithmus zielt auf bessere Leistung in schnellen Netzwerken mit hoher Distanz wie dem Internet ab und ist als Modul
cc_htcpverfügbar. - Auf ThinkPads wird für die Tastenfunktionen das Modul
acpi_ibmbenötigt.
-
sysctl-Anpassungen
- In
/etc/sysctl.conflassen sich Sicherheitseinstellungen wie das Einschränken von Keymap-Änderungen, das Deaktivieren von Core Dumps, ASLR-bezogene Optionen, das Blockieren von ICMP-Redirects und das Deaktivieren von IP-Redirects anwenden. - Einige Sicherheitsleitfäden empfehlen W^X, Hardlink-Prüfungen und Einschränkungen beim Anzeigen von Prozessen anderer Nutzer, doch diese Einstellungen werden als problematischer eingeschätzt und daher auskommentiert.
- Die Netzwerk-Performance-Einstellungen vergrößern TCP-Puffer und Queues für Verbindungen mit höherer RTT, ausgehend davon, dass die Standardwerte auf LAN-Latenzen optimiert sind.
- Als Desktop-Optimierungen werden das Auslagern von Shared Memory verhindert, der Schwellenwert für Scheduler-Preemption erhöht und Mounts für normale Nutzer erlaubt.
- Zum Stromsparen auf Laptops wird mit
hw.snd.latency=7die Audio-Reaktionsfähigkeit reduziert.
- In
-
WiFi
- Die WiFi-Unterstützung hat sich dank LinuxKPI und dem neuen
iwlwifi-Treiber gegenüber früher deutlich verbessert. - Ob eine WLAN-Karte unterstützt wird, lässt sich in der Liste der von
iwlwifiunterstützten Chipsätze prüfen; die benötigte Firmware wird mitfwget -vinstalliert. - Um auf älteren Karten das neue
iwlwifizu verwenden, muss das Laden des bisherigeniwm-Treibers unter Umständen mitdevmatch_blocklist="if_iwm"blockiert werden. - 802.11n und 802.11ac sind standardmäßig deaktiviert, daher werden die Einstellungen
compat.linuxkpi.iwlwifi_11n_disable="0"undcompat.linuxkpi.iwlwifi_disable_11ac="0"benötigt. - Wenn in
rc.confdas Gerätwlan0angelegt undWPA DHCP powersavegesetzt wird, verwaltetwpa_supplicant(8)die WiFi-Netzwerke. - Die Netzwerkverwaltung kann direkt über das Bearbeiten von
wpa_supplicant.conf(5)oder über die grafische Oberfläche vonnetworkmgrerfolgen. networkmgrbenötigt Superuser-Rechte; per sudoers-Regel kann die Gruppeoperatores ohne Passwort ausführen.- Im
iwlwifi-Treiber von FreeBSD 15.1-RELEASE gibt es bekannte Probleme im Zusammenhang mit Suspend/Resume.
- Die WiFi-Unterstützung hat sich dank LinuxKPI und dem neuen
-
CPU und Grafik
- Aktuelle CPU-Mikrocodes werden nach der Installation des Pakets
cpu-microcodeso eingerichtet, dass sie inloader.confbeim Booten geladen werden. - Das CPU-Energiesparen aktiviert mit
performance_cx_lowest=Cmaxundeconomy_cx_lowest=Cmaxniedrigere C-States, um Akkuverbrauch und Wärmeentwicklung zu verringern. - Auf aktuellen Intel-Prozessoren ist das Ausführen von
powerd(8)nicht mehr erforderlich. - Für den Intel-Grafiktreiber wird nach der Installation von
drm-kmoddas Laden voni915kmsbeim Booten konfiguriert.
- Aktuelle CPU-Mikrocodes werden nach der Installation des Pakets
-
Geräteberechtigungen und Kompatibilität
- Auf Desktop-Systemen werden devfs-Regeln ergänzt, damit normale Nutzer GPU-, Video-, Backlight- und USB-Geräte steuern können.
- In
/etc/devfs.ruleswerden Berechtigungen und Gruppen fürdrm/*,video*,backlight/*undusb/*festgelegt unddevfs_system_ruleset=localrulesgesetzt. - Zum Ausführen von Linux-Binärdateien wird der Linuxulator mit
linux_enable=YESaktiviert; falls nötig werden unter/compat/linuxdevfs, tmpfs, fdescfs, linprocfs und linsysfs eingehängt. - Zum Mounten von Dateisystemen wie exFAT oder NTFS wird das Kernel-Modul
fusefsgeladen. - Unterstützung für Webcams ist mit der Installation von
webcamd,v4l-utils,v4l_compatund der Einstellungwebcamd_enable=YESzu erwarten. - Für Drucker werden CUPS und
cups-filtersbenötigt; durch Anpassen voncups-files.confkann die GruppeoperatorDrucker konfigurieren. - Die CUPS-Konfigurationsoberfläche ist im Browser unter
localhost:631erreichbar.
-
Laptop-Stromsparfunktionen und ThinkPad-Backlight
- Auf Laptops werden in
/etc/rc.localusbconfigundpower_saveausgeführt, um inaktive USB-Geräte in den Energiesparmodus zu versetzen. - Damit die ThinkPad-Backlight-Tasten funktionieren, sind das Laden des Moduls
acpi_ibm, die Einstellungdev.acpi_ibm.0.handlerevents="0x10 0x11"unddevd-Regeln erforderlich. - Das Skript
/usr/local/libexec/thinkpad-brightnesserhöht oder verringert die Helligkeit je nach aktueller Stufe in Schritten von 2, 5 oder 10. - Nach dem Setzen der Ausführungsrechte für das Skript und einem Neustart von
devdwerden die Änderungen wirksam. - Nach Abschluss der Hardware- und Treiberkonfiguration wird neu gestartet, um zu prüfen, ob die Änderungen das System nicht beschädigt haben.
- Auf Laptops werden in
Firewall
- Die Konfiguration sieht vor, auf allen Systemen eine Firewall zu betreiben; das Standardbeispiel blockiert alle eingehenden Verbindungen außer SSH.
- In
/etc/pf.confwird die Schnittstelleegressdurch den tatsächlichen Namen der Netzwerkschnittstelle ersetzt und nur der SSH-Port für eingehendes TCP freigegeben. - Für Sprach- und Videoanrufe wird der UDP-Bereich
1024:65535freigegeben. - Mit
pf_enable=YESundservice pf startwird die Firewall aktiviert.
Deaktivierung von periodic-Skripten
- FreeBSD enthält standardmäßig viele periodic(8)-Skripte, die Festplatten durchsuchen, auf das Internet zugreifen und E-Mails versenden.
- Eine vollständige Liste ist in
periodic.conf(5)zu finden. - Für typische Desktop-Nutzer sind nur einige wenige Aufgaben nützlich; die meisten können gefahrlos deaktiviert werden.
- Die Beispielkonfiguration setzt zahlreiche Aufgaben für tägliche, wöchentliche, monatliche und sicherheitsbezogene Backups, Statusberichte, Mail-Queues und Ausgaben von Sicherheitsprüfungen auf
NO.
Benutzerkonten
- Es wird ein lokales Benutzerkonto angelegt und den Gruppen
operator,videoundwheelhinzugefügt. operatorwird für die Konfiguration von Geräten und Druckern benötigt,videofür den Zugriff auf GPU-Geräte.- Die Gruppe
wheeldient dazu, mitsudoBefehle mit Root-Rechten auszuführen. - Nach der Installation von
sudowird in der sudoers-Datei%wheel ALL=(ALL:ALL) ALLgesetzt.
Locale, Uhrzeit, SSH, Zertifikate
-
Locale
- Die Umgebungsvariablen der Login-Shell werden in
login.conf(5)gesetzt; dazu werdencharset=UTF-8undlang=en_US.UTF-8hinzugefügt - Damit die Änderungen wirksam werden, wird mit
cap_mkdb /etc/login.confdie Login-Datenbank neu erstellt - Für Nicht-Login-Shells werden
LANGundCHARSETin/etc/profile.d/locale.shgesetzt
- Die Umgebungsvariablen der Login-Shell werden in
-
NTP und Zeitzone
- Um die Systemuhr aktuell zu halten, wird ntpd(8) benötigt
- In
ntp.confstehen die FreeBSD-Pool-NTP-Server sowie Zugriffsbeschränkungen - Wenn während der Installation keine Zeitzone gesetzt wurde, wird
/usr/share/zoneinfo/America/New_Yorksymbolisch auf/etc/localtimeverlinkt
-
openssh-portable
- Das
sshdes FreeBSD-Basissystems enthält viele Patches; bevorzugt wird das unveränderteopenssh-portableaus den Ports - Die Konfigurationsdateien von
sshdliegen in neueren Versionen unter/usr/local/etc/ssh - In
/etc/rc.confwird dassshddes Basissystems deaktiviert und der neue Dienst mitopenssh_enable=YESgestartet - Der Befehl
sshverwendet weiterhin/usr/bin/sshaus dem Basissystem, solange$PATHnicht geändert wird - Damit für alle Nutzer die Ports-Version Vorrang hat, wird in
login.confdie Reihenfolge vonpathso geändert, dass/usr/localvorne steht, und die Datenbank anschließend neu erstellt
- Das
-
Terminal, Zertifikate, D-Bus
- Die
termcap(5)-Datenbank von FreeBSD ist einfacher als die unter Linux übliche, weshalb helle Farben in XTerm-artigen Terminals möglicherweise nicht gerendert werden - Durch die Installation von
terminfo-dblässt sich dieses Problem beheben - FreeBSD vertraut standardmäßig nur einem Teil der üblichen Zertifizierungsstellen, daher wird das vollständige Mozilla-CA-Bundle
ca_root_nssinstalliert - KDE und viele moderne Desktop-Funktionen benötigen D-Bus; aktiviert wird es mit
dbus_enable=YESundservice dbus start
- Die
Ly-Display-Manager
- Normalerweise wird eine Desktop-Sitzung mit einem grafischen Display-Manager wie SDDM gestartet, doch zum Zeitpunkt des Schreibens kann FreeBSD Wayland-Sitzungen damit nicht stabil starten
- SDDM funktioniert fast, hat aber einen Bug, bei dem mehrere Tastenkombinationen die Sitzung beenden
- Der derzeitige Ansatz besteht darin, Wayland-Sitzungen über den konsolenbasierten Ly display manager zu starten
- Ly läuft nicht als Daemon; stattdessen wird in
/etc/ttyskonfiguriert, dass eine virtuelle Konsole/usr/local/bin/ly_wrapperausführt - Wenn in
/etc/gettytabein Eintrag für Ly ergänzt und anschließend neu gestartet oder init mitkill -HUP 1neu geladen wird, erscheint der Ly-Login-Prompt - In
config.inilässt sich die Nutzung von Wayland-Sitzungen mitxinitrc=null,xsessions=null,shell=false,waylandsessions=/usr/local/share/wayland-sessionserzwingen
Schriftarten, KDE, Desktop-Apps
- Damit Websites korrekt gerendert werden, werden Standard-Schriftarten wie Cantarell, Droid, Inconsolata, Noto, Noto Emoji, Roboto, Ubuntu und webfonts installiert
- Für KDE und die Desktop-Komponenten werden unter anderem
kde,kdegraphics,kdemultimedia,kdeutils,phonon-mpv,pipewire,pulseaudio,wireplumberinstalliert - Beispiele für Desktop-Apps sind Chromium, Firefox, LibreOffice, Thunderbird, Signal Desktop, Wine, Emacs Wayland, Git, mpv und tmux
- Einige Desktop-Funktionen hängen von PipeWire ab; die Vorschau in der Taskleiste scheint etwa nicht zu funktionieren, wenn PipeWire nicht läuft
- Mit der Autostart-Datei
/usr/local/etc/xdg/autostart/pipewire.desktopkann PipeWire automatisch gestartet werden - Um die Passphrase für SSH-Schlüssel in
kwalletzu speichern, werden in der KDE-UmgebungSSH_ASKPASS_REQUIRE=preferundSSH_ASKPASS=/usr/local/bin/ksshaskpassexportiert
Hardwarebeschleunigte Videowiedergabe
- Mit den passenden Paketen lässt sich auf den meisten Intel-GPUs hardwarebeschleunigte Videowiedergabe nutzen
- Hardwarebeschleunigte Videowiedergabe sorgt für flüssigere Wiedergabe und eine bessere Akkulaufzeit
- Benötigt werden die Pakete
libva-intel-media-driver,libva-utils,libvdpau-va-gl,vdpauinfo - Nutzer müssen über das
drm-Gerät auf die GPU zugreifen können und daher Mitglied der Gruppevideosein - Einige Anwendungen benötigen möglicherweise zusätzliche Einstellungen, um Hardware-Offloading zu nutzen
-
Chromium Browser
- Unter FreeBSD erforderte die hardwarebeschleunigte Videodekodierung in Chromium früher viele Kommandozeilen-Flags
- Zum Zeitpunkt des Schreibens funktioniert die hardwarebeschleunigte Videodekodierung in Chromium ohne zusätzliche Flags
-
MPV
- Wenn in
mpv.confhwdec=vaapi-copy,vo=gpu-next,vd-lavc-dr=yes,audio-channels=stereogesetzt werden, lassen sich HD-Videos mit geringer CPU-Auslastung abspielen
- Wenn in
Bekannte Probleme und Workarounds
-
Der Laptop geht nach dem Öffnen des Deckels sofort wieder in den Ruhezustand
- Wenn KDE läuft, sollte die Desktop-Umgebung das ACPI-Deckelereignis erkennen und Suspend sowie Resume verarbeiten
- Auf ThinkPads tritt ein Bug auf, bei dem der Laptop direkt nach dem Öffnen des Deckels wieder in den Ruhezustand geht
- Der Workaround besteht darin, die Aktion des Deckelschalters in den KDE-Energieeinstellungen zu deaktivieren und mit
devdein natives Suspend beim Schließen des Deckels zu konfigurieren - Das Skript
/usr/local/libexec/kde-suspendsperrt den Bildschirm des in KDE angemeldeten Benutzers, wartet dann 0,5 Sekunden und versetzt das System mitacpiconf -s3in den S3-Ruhezustand - Die Regel
/etc/devd/kde-suspend.confführt dieses Skript beim ACPI-Lid-0x00-Ereignis aus
-
Prozesse bleiben nach dem Logout bestehen
- Unter FreeBSD können nach dem Logout aus einer KDE-Sitzung einige Prozesse unbegrenzt weiterlaufen
- Chromium gerät gelegentlich in einen Zustand, in dem ein CPU-Kern zu 100 % ausgelastet wird
- In systemd-basierten Linux-Distributionen beendet
systemd-loginddie zur Benutzersitzung gehörenden Prozesse, aber in einer FreeBSD-KDE-Umgebung trifft dieselbe Annahme nicht zu - Über die Cleanup-Skript-Funktion von KDE beim Logout werden
baloo_file,chrome,dirmngr,pipewire,signal-desktop,wireplumberusw. beendet - Dies wird angewendet, indem
/usr/local/etc/xdg/plasma-workspace/shutdown/cleanup.shausführbar gemacht wird
-
Benutzerwechsel funktioniert nicht
- Der Benutzerwechsel auf dem FreeBSD-Desktop ist wegen eines alten ConsoleKit2-Bugs defekt
- Damit Benutzer es gar nicht erst versuchen, werden in
/usr/local/etc/xdg/kdeglobalsaction/start_new_session=falseundaction/switch_user=falsegesetzt
-
Wi‑Fi ist nach dem Aufwachen aus dem Ruhezustand defekt
- FreeBSD 15.1-RELEASE hat einen iwlwifi-Bug, durch den Wi‑Fi nach dem Aufwachen aus dem Ruhezustand ausfällt
- Der Workaround besteht darin, die Schnittstelle
wlan0vor dem Suspend zu stoppen und sie nach dem Resume wieder zu starten - Das Skript
/usr/local/etc/rc.d/iwlwifi_fixverknüpftservice netif stop wlan0undservice netif start wlan0mit den Suspend-/Resume-Befehlen - Das Skript wird durch Setzen der Ausführungsrechte und mit
iwlwifi_fix_enable="YES"aktiviert - Der Fix wurde bereits nach 15-STABLE committet, und wenn FreeBSD 15.2 erscheint, könnte dieser Workaround überflüssig werden
-
Laptop-Audio friert ein
- Einige Laptops haben einen i915-Bug, der einen Hard Lockup auslösen kann
- Das Problem geht mit Fehlern wie
hdac0: Command timeout 2indmesgeinher - Die Lösung besteht darin, das Loader-Tunable
compat.linuxkpi.i915_disable_power_well=0zu setzen
-
Grafik hängt und GPU-Hang
- Unter FreeBSD 15.1 wurde der Standard-DRM-Treiber von 6.6 auf 6.12 angehoben
- Die neue Version scheint einen Bug zu haben, der auf einigen Intel-Chips Grafik-Hänger und die Meldung
GPU HANGindmesgverursacht - Ein stabiler Workaround besteht darin, weiter die ältere Version
drm-66-kmodzu verwenden
-
Keine Zeitbegrenzung für Konsolenleerlauf
- FreeBSD hat vor einigen Jahren vom bisherigen Konsolentreiber
syscons(4)auf den UEFI-nativen Treibervt(4)umgestellt - Die
vt-Konsole unterstütztblanktimenicht, sodass es ohne X11- oder Wayland-Sitzung praktisch keine Möglichkeit gibt, den Bildschirm auszuschalten - Da Ly auf der TTY-Konsole läuft, bleibt der Bildschirm an, wenn niemand eingeloggt ist
- Auf einem Laptop für einen einzelnen Benutzer ist das kein großes Problem, aber auf einer Multiuser-Workstation kann sich der Login-Prompt in das LCD-Panel einbrennen
- FreeBSD hat vor einigen Jahren vom bisherigen Konsolentreiber
-
Fehlende Symbole in GTK4-Apps
- Die verwendete GTK4-App ist der XMPP-Client Dino IM; viele Symbole wurden nicht gerendert, und auch die KDE-Schrifteinstellungen wurden nicht beachtet
- Nach dem Deaktivieren von Portals war das Problem sofort gelöst
- Der Workaround besteht darin,
export GDK_DEBUG=no-portalszu setzen
-
Aussetzer bei der Audiowiedergabe
- Pulseaudio verursacht bei der Wiedergabe von Audiodateien gelegentlich Knistern und Aussetzer
- Wird in
daemon.confder Standardwert aufdefault-fragments = 8unddefault-fragment-size-msec = 5erhöht, ist das Problem behoben
1 Kommentare
Lobste.rs-Kommentare
Danke für den Artikel, aber es scheint zu viele manuelle Schritte für Dinge zu geben, die der Installer eigentlich übernehmen sollte
In letzter Zeit wurde viel Arbeit in die Portierung von WLAN- und Grafiktreibern aus Linux gesteckt, sodass es auf deutlich mehr Laptops nutzbar geworden ist
Im Moment ist es in einem ähnlichen Zustand wie Linux in den 2000ern; es gibt noch viel zu tun, aber die Arbeit passiert an vorderster Front
„Wenn ich nicht etwa ein Dutzend Installationsschritte selbst machen muss, kann ich dann überhaupt sagen, dass die Maschine wirklich mir gehört?“ /s und irgendwie doch nicht /s
Diesen Kommentar schreibe ich gerade auf einem gebraucht gekauften Thinkpad T14 Gen 1, damit ich OpenBSD ohne allzu großes Gefrickel nutzen kann
FreeBSD habe ich noch nicht ausprobiert, aber wahrscheinlich werde ich es tun, und mein selbstgebautes NAS läuft mit FreeBSD 15 auf einem ZFS-Pool
Die Arbeit der FreeBSD Foundation an der Laptop-Kompatibilität weiß ich jedenfalls sehr zu schätzen
Im Moment fühlt es sich noch wie Linux in den 2000ern an, aber wie der Originalbeitrag sagt: „Es gibt Arbeit, und sie wird an vorderster Front gemacht“
Seit Ende der 2010er nutze ich auf sehr sorgfältig ausgewählten Laptops FreeBSD als Daily Driver
Damals musste man an einem FreeBSD-Desktop-Setup wirklich viel von Hand anpassen, also habe ich das in Skripte gegossen, in ein Git-Repository gelegt und seither ständig weiterentwickelt
Zum Beispiel habe ich StumpWM durch i3 ersetzt, weil ich damit rechnete, irgendwann unter Wayland auf Sway wechseln zu müssen
Inzwischen ist ein Desktop-Installer in Arbeit, der den berechtigten Einwand von @technomancy wohl entschärfen dürfte und vermutlich auch viele meiner Setup-Skripte überflüssig macht
https://wiki.freebsd.org/desktop-installer
Ich freue mich über die Aussage: „Dank LinuxKPI und dem neuen iwlwifi-Treiber ist die Zeit schlechter WLAN-Unterstützung größtenteils vorbei. Wenn du eine gängige Intel-Karte hast, stehen die Chancen gut, dass es einfach funktioniert“
Ich hatte auf dem Desktop auch FreeBSD 13/14 ausprobiert, aber wegen der Treiberbeschränkungen war es zu langsam, um es dauerhaft zu nutzen
Schön zu hören, dass diese Einschränkung verschwindet; wenn ich das nächste Mal auf dem Desktop etwas Neues ausprobieren will, werde ich FreeBSD wohl noch einmal eine Chance geben
Interessant ist, dass der RTL8812-WLAN-Treiber in FreeBSD schon seit langer Zeit vorhanden ist, soweit ich mich erinnere seit über zehn Jahren, während er es unter Linux erst ungefähr mit Kernel 6.13 hineingeschafft hat
Warum er unter Linux so lange als Out-of-Tree-Modul geblieben ist, weiß ich nicht genau. Vielleicht lag es an der Lizenz