第 4.1 节 安装显卡驱动及 Xorg(必看)
警告
当前页面的 N 卡驱动部分仍存在问题。无法使用。
警告
对于没有显卡直通的笔记本,必须安装英特尔 drm!
注意
虚拟机显卡驱动看前边的章节,不再赘述。
FreeBSD 已从 Linux 移植了显卡驱动,理论上,绝大部分英特尔核显、A 卡、N 卡均在 AMD64 架构上正常运行。
显卡支持情况
对于 FreeBSD 13.1,编译使用drm-510-kmod
,支持情况同 Linux 5.10。AMD 可支持 R7 4750U。
FreeBSD 14.1-RELEASE、14-STABLE(OSVERSION >1400508)、FreeBSD 15 CUEERNT,编译使用 drm-61-kmod
,支持情况同 Linux 6.1。
技巧
可以在 port 开发者手册中的最后一章中查询 OSVERSION 对应的版本和 Git 提交。
查看本机 OSVERSION:
安装英特尔核显/AMD 显卡驱动
注意
在使用 Gnome 时,如果自动锁屏/息屏,可能无法再次进入桌面。见 Bug 255049 - x11/gdm doesn't show the login screen。
首先切换到 latest 源,或使用 ports 安装:
或者
注意
在使用 Ports 时,drm 需要在
/usr/src
中有一份系统源代码。
注意
graphics/drm-kmod
这个包并非真实存在,他只是帮助判断系统版本以安装对应的 port 的元包:
FreeBSD 13.X
graphics/drm-510-kmod
FreeBSD 14.1 RELEASE、14-STABLE 及 FreeBSD 15 CUEERNT
graphics/drm-61-kmod
注意
像英特尔三代处理器的 HD 4000 这种比较古老的显卡,他在传统的 BIOS 模式下无需额外安装显卡驱动,但是 UEFI 下有可能会花屏(FreeBSD 13.0 及以后无此问题),且需要安装此 DRM 显卡驱动。
配置英特尔核显/AMD 显卡驱动
打开 /etc/rc.conf
:
如果为 intel 核芯显卡,添加
kld_list="i915kms"
AMD
如果是 HD7000 以后的 AMD 显卡,添加
kld_list="amdgpu"
(大部分人应该使用这个,如果没用再换radeonkms
)如果是 HD7000 以前的 AMD 显卡,添加
kld_list="radeonkms"
(这是十多年前的显卡了)
故障排除
KLD XXX.ko depends on kernel - not available or version mismatch.
提示内核版本不符,请先升级系统或使用 ports 编译安装。
/usr/ports/xxx no such xxx
即找不到路径,请先获取 ports,请看前文。
视频硬解
或者
亮度调节
通用
对于一般计算机:
对于 Thinkpad:
英特尔/AMD
backlight 自 FreeBSD 13 引入。
如果上述操作不起作用,请检查路径 /dev/backlight
下都有哪些设备。
示例(照抄不会起作用的,自己
ls /dev/backlight
看看):
参考文献
经过测试,此部分教程适用于 renoir 显卡:
笔记本核显 + Nvidia 独显(仍存在问题!不要用)
警告
笔记本电脑一般不能单独用 nvidia 打开 xorg。除非 你的笔记本电脑支持 显卡直通。否则请先按照上部分对核显进行配置。
550 驱动驱动支持的显卡参考 FreeBSD Display Driver – X64
安装:
或者
配置:
查看显卡驱动状态
开机后在 kde 设置里查看显卡,默认用的是 intel 核显,终端里 nvidia-smi
仅有 nvidia-xorg-service 8MB
。
然后在终端用这个命令调用 N 卡:
mesa-demos
包含一些 opengl 示例,可用于测试驱动是否可用,非必要安装。
安装包后,若 xorg 启动成功则无需额外配置;若失败,再用 pciconf -lv
查找显卡的 busid,例如
在 /usr/local/etc/X11/xorg-nvidia-headless.conf
找到 Device
一节,并对应修改 BusID
,上面为 ”pci0:1:0:0“:
检验是否成功启用独显,可以用 mesa-demos 中的程序测试,运行 bounce
,用 nvidia-smi -l 1
观察(每隔一秒刷新一次)。在未使用 nvidia 驱动时会使用 7M 显存,在启用程序时显存并没有变化。
运行 nvrun-vgl bounce
用 nvidia-smi -l 1
观察使用 nvidia 驱动时使用了 13M 显存。
开启 vlc 硬解
安装:
或者
工具->偏好设置->输入/编解码器->硬件加速解码:选择 VDPAU 视频解码器
用 nvrun-vgl vlc
启动 vlc,并播放视频
显存使用上升,标志着正在使用硬解。
独显直连/台式机(仍存在问题!不要用)
安装驱动
安装几个 nvidia 相关的包:
技巧
nvidia-drm-kmod
目前依赖安装的nvidia-driver
默认为 550。
注意
如果 pkg 找不到
graphics/nvidia-drm-kmod
就编译安装,该包提供了 PRIME 等支持。
或者:
查看驱动状态
这时候应该已经可以驱动显卡了。
查看驱动信息:
如果发现系统没有使用 nvidia 驱动,需要自动生成配置文件:
然后重新启动就可以发现正常使用 nvidia 驱动了
技巧
在默认情况下,通过 pkg 安装的 nvidia-driver 是包含 Linux 兼容层支持的, 如果要使用 Linux 兼容层,需要执行以下命令;如果不需要,则无需执行:
当然,如果使用官方的 pkg 软件包,安装好驱动重启后:
会发现系统自动加载了 linux.ko
模块。如果觉得太臃肿,不需要 Linux 兼容层,可以自己通过 ports 编译 nvidia-driver
,去掉 linux compatibility support
。
xorg
可选软件包:
xorg 完整包: xorg
xorg 最小化包: xorg-minimal(不建议)
安装
通过 pkg 安装
通过 ports 安装
故障排除
如果显卡使用驱动有问题请直接联系作者:https://github.com/freebsd/drm-kmod/issues
如果笔记本出现了唤醒时屏幕点不亮的问题,可以在
/boot/loader.conf
中添加hw.acpi.reset_video="1"
以在唤醒时重置显示适配器。
警告
应该尽量避免试图手动生成
xorg.conf
这个文件。你打不开桌面很大概率不是因为这个文件的配置有问题!你应该去检查显卡驱动或者桌面本身的问题。Xorg 几乎是不会出问题的!
参考文献
详细情况可以看 wiki/Graphics
最后更新于