6.1 Intel 和 AMD 显卡驱动配置

警告

请勿使用 sysutils/desktop-installer,该工具在当前环境下可能引发不必要的错误和配置冲突。

引言

本节系统阐述 FreeBSD 操作系统中 Intel 与 AMD 图形处理器(Graphics Processing Unit,GPU)驱动程序的安装与配置方法。图形驱动作为连接操作系统内核与图形硬件的关键抽象层,其正确配置对于桌面环境的稳定运行与性能发挥至关重要。

未安装显卡驱动的设备图片实例

未安装显卡驱动的报错图

上图展示了未安装显卡驱动时可能出现的报错界面。

显卡支持情况

FreeBSD 的 i915 与 AMD 显卡驱动与基本系统分离,以移植的长期支持(Long Term Support,LTS)版本 Linux 内核 DRM(Direct Rendering Manager,直接渲染管理器)驱动形式作为 Port 提供。不同系统版本对应的 Linux 内核版本亦不相同。

DRM 是 Linux 内核的子系统,负责与现代显卡的 GPU 进行交互。FreeBSD 在内核中实现了 Linux 内核编程接口(LinuxKPI,Linux Kernel Programming Interface),并移植了 Linux DRM,类似的还有一些无线网卡驱动也采用了这种移植方式。

技巧

这种移植并不覆盖 Linux 现有的全部 DRM GPU 驱动,目前仅有 i915、amdgpu 和 radeon,其他如 vmwgfx、xe、virtio 等均未进行移植。因此在一般情况下,也无法在 Wayland 上运行上述未移植的 GPU,它们目前只能使用 X11 显示协议。

注意

DG2 Arc 显卡尚不受支持(截至 DRM 6.1 版本),相关技术细节可参见:Intel Arc A770: Kernel panic on kldload i915kms.ko #315[EB/OL]. [2026-03-26]. https://github.com/freebsd/drm-kmod/issues/315arrow-up-right。可能需要等到 6.12 的移植才能提供支持。

FreeBSD 版本
对应 DRM 驱动版本
GPU 支持范围(AMD / Intel)
备注

FreeBSD 14.3-RELEASE

drm-61-kmod(基于 Linux 6.1 DRM)

- AMD: GCN 1(Southern Islands) GCN 5(Polaris / Vega) RDNA 1 / RDNA 2 / RDNA 3(Radeon RX 7000 系列) - Intel: Gen 4(GMA X3000 / 965) Gen 5(Iron Lake) Gen 6(Sandy Bridge) Gen 7(Ivy / Haswell) Gen 8(Broadwell) Gen 9(Skylake / Kaby Lake / Coffee Lake) Gen 10(Cannon Lake – 已废弃) Gen 11(Ice Lake / Jasper Lake) Gen 12(Tiger Lake / Alder Lake)

理论支持 Intel 第 3 ~ 12 代 GPU。

FreeBSD 15.0/16.0-CURRENT

drm-66-kmod(基于 Linux 6.6 DRM)

- AMD:GCN 1 起至 RDNA 3(Radeon RX 7000 系列),并包含 Instinct MI300 加速卡 支持。 - Intel: Gen 4–8: 旧核芯显卡(GMA、HD Graphics 4000 等) Gen 9: Skylake / Kaby Lake / Coffee Lake Gen 10: Cannon Lake(已废弃) Gen 11: Ice Lake / Jasper Lake Gen 12: Tiger Lake / Alder Lake Gen 13: Raptor Lake(基本兼容 Alder Lake 驱动) Gen 14: Meteor Lake(实验性,已合入 drm-66)

实测 Intel Alder Lake-N (N100)、i7-1260P 显卡驱动加载正常,显示与视频加速功能稳定; 理论支持 Intel 第 3~14 代 GPU(含 Meteor Lake),但第 13 代及以后缺乏充分实测;

  • 非 LTS 版本(Port graphics/drm-latest-kmod,仅 15.0/16.0,目前为 6.9):

    • Intel:Meteor Lake 图形在 6.7 后默认启用;

    • AMD:引入对 RDNA 3+ / RDNA 4 的初步支持。覆盖 GCN 到 RDNA 3 全部架构,并预置 RDNA 4 驱动。

技巧

可在 port 开发者手册的最后一章中查询 OSVERSION 对应的版本和 Git 提交。

查看本机 OSVERSION,显示系统版本构建标识符:

警告

每次点版本或大版本升级时,可能需要重新获取系统源代码并重新编译安装显卡驱动模块,方可顺利完成升级,而不是卡在黑屏界面;或者使用“模块源”。

加入 video 组

为获得显卡设备的访问权限,需将指定用户添加到 video 用户组。这是图形加速功能正常运行以及 Wayland 会话正常工作的必要前提条件:

警告

即使已加入 wheel 组,也应再加入 video 组,否则硬件解码功能会出现问题,且 Wayland 下普通用户将无权限调用显卡。

安装 Intel 核芯显卡/AMD 显卡驱动

注意

在使用 GNOME 时,如果自动锁屏/熄屏,可能无法再次进入桌面。相关技术问题可参见:Bug 255049 - x11/gdm doesn't show the login screen[EB/OL]. [2026-03-26]. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255049arrow-up-right

注意

使用 Ports 安装时,drm 驱动需要在 /usr/src 中有一份当前版本的系统源代码,具体可参考系统更新章节。若已参考本书其他章节进行安装,系统中很可能已有一份源码,无需再次获取。

FreeBSD 14.X

技巧

若要使用 pkg 安装,请参照本书其他章节配置的 kernel modules(kmods)内核模块源。

或者(如有问题请使用 Ports):

FreeBSD 15.0

注意

对于英特尔三代处理器的 HD 4000 等较古老的核芯显卡,在传统 BIOS 模式下无需额外安装显卡驱动,但在 UEFI 模式下可能出现花屏现象(FreeBSD 13.0 及以后版本无此问题),此时需要安装此 DRM 显卡驱动。

配置 Intel 核芯显卡/AMD 显卡

按以下步骤进行配置:

Intel 核芯显卡

/etc/rc.conf 中添加 i915kms 内核模块到 kld_list,以便系统启动时加载:

AMD

  • 对于 HD 7000 以后的 AMD 显卡,在 /etc/rc.conf 中添加 amdgpu 内核模块(多数用户应使用此驱动,若未生效再修改为 radeonkms)到 kld_list,以便系统启动时加载:

  • 对于 HD 7000 以前的 AMD 显卡,在 /etc/rc.conf 中添加 radeonkms 内核模块(较早期的显卡驱动)到 kld_list,以便系统启动时加载:

故障排除与未竟事宜

注意

遇到任何问题时,请先使用 Ports 重新编译安装。尤其是在版本升级时。

KLD XXX.ko depends on kernel - not available or version mismatch.

提示内核版本不符,请先升级系统或使用 ports 编译安装。14.3-RELEASE 及以上版本可使用内置的内核模块源(参见其他章节),应不会出现类似问题。

AMD 驱动错误提示

视频硬解

Intel 视频硬解

警告

如果忽略此部分,Blender 等软件将无法运行,并会直接发生“段错误”。

安装 Intel VA-API 媒体驱动:

  • 使用 pkg 安装:

  • 或使用 Ports 安装:

AMD 视频硬解

安装 Mesa 的 Gallium VA-API 和 VDPAU 支持包:

  • 使用 pkg 安装:

  • 或使用 Ports 安装:

附录:设置 X11

若上述配置未生效,可能还需要配置 X11。

将以下内容写入 /usr/local/etc/X11/xorg.conf.d/20-amdgpu-tearfree.conf(请自行创建该文件):

配置完成后,可使用 mpv --hwdec xxx.mp4 进行测试。请自行安装 mpv。

亮度调节

通用

  • 对于一般计算机,在 /boot/loader.conf 中启用 ACPI 视频支持:

  • 对于 ThinkPad,启用 IBM ACPI 支持和 ACPI 视频支持:

英特尔/AMD

backlight 工具自 FreeBSD 13 引入。

若上述操作不起作用,请检查 /dev/backlight 路径下有哪些设备。

  • 示例(请使用 ls /dev/backlight 查看实际设备):

参考文献

检查状态

判断是否成功驱动显卡:

成功驱动后,系统中将出现名为 card0 的设备(一般编号为 0,若有第二块显卡,则为 card1),同时可能还会出现名为 backlight0 的设备(HDMI 输出下通常不存在该设备)。

故障排除与未竟事宜

  • 若显卡驱动使用有问题,请直接联系维护者:https://github.com/freebsd/drm-kmod/issuesarrow-up-right

  • 若笔记本出现唤醒时屏幕点不亮的问题,可在 /boot/loader.conf 中添加 hw.acpi.reset_video="1" 以在唤醒时重置显示适配器。

  • 普通用户若非 wheel 组成员,请加入 video 组。若普通用户未加入 video 组(仅加入 wheel 组不够),KDE 设置中将始终显示显卡驱动为“llvmpipe”,这会影响 Wayland 下普通用户的显示或硬解调用。

参考文献

课后习题

  1. 查找 drm-61-kmod 或 drm-66-kmod 的 Port 源码,分析其构建依赖与内核版本的对应关系,在 QEMU 中模拟不同 FreeBSD 版本并验证驱动加载行为。

  2. 尝试从 OpenBSD 移植 drm 实现。

  3. 尝试自动化上述 drm 的移植流程。

最后更新于