FreeBSD 安装 NVIDIA AMD Intel VMWare Virtualbox 显卡驱动
在 使用 Xorg 安装图形界面之前,需要安装显卡驱动,不同的硬件(如 NVIDIA、AMD、Intel 或 虚拟机)需要安装不同的显卡驱动,本文将依据硬件分类介绍如何在 FreeBSD 系统中安装显卡驱动。
识别显卡与启动模式
安装什么样的显卡驱动与计算机使用的显卡品牌和型号有关,在某些情况下也与计算机的使用的启动模式相关。
识别显卡型号
1)执行如下命令输出系统的显卡信息:
pciconf -lv | grep -B3 display
2)输出信息示例,不同的计算机输出的信息不同,如下只是示例:
Intel 核显会输出类似如下的信息:
vgapci1@pci0:0:2:0: class=0x030000 rev=0x0c hdr=0x00 vendor=0x8086 device=0x46a6 subvendor=0x1028 subdevice=0x0b29
vendor = 'Intel Corporation'
device = 'Alder Lake-P GT2 [Iris Xe Graphics]'
class = display
NVIDIA 独显会输出类似如下的信息:
vgapci0@pci0:1:0:0: class=0x030200 rev=0xa1 hdr=0x00 vendor=0x10de device=0x25b9 subvendor=0x1028 subdevice=0x0b29
vendor = 'NVIDIA Corporation'
device = 'GA107GLM [RTX A1000 Laptop GPU]'
class = display
3)确定计算机的显卡品牌和型号:
vendor:为显卡的品牌,如 Intel / AMD / NVIDIA / 虚拟机device:设备的具体型号
查看启动模式
如果你的显卡不支持使用 Intel、AMD、NVIDIA 显卡驱动,需要使用 SCFB 和 VESA 两个驱动中的一个,显卡驱动与计算机使用的启动模式有关,因此要确定计算机使用的启动模式。
使用如下的命令查看系统使用的启动模式:
sysctl machdep.bootmethod
输入内容解释说明:
machdep.bootmethod: UEFI:启动模式为UEFI,此时需要使用 SCFB 驱动machdep.bootmethod: BIOS:启动模式为BIOS,此时需要使用 VESA 驱动
安装对应显卡驱动
如下给出在 FreeBSD 系统中主流显卡品牌、内核模块和安装包的对应表:
FreeBSD 支持的主流显卡驱动如下表(优先选择开源驱动,NVIDIA 需使用专有驱动):
| 显卡品牌 | 驱动类型 | 内核模块 | 安装包 |
|---|---|---|---|
| Intel | 开源 | i915kms | graphics/drm-kmod |
| AMD | 开源 | amdgpu/radeonkms | graphics/drm-kmod |
| NVIDIA | 专有 | nvidia-drm(新版) nvidia-modeset(旧版) |
graphics/nvidia-drm-kmod(新版) x11/nvidia-driver-xxx(旧版) |
| 通用 (UEFI) | 开源 | scfb | x11-drivers/xf86-video-scfb |
| 通用 (BIOS) | 开源 | vesa | x11-drivers/xf86-video-vesa |
| VirtualBox | 开源 | vboxvideo | emulators/virtualbox-ose-additions |
| VMware | 开源 | vmwgfx | x11-drivers/xf86-video-vmware |
表格内容解释说明:
- 内核模块:安装包安装到系统中后的
.ko文件的名称,系统加载该文件驱动显卡,如graphics/drm-kmod安装包中包含了多个模块,会根据显卡安装特定的模块 - 安装包:安装驱动时使用的软件包的名称,如
pkg install graphics/drm-kmod - 通用 (UEFI) 或 通用 (BIOS) :是通用显卡驱动,需要依据不同的启动模式进行选择
Intel 显卡驱动
如果 FreeBSD 系统中使用的是 Intel 的核显,需要安装 drm-kmod 软件包。
1)安装驱动包:
pkg install drm-kmod
2)在 /etc/rc.conf 文件中启用内核模块,使其开机自动加载:
sysrc kld_list+=i915kms
3)验证模块是否成功启动:
kldstat | grep i915kms
如果输出模块的信息则表示启用模块成功
AMD 显卡驱动
安装软件包
使用如下命令安装包含 AMD 显卡驱动模块的软件包:
pkg install drm-kmod
启用显卡模块
1)新版的显卡,在 HD7000 之后的显卡,如 RX 5000/6000/7000 等系列的显卡,运行如下命令:
sysrc kld_list+=amdgpu
2)旧版的显卡,运行如下命令:
sysrc kld_list+=radeonkms
参考 AMD 显卡支持文档:https://wiki.freebsd.org/Graphics/AMD
NVIDIA 显卡驱动
NVIDIA 品牌的显卡没有开源驱动,需要使用官方提供的专用的显卡驱动。
新版显卡安装驱动
最新版的显卡,如 RTX 3000/4000 等系列,使用软件包 graphics/nvidia-drm-kmod 安装显卡驱动,该驱动支持 KMS 和 PRIME。
1)安装驱动软件包:
pkg install nvidia-drm-kmod
2)启用显卡驱动模块,使其开机自动启动:
sysrc kld_list+=nvidia-drm
3)在 /boot/loader.conf 文件中添加设置,启用内核模式设置(KMS):
hw.nvidiadrm.modeset="1"
RTX 2000 系列安装驱动
RTX 2000 系列需要使用 x11/nvidia-driver-470 软件包安装驱动。
1)安装驱动软件包:
pkg install nvidia-driver-470
2)启用显卡驱动模块,使其开机自动启动:
sysrc kld_list+=nvidia-modeset
新版显卡安装驱动
GTX 1000 系列及其以前的显卡,需要使用 x11/nvidia-driver-390 软件包安装驱动。
1)安装驱动软件包:
pkg install nvidia-driver-390
2)启用显卡驱动模块,使其开机自动启动:
sysrc kld_list+=nvidia-modeset
通用驱动
如果你的电脑比较老旧,或是是在虚拟机中,不能使用 Intel、AMD、NVIDIA 显卡驱动,那么就需要使用 SCFB 或 VESA 通用驱动。
UEFI 启动模式
UEFI 启动模式下需要使用 SCFB 显卡模块。
1)安装显卡驱动软件包:
pkg install xf86-video-scfb
2)模块不用显式加载,系统内核会根据需要自动加载。
BIOS 启动模式
BIOS 启动模式下需要使用 VESA 显卡模块。
1)安装显卡驱动软件包:
pkg install xf86-video-vesa
2)模块不用显式加载,系统内核会根据需要自动加载。
通用的显卡驱动无硬件加速功能,只能满足基础显示需求。
VMWare 显卡驱动
VMWare 虚拟环境中安装显卡驱动需要使用专用的显卡驱动软件包 xf86-video-vmware。
1)安装显卡驱动软件包:
pkg install xf86-video-vmware
2)模块不用显式加载,系统内核会根据需要自动加载。
Virtualbox 显卡驱动
Virtualbox 虚拟环境中安装显卡驱动需要使用专用的显卡驱动软件包 virtualbox-ose-additions。
1)安装显卡驱动软件包:
pkg install virtualbox-ose-additions
2)启用 Virtualbox 需要的服务:
sysrc vboxguest_enable="YES"
sysrc vboxservice_enable="YES"
3)如果启用了 ntpd 或 ntpdate 服务,在 /etc/rc.conf 文件中如下代码禁用自动时间同步:
vboxservice_flags="--disable-timesync"
验证驱动加载
重启系统后,执行以下命令检查驱动是否加载成功:
kldstat | grep -E 'i915kms|amdgpu|radeonkms|nvidia'
若输出对应模块名称,则驱动加载成功。