首页 > 教程 > FreeBSD 教程 > X 视窗系统 > FreeBSD 安装 NVIDIA AMD Intel VMWare Virtualbox 显卡驱动

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 显卡驱动,那么就需要使用 SCFBVESA 通用驱动。

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)如果启用了 ntpdntpdate 服务,在 /etc/rc.conf 文件中如下代码禁用自动时间同步:

vboxservice_flags="--disable-timesync"

验证驱动加载

重启系统后,执行以下命令检查驱动是否加载成功:

kldstat | grep -E 'i915kms|amdgpu|radeonkms|nvidia'

若输出对应模块名称,则驱动加载成功。