跟我一樣使用NvidiaGPU斟酌參考。真是惡夢…閉源驅動在FreeBSD的Wayland支援度不是很好的樣子,不論試哪一種合成器,都只會得到backend/backend.c:217] Found 0 GPUs, cannot create backend. Failed to open any DRM device
的錯誤。
1. FreeBSD的Wayland現況#
測試版本:FreeBSD 14 Release
Wayland是意圖取代老舊Xorg(X11)的新一代顯示協定,自2008年推出以來,Linux社群便逐漸往Wayland遷移,兩大桌面環境GNOME和KDE都支援Wayland了,GTK/QT函式庫也支援Wayland協定。在Wayland的桌面環境下,開發者得將程式改寫成原生Wayland應用,至於仍使用Xorg的程式,則是會跑在XWayland以保持相容性。
但是就筆者觀察來看,Linux的Wayland到現在還處於一種尷尬的地位,許多方面尚未成熟,根本沒辦法完全替代掉Xorg。即使是在提供最新套件的滾動發行版,Wayland依然問題重重,不論是GNOME 46還是KDE 6.2皆然。
那麼,BSD社群的狀況又是如何。想當然,Wayland處於高度實驗性狀態。
GNOME 42?No。KDE 5.27?No。從顯示管理器還是tty都不能啟動Wayland工作階段。
根據 FreeBSD手冊記載,看來只有比較簡單的合成器(compositor)能跑起來,例如Hyprland、Wayfire、Sway、Hikari這類的,FreeBSD套件庫有收就不用自己編譯。他們可以從tty或是從顯示管理器啟動。
這類合成器多半是平鋪式或層疊式,特點是桌面環境的元件要自行「組裝」,且強烈依賴快捷鍵操作,不像GNOME和KDE桌面好上手。
2. 跑Wayland的前置條件#
- 因為有許多套件依賴Xorg,所以Xorg還是得裝。
sudo pkg install xorg
- 使用者必須加入video群組
sudo pw groupmod video -m user
合成器需要GPU加速,才能使用DRM。按照GPU型號 安裝xorg驅動,以及 drm-kmod驅動
安裝seatd和wayland
sudo pkg install wayland xwayland seatd
- 將seatd加入開機服務
sudo sysrc seatd_enable="YES"
3. 安裝顯示管理器#
顯示管理器部份,GDM本身支援Wayland工作階段;LightDM、SDDM、Ly在開機的時候則是依然跑在X11。
- 我使用GDM
sudo pkg install gdm
- 設定開機自動啟動
sudo sysrc gdm_enable="YES"
4. 安裝Sway合成器#
- 安裝Sway套件
sudo pkg install sway libinput
- 加入XDG_RUNTIME_DIR至
~/.profile
export XDG_RUNTIME_DIR=/var/run/user/`id -u`
export DISPLAY=:0
- 將dbus加入開機服務
sudo sysrc dbus_enable="YES"
- 複製Sway設定檔
mkdir ~/.config/sway
cp /usr/local/etc/sway/config ~/.config/sway/
- 重開機後便可以在顯示管理器的選單選取Sway啟動了。