Arch Linux GPU 驱动配置
所有 AMD 显卡建议使用开源驱动,英伟达显卡建议使用闭源驱动。
区分集成显卡、独立显卡和双显卡(集显 + 独显)三大类讨论 archlinux 显卡驱动的安装。
1 集成显卡
1.1 Intel 集成显卡
通过以下命令安装如下几个包即可:
sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel
不建议安装 xf86-video-intel,而应使用 Xorg 的 modesetting 驱动
只有 Intel HD 4000 及以上的集显才支持 vulkan
1.2 AMD 集成显卡
对于具有集成显卡的 AMD 处理器,需要先确定集显架构(Architecture)是什么,再决定安装什么驱动。
在确定了显卡架构后,再根据架构对照下表决定安装什么驱动。
| GPU 架构 | Radeon 显卡 | 开源驱动 | 非开源驱动 |
|---|---|---|---|
| GCN 4 及之后 | 多种* | AMDGPU* | AMDGPU PRO* |
| GCN 3 | 多种 | AMDGPU | AMDGPU PRO |
| GCN 2 | 多种 | AMDGPU/ ATI* | 不支持 |
| GCN 1 | 多种 | AMDGPU / ATI | 不支持 |
| TeraScale 2&3 | HD 5000 - HD 6000 | ATI | 不支持 |
| TeraScale 1 | HD 2000 - HD 4000 | ATI | 不支持 |
| 旧型号 | X1000 及之前 | ATI | 不支持 |
对于 GUN2.0 以及之前架构的老显卡,直接安装 ATI 开源驱动即可,原本老旧的闭源 Catalyst 驱动在 2021 年已经废弃。
GCN 2.0 及以下架构的老显卡也不要使用开源 AMPGPU 驱动,因为其仅处于实验性质,需要各种自定义内核编译选项与配置,非常麻烦。
对于新型号(GCN 3 架构及更新)的集成显卡,直接安装开源驱动 AMDGPU 即可。
安装驱动命令:
- 开源 AMDGPU
sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon
- 开源 ATI 驱动
sudo pacman -S mesa lib32-mesa xf86-video-ati
2 独立显卡
2.1 NVIDIA独立显卡
- 对于 Turing (NV160/TUXXX) 系列或更新的显卡,需要安装 nvidia-open 驱动
sudo pacman -S nvidia-open nvidia-settings lib32-nvidia-utils
- 其他较新型号的独立显卡使用以下命令直接安装如下几个包即可:
sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils
- 如果是 GeForce 630 以下到 GeForce 400 系列的老卡,使用以下命令安装 nvidia-390xx-dkms 及其 32 位支持包:
yay -S nvidia-390xx-dkms nvidia-settings lib32-nvidia-390xx-utils
- 再老的显卡直接使用以下命令安装 开源驱动 即可:
sudo pacman -S mesa lib32-mesa xf86-video-nouveau
安装 NVIDIA 官方的驱动之后,需要编辑
/etc/mkinitcpio.conf,在HOOKS一行删除kms并保存,然后执行mkinitcpio -P重新生成一次镜像。这能防止initramfs包含nouveau模块,避免nouveau和官方驱动的冲突。
2.2 AMD 独立显卡
AMD 独立显卡的驱动安装步骤和 AMD 集成显卡是相同的,都需要先确定架构,然后选定正确的驱动安装即可。
3 双显卡(集显+独显)
3.1 NVIDIA 独立显卡
optimus-manager已经支持 AMD 集成显卡 + NVIDIA 独立显卡组合
同时拥有集成显卡与独立显卡的笔记本电脑,需要按照上述步骤先安装各个对应的软件包。除此之外还需要安装 optimus-manager 以及其图形前端 optimus-manager-qt。通过该程序可以在集成显卡和独立显卡间轻松切换。optimus-manager 提供三种模式: 仅用独显、仅用集显以及 hybrid 动态切换模式。
- 使用以下命令安装相关软件包:
yay -S aur/optimus-manager optimus-manager-qt
- 安装完成后重启即可使用。
optimus-manager安装完成后会默认设置optimus-manager.service服务自动启动,但建议还是通过以下命令手动设置一下:
sudo systemctl enable optimus-manager.service
- 重启后在在菜单栏打开 optimus-manager 即可使用。可在其设置中设置开机自动启动
- 如果需要在独显和集显模式间切换,要注意你没安装各类 GPU 监控插件,它们会阻止显卡切换,导致不可预料的错误
- 不要使用 Nvidia Control Panel 中的 Save to X Configuration file ,会导致配置冲突
- 在显卡之间的切换时,重新登陆后如在 splash screen 卡住或者黑屏,可以尝试按照提示在
tty1 ~ tty6之间进行切换
3.2 动态切换
hybrid 动态切换模式并不是自动的(类似 win10),需要手动添加环境变量。
hybrid 动态切换模式本质上是使用针对使用闭源驱动的双显卡 PRIME 方法进行切换 —— 这需要设置三个环境变量。有两种方法:
- 通过命令手动添加前缀,也可直接添加环境变量在全局环境下(不推荐)。如果加在了全局环境中,在从 hybrid 动态切换模式切换到其他模式之前一定要去掉这三个环境变量,否则会黑屏
- 用
nvidia-prime包提供的命令prime-run
3.2.1 prime-run 方法
sudo pacman -S nvidia-prime
# 通过以下命令(将 %command% 替换为要运行的命令)以使用 NVIDIA 独立显卡运行程序:
prime-run %command%
# 运行 steam 游戏的例子:
prime-run steam steam://rungameid/570 # 运行 Dota 2
prime-run steam steam://rungameid/730 # 运行 CS:GO
steam 游戏的启动参数 steam://rungameid/xxx 可通过以下方式查找:
- 右键需要运行的游戏图标 > 点击 编辑应用程序…
- 在 应用程序 选项卡 > 命令 处查看
3.2.2 环境变量方法
- 手动输入
通过以下命令(将 %command% 替换为要运行的命令)以使用 NVIDIA 独立显卡运
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only" %command%
运行 steam 游戏的例子:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only" steam steam://rungameid/570 # 运行 Dota 2
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only" steam steam://rungameid/730 # 运行 CS:GO
- 全局变量
编辑 /etc/environment 文件:
sudo vim /etc/environment
# 加入以下内容:
__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME="nvidia"
__VK_LAYER_NV_optimus="NVIDIA_only"
3.3 AMD 独立显卡
AMD 独立显卡无法使用 optimus-manager,但可以使用针对使用开源驱动的双显卡 PRIME 方法进行切换。也就是使用 DRI_PRIME=1 前缀使用独立显卡。
- 通过以下命令(将 %command% 替换为要运行的命令)以使用 AMD 独立显卡运行程序:
DRI_PRIME=1 %command%
- 运行 steam 游戏的例子:
DRI_PRIME=1 steam steam://rungameid/570 # 运行 Dota 2
DRI_PRIME=1 steam steam://rungameid/730 # 运行 CS:GO
- 可以使用以下命令分别对集成显卡和独立显卡进行性能测试,选择分数更高的一个使用:
# 独立显卡
DRI_PRIME=1 glmark2
# 集成显卡
glmark2
可以在 steam 游戏的启动前缀中加入
DRI_PRIME=1 mangohud %command%来使用独显的同时显示帧数等信息。
4 性能测试
4.1 glxgears
最传统和广为人知的方式是使用 glxgears 命令进行测试,其属于 mesa-utils 包。
- 通过以下命令安装
mesa-utils包
sudo pacman -S mesa-utils
- 通过以下命令进行测试:
glxgears
随后会弹出一个小窗口运行测试程序, 帧数会打印在终端中。
- 使用
Ctrl + C退出测试
glxgears 仅仅只能提供简单的测试场景及帧数显示,只测试了当前 OpenGL 功能的一小部分,功能不足。
4.2 glmark2
glmark2 提供了一系列丰富的测试,涉及图形单元性能(缓冲、建筑、照明、纹理等)的不同方面,允许进行更全面和有意义的测试。每次测试单独计算帧速率。最终,程序根据之前的所有测试给出一个最终分数。在 archlinux 上属于包 glmark2.
- 使用以下命令安装 glmark2:
sudo pacman -S glmark2
- 使用以下命令启动 glmark2:
glmark2
随后会弹出一个小窗口运行测试程序.
4.3 Unigine benchmark
随后会弹出一个小窗口运行测试程序.
- 可以使用以下命令从 AUR 下载全部版本(选一个即可):
yay -S unigine-superposition
yay -S unigine-valley
yay -S unigine-heaven
yay -S unigine-tropics
yay -S unigine-sanctuary
- 使用以下命令启动 Unigine benchmark(输入对应安装的版本):
unigine-superposition
unigine-valley
unigine-heaven
unigine-tropics
unigine-sanctuary
- 调整参数后,点击 RUN 即可进入测试,帧数会显示在右上角
- 点击左上角 基准 开始基准测试
- 点击左上角 退出 并 确定 即可退出测试
更多推荐



所有评论(0)