archlinux 显卡驱动
🪁 接天莲叶无穷碧,映日荷花别样红
Section titled “🪁 接天莲叶无穷碧,映日荷花别样红”近年来,archlinux 的显卡驱动安装已经变得非常容易。本小节区分集成显卡、独立显卡和双显卡(集显 + 独显)三大类讨论 archlinux 显卡驱动的安装
🔖 这一节将会讨论:
Section titled “🔖 这一节将会讨论:”所有 AMD 显卡建议使用开源驱动,英伟达显卡建议使用闭源驱动。
Intel 核芯显卡
Section titled “Intel 核芯显卡”如有需要可以参阅 ArchWiki 相关内容。
通过以下命令安装如下几个包即可:
sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel
AMD 集成显卡
Section titled “AMD 集成显卡”如有需要可以参阅 ArchWiki 相关内容。
对于具有集成显卡的 AMD 处理器,需要先确定集显架构(Architecture)是什么,再决定安装什么驱动。
推荐在 TECHPOWERUP 进行查询,信息非常全面。在确定了显卡架构后,再根据架构对照下表决定安装什么驱动。
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 | 不支持 |
*多种
*ATI
下面是一些例子:
-
你的笔记本 cpu 是目前常见的 AMD Ryzen™ 7 4800U,它的集显为 Vega 8。通过查询,可知其为
GCN 5.0
架构,那么对照上表,你应该安装 AMDGPU 开源驱动。 -
你的台式机 cpu 是目前常见的 AMD Ryzen™ 5 3400G,它的集显为 Vega 11。通过查询,可知其为
GCN 5.0
架构,那么对照上表,你应该安装 AMDGPU 开源驱动。 -
再老一些的 7th Gen A10-9700 APU 处理器 ,它的集显为 Radeon R7。通过查询,可知其为
GCN 2.0
架构,那么对照上表,你应该安装 ATI 开源驱动。
通过以下命令安装如下几个包即可:
sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon
sudo pacman -S mesa lib32-mesa xf86-video-ati
NVIDIA 独立显卡
Section titled “NVIDIA 独立显卡”如有需要可以参阅 ArchWiki 相关内容。
- 对于 Turing (NV160/TUXXX) 系列或更新的显卡,需要安装 nvidia-open 驱动
sudo pacman -S nvidia-open nvidia-settings lib32-nvidia-utils # 必须安装
sudo pacman -S nvidia-open-dkms nvidia-settings lib32-nvidia-utils # 必须安装
- 其他较新型号的独立显卡使用以下命令直接安装如下几个包即可:
sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils # 必须安装
sudo pacman -S nvidia-dkms nvidia-settings lib32-nvidia-utils # 必须安装
- 如果是 GeForce 630 以下到 GeForce 400 系列的老卡,使用以下命令安装 nvidia-390xx-dkmsaur 及其 32 位支持包:
yay -S nvidia-390xx-dkms nvidia-settings lib32-nvidia-390xx-utils
- 再老的显卡直接使用以下命令安装 开源驱动 即可:
sudo pacman -S mesa lib32-mesa xf86-video-nouveau
AMD 独立显卡
Section titled “AMD 独立显卡”AMD 独立显卡的驱动安装步骤实际上和 AMD 集成显卡是相同的,都需要先确定架构,然后选定正确的驱动安装即可。参考步骤 AMD 集成显卡。
双显卡(集显 + 独显)
Section titled “双显卡(集显 + 独显)”如有需要可以参阅 ArchWiki 相关内容。
NVIDIA 独立显卡
Section titled “NVIDIA 独立显卡”如有需要可以参考 optimus-manager 官方文档。
同时拥有集成显卡与独立显卡的笔记本电脑,同样需要按照上述步骤先安装各个对应的软件包。除此之外还需要安装 optimus-managercn / aur 以及其图形前端 optimus-manager-qtaur。通过该程序可以在集成显卡和独立显卡间轻松切换。optimus-manager 提供三种模式 —— 分别为仅用独显、仅用集显以及 hybrid 动态切换模式。
- 使用以下命令安装相关软件包:
yay -S optimus-manager optimus-manager-qt
yay -S aur/optimus-manager optimus-manager-qt
- 安装完成后重启即可使用。optimus-manager 安装完成后会默认设置
optimus-manager.service
服务自动启动,但建议还是通过以下命令手动设置一下:
sudo systemctl enable optimus-manager.service
- 重启后在在菜单栏打开 optimus-manager 即可使用。可在其设置中设置开机自动启动:
此时你应该已经可以进行显卡切换了。
hybrid 动态切换模式本质上是使用针对使用闭源驱动的双显卡 PRIME 方法进行切换 —— 这需要设置三个环境变量。有两种方法:
-
通过命令手动添加前缀,也可直接添加环境变量在全局环境下(不推荐)。如果加在了全局环境中,在从 hybrid 动态切换模式切换到其他模式之前一定要去掉这三个环境变量,否则会黑屏
-
用 nvidia-prime 包提供的命令
prime-run
prime-run 方法
Section titled “prime-run 方法”- 通过以下命令安装 nvidia-prime 包:
sudo pacman -S nvidia-prime
- 通过以下命令(请将
%command%
替换为要运行的命令)以使用 NVIDIA 独立显卡运行程序:
prime-run %command%
运行 steam 游戏的例子:
prime-run steam steam://rungameid/570 # 运行 Dota 2prime-run steam steam://rungameid/730 # 运行 CS:GO
环境变量方法
Section titled “环境变量方法”通过以下命令(请将 %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
- 使用
vim
编辑/etc/environment
文件:
sudo vim /etc/environment
加入以下内容:
__NV_PRIME_RENDER_OFFLOAD=1__GLX_VENDOR_LIBRARY_NAME="nvidia"__VK_LAYER_NV_optimus="NVIDIA_only"
- 保存并退出
vim
电源管理做的事情是,在只用集显的模式下,确保正确关闭独立显卡;而在混合模式下,绝大多数情况下 NVIDIA 模块实际是始终开启的,电源管理并不生效。
这件事情其实很复杂,因为对于不同的显卡型号,以及笔记本型号的组合,可行的方案都是不同的。笼统来说,最广泛适用的办法是 Bbswitch。但不建议上来就按照此方式安装使用,因为某些特定的硬件就是会出问题(黑屏)。
建议按照 optimus-manager 官方文档 一步步尝试,最后找到属于你自己电脑合适的电源管理方式。此文档必须详细阅读!
针对大多数笔记本适用的 Bbswitch,此处进行安装使用的讲解。
- 通过以下命令安装包
bbswitch
;若使用其它内核,则安装包bbswitch-dkms
:
sudo pacman -S bbswitch
sudo pacman -S bbswitch-dkms
- 右键 optimus-manager 的托盘图标 > 点击
设置
> 在 Optimus 选项卡中的switch method
中选择Bbswitch
即可:
- 重启之后,若使用仅集显模式使用如下命令验证 NVIDIA 独立显卡是否被禁用:
lspci | grep NVIDIA
若有 rev ff
字样,则表示独显已经成功禁用。
AMD 独立显卡
Section titled “AMD 独立显卡”虽然 AMD 独立显卡无法使用 optimus-manager,但可以使用针对使用开源驱动的双显卡 PRIME 方法进行切换。也就是使用 DRI_PRIME=1
前缀使用独立显卡(可能还更简单了?🤔)。
- 通过以下命令(请将
%command%
替换为要运行的命令)以使用 AMD 独立显卡运行程序:
DRI_PRIME=1 %command%
运行 steam 游戏的例子:
DRI_PRIME=1 steam steam://rungameid/570 # 运行 Dota 2DRI_PRIME=1 steam steam://rungameid/730 # 运行 CS:GO
- 可以使用以下命令分别对集成显卡和独立显卡进行性能测试,选择分数更高的一个使用:
glmark2
DRI_PRIME=1 glmark2
关于 glmark2 的说明请参阅 glmark2。
如有需要可以参考 ArchWiki 相关内容。
glxgears
Section titled “glxgears”最传统和广为人知的方式是使用 glxgears
命令进行测试,其属于 mesa-utils 包。
- 通过以下命令安装 mesa-utils 包(可能已经安装了):
sudo pacman -S mesa-utils
- 通过以下命令进行测试:
glxgears
随后会弹出一个小窗口运行测试程序:
帧数会打印在终端中:
- 使用
Ctrl
+C
退出测试
glxgears
仅仅只能提供简单的测试场景及帧数显示,只测试了当前 OpenGL 功能的一小部分,功能明显不足。笔者推荐如下两种工具。
glmark2
Section titled “glmark2”glmark2 提供了一系列丰富的测试,涉及图形单元性能(缓冲、建筑、照明、纹理等)的不同方面,允许进行更全面和有意义的测试。每次测试单独计算帧速率。最终,程序根据之前的所有测试给出一个最终分数。在 archlinux 上属于包 glmark2cn / aur。
- 使用以下命令安装 glmark2:
sudo pacman -S glmark2
yay -S aur/glmark2
- 使用以下命令启动 glmark2:
glmark2
随后会弹出一个小窗口运行测试程序:
以笔者的硬件为例(集成显卡),测试结果如下:
Unigine benchmark
Section titled “Unigine benchmark”Unigine 3D 引擎是一个更全面的基准测试工具。截止目前有五个版本,从新到旧分别是:
- superpositionEULA(2017)
- valleyEULA(2013)
- heavenEULA(2009)
- tropicsEULA(2008)
- sanctuaryEULA(2007)
- 可以使用以下命令从 AUR 下载全部版本(选一个即可):
yay -S unigine-superpositionyay -S unigine-valleyyay -S unigine-heavenyay -S unigine-tropicsyay -S unigine-sanctuary
- 使用以下命令启动 Unigine benchmark(输入对应安装的版本):
unigine-superpositionunigine-valleyunigine-heavenunigine-tropicsunigine-sanctuary
-
调整参数后,点击
RUN
即可进入测试,帧数会显示在右上角 -
点击左上角
基准
开始基准测试 -
点击左上角
退出
并确定
即可退出测试
此基准测试工具拥有实时的环境遮挡、来自不同来源的相互关联的灯光、HDR 效果图、逼真的水和具有大气光散射的动态天空。此外还可以设置抗锯齿级别、纹理质量和滤波、各向异性和着色器质量。
显卡信息查看
Section titled “显卡信息查看”NVIDIA 独立显卡
Section titled “NVIDIA 独立显卡”nvidia-settings
这个包即可全面的展示显卡相关信息(在步骤 NVIDIA 独立显卡 中已经安装)。
AMD 独立显卡 / 集成显卡
Section titled “AMD 独立显卡 / 集成显卡”- 通过以下命令安装 radeon-profile-gitaur 包以及其依赖 radeon-profile-daemon-gitaur:
yay -S radeon-profile-git radeon-profile-daemon-git
- 使用以下命令启动这个进程,即可以图形化的方式查看 AMD 显卡信息:
sudo systemctl enable --now radeon-profile-daemon.service