FreeBSD XFCE桌面¶
备注
目前我比较倾向于使用基于 wayland显示服务器协议 的 FreeBSD Sway桌面 ,所以本文仅做记录备用,后续可能再做实践…
不过,wayland也因为是比较新的图形技术,尚有很多传统图形程序没有移植支持,所以必要时可能还会使用XFCE4桌面
我在完成 FreeBSD NVIDIA驱动 安装之后,尝试使用 FreeBSD Sway桌面 ,也会在后续实践中尝试本文XFCE4图形桌面:
安装XFCE:
pkg install xorg xfce xfce4-goodies lightdm lightdm-gtk-greeter dbus
软件包说明:
软件包 |
说明 |
---|---|
xorg |
X显示服务器 |
xfce |
xfce桌面 |
xfce4-goodies |
xfce桌面的应用以及美化 |
lightdm |
图形桌面管理器 |
lightdm-gtk-greeter |
传统GDM启发而来的高度可配置登陆屏幕 |
dbus |
提供两个应用程序间一对一通讯 |
FreeBSD NVIDIA驱动 安装配置
启动:
startxfce4
报错,检查 /var/log/Xorg.0.log
有如下错误:
[ 676.058 ] (II) LoadModule: "glx"
[ 676.058 ] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[ 676.059 ] (II) Module glx: vendor="X.Org Foundation"
[ 676.059 ] compiled for 1.21.1.4, module version = 1.0.0
[ 676.059 ] ABI class: X.Org Server Extension, version 10.0
[ 676.059 ] (II) LoadModule: "nvidia"
[ 676.059 ] (II) Loading /usr/local/lib/xorg/modules/drivers/nvidia_drv.so
[ 676.059 ] (II) Module nvidia: vendor="NVIDIA Corporation"
[ 676.059 ] compiled for 1.6.99.901, module version = 1.0.0
[ 676.059 ] Module class: X.Org Video Driver
[ 676.059 ] (II) NVIDIA dlloader X Driver 510.60.02 Wed Mar 16 11:07:20 UTC 2022
[ 676.059 ] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[ 676.059 ] (--) Using syscons driver with X support (version 2.0)
[ 676.059 ] (--) using VT number 9
[ 676.059 ] (II) Loading sub module "fb"
[ 676.060 ] (II) LoadModule: "fb"
[ 676.060 ] (II) Module "fb" already built-in
[ 676.060 ] (II) Loading sub module "wfb"
[ 676.060 ] (II) LoadModule: "wfb"
[ 676.060 ] (II) Loading /usr/local/lib/xorg/modules/libwfb.so
[ 676.060 ] (II) Module wfb: vendor="X.Org Foundation"
[ 676.060 ] compiled for 1.21.1.4, module version = 1.0.0
[ 676.060 ] ABI class: X.Org ANSI C Emulation, version 0.4
[ 676.060 ] (II) Loading sub module "ramdac"
[ 676.060 ] (II) LoadModule: "ramdac"
[ 676.060 ] (II) Module "ramdac" already built-in
[ 676.060 ] (WW) NVIDIA(0): The NVIDIA GeForce GT 750M GPU installed in this system is
[ 676.060 ] (WW) NVIDIA(0): supported through the NVIDIA 470.xx Legacy drivers. Please
[ 676.060 ] (WW) NVIDIA(0): visit http://www.nvidia.com/object/unix.html for more
[ 676.060 ] (WW) NVIDIA(0): information. The 510.60.02 NVIDIA driver will ignore this
[ 676.060 ] (WW) NVIDIA(0): GPU. Continuing probe...
[ 676.060 ] (EE) No devices detected.
[ 676.060 ] (EE)
Fatal server error:
[ 676.060 ] (EE) no screens found(EE)
[ 676.060 ] (EE)
奇怪,已经加载 nvidia
模块,为何显示没有检测到设备… 仔细看了一下,原来我的显卡 NVIDIA GeForce GT 750M GPU
太古老了,已经被最新的 510.60.02
放弃支持了,需要回退到 NVIDIA 470.xx Legacy drivers
。难怪之前 FreeBSD Sway桌面 和 FreeBSD hikari桌面 都失败了
参考 NVIDIA Unix Driver Archive 可以看到,对于 FreeBSD x86
,最新的 Latest Legacy GPU version (470.xx series)
: 470.141.03
搜索一下,在FreeBSD仓库,则是 nvidia-driver-470-470.129.06
(之前安装了最新的 nvidia-driver-510.60.02
):
pkg delete nvidia-driver-510.60.02
pkg install nvidia-driver-470-470.129.06
然后重启系统,再次重试成功
结束X后黑屏¶
我遇到一个问题,就是启动 startxfce4
之后,结束会话会出现黑屏
检查显卡所在pci位置:
# pciconf -l | grep vga vgapci0@pci0:1:0:0: class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de device=0x0fe9 subvendor=0x106b subdevice=0x0130
则修改 /etc/X11/xorg.conf
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
# 添加以下这行
BusID "PCI:1:0:0"
EndSection
添加 BusID
时候,不要在PCI 包含domain ID,也就是说 pci0:1:0:0
写成 PCI:1:0:0
不过,仅仅上述修改还没有解决问题,真正解决问题是修订了 /etc/rc.conf
,将:
kld_list="nvidia-modeset"
修改为:
linux_enable="YES"
dbus_enable="YES"
hald_enable="YES"
lightdm_enable="YES"
kld_list="nvidia nvidia-modeset linux"
才解决: 现在启动时候就是 lightdm
,并且退出也能够正常回到窗口管理器。我感觉关键行是:
dbus_enable="YES"
hald_enable="YES"
因为在此之前我检查过 kldstat
输出,原本就已经加载了:
linux
nvidia
nvidia-modeset
也就是说 kld_list
默认已经加载了
备注
参考 How To Fix No Screen Found Xorg Error On FreeBSD [Dual GPU] 和 xorg fails to start on freebsd even after installing nvidia and drm-kmod
不过,虽然解决了 FreeBSD NVIDIA驱动 的版本问题,但是运行 FreeBSD Sway桌面 和 FreeBSD hikari桌面 报错依旧
配置Greeter和LightDM¶
修改
/usr/local/etc/lightdm/lightdm.conf
启用:greeter-session = lightdm-gtk-greeter
修改
/etc/rc.conf
添加:lightdm_enable="YES"