Skip to content

Latest commit

 

History

History
232 lines (146 loc) · 15.3 KB

File metadata and controls

232 lines (146 loc) · 15.3 KB

显卡驱动

当前,显卡驱动的安装在 Arch Linux 上已经变得非常容易。本文区分核芯显卡和独立显卡两大类描述显卡驱动的安装。注意,确保你已经按照本教程之前的章节安装好必要的系统包后再配置你的显卡驱动,不要多个教程混着看,你可能漏掉了本教程前置步骤中的某些操作,这可能会造成问题。

下面的配置部分需要使用 AUR,从 Github 上下载文件。在国内的网络环境下,可能极慢或无法下载。如果你需要执行其中使用 AUR 的命令(含有“yay”字样),请确保你按照前面所述的步骤配置好科学上网。

所有英特尔和 AMD 显卡,由于他们本身释出了开源的驱动,它们的发挥同专有的的驱动并没有明显的区别。不论在任何情况下建议使用自由开源的驱动。 对于英伟达显卡,由于其官方并没有释出自由的驱动程序,现有的英伟达显卡自由驱动程序 Nouveau 是根据逆向工程研发的。它不支持英伟达显卡的 CUDA 特性,3D 性能发挥也许不如英伟达的专有驱动。但是自由的显卡驱动没有难以预测的后门和暗箱操作,可以保障你的计算机隐私和安全。**如果你是政治活动者且你要使用该计算机进行敏感的政治活动,强烈建议你使用自由的驱动程序。**同时,英伟达的显卡驱动兼容性也不尽人意,使用 Wayland 时问题尤其突出,但是 Nouveau 广泛运用于各种 GNU/Linux 发行版,作为内核模块被 Linux 内核原生支持,且自身积极稳定更新以适配 GNU/Linux 上系统运行库的快速迭代,因此它可能具有更好的稳定性(要知道,Arch Linux上很大一部分“滚挂”由英伟达专有驱动引起。)你可以按需选择使用专有驱动或自由的英伟达显卡驱动 Nouveau。 如果你非常需要在确保软件自由可控的同时保障性能发挥,请尽可能使用具有官方支持自由驱动的英特尔和 AMD 显卡。

核芯显卡

英特尔核芯显卡

官网文档

英特尔核芯显卡安装如下几个包即可。

sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel

xf86-video-intelarch wiki 里写的很多发行版不建议安装它,而应使用 xorg 的 modesetting 驱动(也就是什么都不用装的意思)。经过我们测试目前确实是默认 modesetting 驱动较为稳定。

注意,只有 Intel HD 4000 及以上的核显才支持 vulkan。

AMD 核芯显卡

对于具有核芯显卡的 AMD 处理器,需要先确定核显架构(Architecture)是什么,再决定安装什么驱动。推荐在 techpowerup 网站进行查询,信息非常全面。在确定了显卡架构后,再根据架构对照这个文档决定安装什么驱动。**对于 GCN2.0 及以下架构的老显卡,直接安装开源 ATI 驱动即可,原本闭源的老旧的 Catalyst 驱动在 2021 年已被废弃。GCN2.0 及以下架构的老显卡也不要使用开源的 AMDGPU 驱动,因为其仅处于实验性质,需要各种自定义内核编译选项与配置,非常麻烦,得不偿失。**对于新型号,即 GCN3 架构及更新型的核芯显卡,直接安装开源驱动 AMDGPU 即可,也就是以下这几个包。

sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon libva-mesa-driver lib32-libva-mesa-driver mesa-vdpau lib32-mesa-vdpau
  • 比如你的笔记本 cpu 是目前常见的 AMD R7 4800U,那么它的核显为 Vega 8。通过查询,可知其为 GCN 5.0 架构,那么对照 arch 官方文档,你可选择安装 AMDGPU 开源驱动。
  • 再比如你的台式机 cpu 是目前常见的 锐龙 5 3400G,那么它的核显为 Vega 11。通过查询,可知其为 GCN 5.0 架构,那么对照 arch 官方文档,你可选择安装 AMDGPU 开源驱动。
  • 再老一些的 apu A10-9700 处理器 ,它的核显为 Radeon R7。通过查询,可知其为 GCN 2.0 架构,那么对照 arch 官方文档,你选择安装 ATI 开源驱动。

独立显卡

这部分会分为仅有独立显卡(无核显)与同时拥有独立显卡和核芯显卡两种情况进行讲解。

英伟达独立显卡

安装自由的驱动

您可以安装自由的英伟达显卡驱动软件 Nouveau。如果你的设备用于执行非常敏感的活动,我们强烈建议你安装自由的驱动。

通过如下命令安装:

sudo pacman -S mesa xf86-video-nouveau lib32-mesa libva-mesa-driver mesa-vdpau

其中xf86-video-nouveau是 2D 驱动;nouveau-fw是英伟达固件,用来进行视频硬解码;libva-mesa-driver是 vaapi 视频硬解码库;mesa-vdpau是vdpau 视频硬解码库。

然后,执行以下指令重新生成 initramfs 以确保驱动在下次启动后加载。

sudo mkinitcpio -P

安装专有的驱动

如果你没有敏感的需求并且关注显卡性能的释放,你可以使用非自由的驱动。它们可能面临不稳定的问题,它们也可能导致你的计算机系统不再安全和隐秘。

本教程的内容并不全面,建议你查阅官方文档。在这里,我们只列出主要的显卡系列。查阅官方文档

较新型号的独立显卡直接安装如下几个包即可。

sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils #必须安装

如果是 GeForce 630 以上到 GeForce 920 以下的老卡,安装 nvidia-470xx-dkmsAUR及其 32 位支持包。使用 dkms 驱动同时需要 headers。

yay -S nvidia-470xx-dkms nvidia-settings lib32-nvidia-470xx-utils linux-headers

如果是 GeForce 630 以下到 GeForce 400 系列的老卡,安装 nvidia-390xx-dkmsAUR及其 32 位支持包。使用 dkms 驱动同时需要 headers。

yay -S nvidia-390xx-dkms nvidia-settings lib32-nvidia-390xx-utils linux-headers

如果你是全新安装,你可以直接执行上述命令,并通过执行命令sudo mkinitcpio -P重新生成 initramfs。但是请注意,如果你事前已经安装了 Nouveau,请禁用它,然后再安装专有的驱动。 我们前面只讲述了安装 GRUB 启动引导器。以它为例,按如下方式处理内核参数来禁用 Nouveau。

在GRUB配置禁用 Nouveau

打开 GRUB 配置文件。在GRUB_CMDLINE_LINUX_DEFAULT后面的引号内,添加module_blacklist=nouveau参数。

sudo vim /etc/default/grub # vim 可换为 nano,也可整体去掉 sudo 换成 kate(如果已安装),它们是更友好的。

禁用SDDM

请注意,Nouveau这一显卡驱动程序已被禁用(包括既有的基础内核模块),这意味如果你没有核显或集成显卡,你的电脑上将没有任何显示驱动,它将导致未知的显示问题。为规避风险,请禁用登陆管理器SDDM、窗口管理器等的自动启动。

sudo systemctl disable sddm

更新引导

sudo grub-mkconfig -o /boot/grub/grub.cfg

当你重启后,你将进入命令行界面。和你刚刚安装系统时候如出一辙。

安装英伟达专有驱动

在命令行界面下,按照“基础安装”中的方式连接互联网,执行上述安装英伟达专有驱动的命令。 然后,执行以下指令重新生成 initramfs 以确保驱动在下次启动后加载。

sudo mkinitcpio -P

重启SDDM并重启操作系统

sudo systemctl ensable sddm &&sudo systemctl reboot

恭喜你成功安装了英伟达专有驱动!


在同时拥有核芯显卡和英伟达独立显卡的笔记本上安装驱动是大多数人关注的事情,这里着重讲述。

再次提醒请按照本书前置章节配置好系统后再进行,不要多个教程混看,尤其是一些过时的教程。尤其需要注意的是确保 base-devel 包的安装以及使用 X11 模式。

英伟达双显卡模式官方文档 /// optimus-manager 官方文档

若为同时拥有核芯显卡与 Nvidia 独立的笔记本电脑,同样需要按照上述步骤先安装各个软件包。除此之外还需要安装 optimus-manager。可以在核芯显卡和独立显卡间轻松切换。optimus-manager 提供三种模式,分别为仅用独显,仅用核显,和 hybrid 动态切换模式。

yay -S optimus-manager optimus-manager-qt

安装完成后重启即可使用。optimus-manager 安装完成后会默认 enable optimus-manager 的服务,你可在重启前检查其状态,若没有 enable 则手动将其 enable。重启后在菜单栏搜索 optimus-manager 点击即可使用。可在其设置中设置开机自动启动。

sudo systemctl enable optimus-manager

此时你应该已经可以进行显卡切换了,如果有问题,请详细阅读 optimus-manager 的文档,里面有详细的描述。由于各类问题太多,本文不进行描述,optimus-manager 的文档很详尽,请自行查看。此处仅列出几项较为重要的注意事项:

  • 如果需要在独显和核显模式间切换,要注意你没安装各类 GPU 监控插件,它们会阻止显卡切换,导致不可预料的错误。
  • 不要使用 Nvidia Control Panel 中的Save to X Configuration file按钮。会导致配置冲突。
  • 在显卡之间的切换时,重新登陆后如在 splash screen 卡住或者黑屏,可以尝试在 tty1 tty2 之间进行切换。
  • 如果你在安装 optimus manager 并重启后,直接黑屏卡死,不能进入系统,很有可能是遇到了常见的"ACPI ISSUE",简单来说,这是笔记本制造商的实现问题。可以尝试在内核启动参数中加入acpi_osi=! acpi_osi="Windows 2009" 后再尝试。[1]

最后详细说下动态切换模式。本质上其还是使用官方的 PRIME对闭源驱动的方法进行切换。需要设置三个环境变量,或者用 nvidia-prime 包提供的命令 prime-run,二者本质也是一样的,都是设置三个环境变量。

sudo pacman -S nvidia-prime
prime-run some_program #使用prime-run前缀来用独显运行某些程序

对于 AMD 核显+N 卡独显的读者,optimus-manager 对于这套组合的支持目前已经发布,最新可用版本为 1.4。


如果你不是强烈追求能效控制以及注重电池寿命的用户,那么可以不用往下看了,如果你是,那么需要针对你的硬件以及笔记本型号尝试正确的电源管理方式。此部分的设置可能导致黑屏,并且尝试过程可能较长,也会遇到各类问题,请根据你个人的操作水平自行斟酌是否操作

电源控制做的事情是,在只用核显的模式下,确保正确关闭独立显卡。而在混合模式下,绝大多数情况下 Nvidia 模块实际是始终开启的,电源控制并不生效。这件事情其实很复杂,因为对于不同的显卡型号,以及笔记本型号的组合,可行的方案都是不同的。笼统来说,最广泛适用的办法是 bbswitch。但仍不建议上来就按照此方式安装使用,因为某些特定的硬件就是会出问题,也就是黑屏。这里建议按照 optimus-manager 官方的文档一步一步来,按步骤尝试,最后找到属于你自己的电脑合适的电源管理方式。文档必须详细阅读!

针对大多数笔记本适用的 Bbswitch,此处进行安装使用的讲解。首先安装包 bbswitch。若使用其它内核,则安装包 bbswitch-dkms。

sudo pacman -S bbswitch #安装 bbswitch 切换方式

接下来右键点击 optimus-manager 的托盘设置,在 Optimus 选项卡中的 switch method 选择 Bbswitch 即可。

AMD 独立显卡

AMD 独立显卡的驱动安装步骤实际上 AMD 核芯显卡是相同的,都需要先确定架构,然后选定正确的驱动安装即可。真正需要关注的是如何在核芯显卡和独立显卡间进行切换。可以使用 PRIME 对开源驱动的双显卡切换方式。

此外,可以使用 glmark2DRI_PRIME=1 glmark2 分别对核显和独显进行测试,选择分数更高的一个进行使用。可以在 steam 游戏的启动前缀中加入DRI_PRIME=1 mangohud %command%来使用独显。(关于 mangohud)。

笔记本上使用独立显卡运行 steam 游戏的另一个例子。

DRI_PRIME=1 steam steam://rungameid/570 #运行dota2
DRI_PRIME=1 steam steam://rungameid/730 #运行cs go

性能测试

官方文档

最传统和广为人知的方式为使用glxgears命令进行测试,其属于mesa-utils包。但其仅仅只能提供简单的测试场景及帧数显示,只测试了当前 OpenGL 功能的一小部分,功能明显不足。我们推荐如下两种工具。

glmark2

glmark 提供了一系列丰富的测试,涉及图形单元性能(缓冲,建筑,照明,纹理等)的不同方面,允许进行更全面和有意义的测试。 每次测试单独计算帧速率。 最终,用户根据以前的所有测试获得了一个成绩分数。在 archlinux 上属于包glmark2AUR

Unigine benchmark

Unigine 3D 引擎是一个更全面的基准测试工具。 截止目前有五个版本,从旧到新分别是

  • sanctuary(2007)
  • tropics(2008)
  • heaven(2009)
  • valley(2013)
  • superposition(2017)

可从AUR下载全部版本。它们均为专有软件。

显卡信息查看

对于英伟达显卡,nvidia-settings 这个包即可全面的展示显卡相关信息。

对于 AMD 显卡,稍微麻烦一些,通过 yay 安装 radeon-profile-git 这个包,同时安装其依赖 radeon-profile-daemon,最后启动这个进程。即可以图形化的方式查看 amd 显卡信息。github 项目地址

sudo systemctl enable --now radeon-profile-daemon.service

注意,不要对左下角的 auto low high 进行更改 有 bug 会卡死。同时,显存占用在某些型号显卡上展示可能有误。

后续

如果作为一个普通使用者,到这里你的系统已经配置完毕了。不会命令行也没太大关系,你可以慢慢探索 KDE 这个桌面环境,记住时常用如下命令或 Discover 软件更新系统即可。

sudo pacman -Syyu #更新官方仓库
yay -Syyu #同时更新官方仓库与AUR

接下来你可以查阅娱乐、办公、多媒体等章节了解更多使用软件的安装与使用。如果你需要成为一名较为专业的人员,那么请阅读进阶、以及编程等章节。