在 Arch Linux 上使用 NVIDIA 显卡时,闭源驱动(nvidia)通常能提供最佳性能和兼容性,尤其适合游戏、AI 计算和图形工作站等场景。本文将介绍驱动的安装、配置和常见问题解决方案,帮助你在 Arch Linux 上高效使用 NVIDIA 显卡。

适用读者

使用 NVIDIA 显卡的 Arch Linux 用户

需要官方驱动支持 CUDA、Optimus 或最新图形技术的用户

追求稳定性和性能的玩家或开发者

特点

 ✔ 自动适配最新内核(或 DKMS 支持)

 ✔ 完整 Vulkan、OpenGL 和 CUDA 支持 

✔ 针对笔记本双显卡(Optimus)的优化方案

接下来,我们将从驱动安装开始逐步展开。

1. 驱动选择

首先需要确认使用的是那一系列显卡,可根据 https://nouveau.freedesktop.org/CodeNames.html 地址查询自己的显卡对应的 GPU家族

https://wiki.archlinux.org/title/NVIDIA

如果以上驱动安装后都不能正常工作,您也许需要使用 nvidia-open-betaAUR 以获得更新版本的驱动。

在安装了 Intel CPU 11 代或更新版本的处理器以及Linux 5.18 (或更高版本)的系统上可能无法正常工作,原因是与其与 Indirect Branch Tracking 这个安全功能不兼容。您可以在 Arch_的启动流程中设置 ibt=off 内核参数来禁用它。请注意,这项安全功能负责缓解一些攻击技术的影响

Nvidia不再积极为这些显卡提供驱动。这意味着这些驱动不正式支持现在的Xorg版本。因此使用 Nouveau 驱动可能会更方便,因为它依然为这些老显卡提供对当前Xorg的支持。但是,Nvidia 提供的 legacy 驱动依旧可用,并且或许拥有更好的 3D 性能(稳定性)。

对于 32 位应用程序支持,请安装 multilib 仓库中对应的 lib32 nvidia 软件包(例如 lib32-nvidia-utils包)。

 

开始前的基础配置(配置AUR包管理工具,配置ArchLinuxCN源,确认桌面环境使用)

桌面环境确认(Wayland 与 X11)

1. X11(X Window System)

诞生时间:1984 年(历史悠久,广泛兼容)

架构:客户端-服务器模型(X Client ↔ X Server),支持网络透明性(远程图形渲染)。

特点

成熟稳定,兼容几乎所有 Linux 软件。

支持多窗口管理器和自定义配置(如 .Xresources)。

缺点

性能较低(额外的协议开销)。

安全性较弱(应用程序可监听输入事件)。

屏幕撕裂、延迟等问题较常见(依赖 compton/picom 等合成器修复)。

2. Wayland

诞生时间:2008 年(现代设计,逐步取代 X11)

架构:直接通信(应用 ↔ 显示服务器),简化流程,减少中间层。

特点

更轻量、高效,减少图形渲染延迟。

原生支持 VSync、高DPI 和触摸手势。

安全性更强(应用无法窃取键盘/鼠标输入)。

缺点

兼容性较差(部分 X11 应用需通过 XWayland 运行)。

NVIDIA 驱动支持较晚(需额外配置)。

3. 如何选择?

场景推荐协议原因
老旧硬件或专业软件X11兼容性最广
游戏或高刷新率需求Wayland低延迟,更好的帧同步
NVIDIA 显卡用户X11(或手动配置 Wayland)官方 Wayland 支持仍有限
触摸屏/4K 屏幕Wayland原生高DPI 和手势支持

4. 在 Arch Linux 上切换

检查当前会话

echo $XDG_SESSION_TYPE

Wayland 登录:选择 GNOME (Wayland)、KDE Plasma (Wayland) 等会话。

强制使用 X11:在登录管理器中选择带 X11 的选项,或添加 --server-args="-nolisten tcp"startx

个人使用感受:

因为KDE Plasma 6 大版本的更新,基础框架更新到了Qt 6,默认图形环境也变为了Wayland,所以我目前已从X11环境彻底全部迁移到了Wayland(碰到了一些奇怪的BUG但是整体体验和X11无差,并且随着滚动升级,BUG基本没在碰到过了,反之X11确越来越多问题了)。

X11环境我也使用了近几年了,说实话无太多感觉,不出BUG的环境就是好环境,但是自从ArchLinux与KDE Plasma 6 的更新后,X11下因为配置了双显卡,导致了我笔记本莫名其妙会卡死,在一番折腾下彻底放弃了X11(因为我的环境巨乱无比)。

配置AUR包管理工具

sudo pacman -S pikaur  #安装pikaur AUR包管理工具,pikaur的用法基本上与pacman一致

配置ArchLinux源

编辑/etc/pacman.conf 文件结尾新添加:

[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

更新同步软件包数据库

sudo pacman -Sy archlinux-keyring
sudo pacman -Sy 

 

2. 驱动安装

根据1. 驱动选择 章节中,确定的显卡型号选定需要安装的包,我的是RTX3060对应的是NV170 family (Ampere) 可根据该WIKI确定为Ada Lovelace (NV190/ADXXX)系列选择:nvidia(适用于linux),nvidia-lts (适用于linux-lts),nvidia-dkms(适用于任意内核) 其中之一即可,当然我这里为了方便直接选择了nvidia-dkms,该包后期无需过多管理,如果你的显卡过于老旧可使用nvidia-open-dkms包,或指定驱动的包文件,利用pikaur直接安装即可

安装驱动

我安装的包,这里的包比较齐全,可以按需安装

pikaur -S egl-gbm egl-wayland egl-x11 libnvidia-container libvdpau libxnvctrl nvidia-container-toolkit nvidia-dkms nvidia-prime nvidia-settings nvidia-utils opencl-nvidia lib32-libvdpau

正常安装如下即可,后面可按需补充安装

sudo pacman -S nvidia-dkms nvidia-prime nvidia-utils nvidia-settings

1. 核心驱动与工具

包名用途
nvidia-dkmsNVIDIA 动态内核模块(DKMS)驱动,支持自定义内核(如 linux-zen)。
nvidia-utilsNVIDIA 用户态工具(如 nvidia-smi、Vulkan/OpenGL 驱动文件)。
opencl-nvidiaNVIDIA 的 OpenCL 支持(用于 GPU 计算,如机器学习、哈希破解等)。
lib32-nvidia-utilsNVIDIA 驱动的 32 位兼容库(运行旧版游戏或软件如 Steam 所需)。

2. 图形接口支持

包名用途
egl-gbm提供 EGL 接口的 GBM(Generic Buffer Management)支持,用于 Wayland 下的显存管理。
egl-waylandNVIDIA 驱动对 Wayland 的 EGL 支持(解决 Wayland 兼容性问题)。
egl-x11NVIDIA 驱动对 X11 的 EGL 支持(传统 X11 环境下的 OpenGL 加速)。
libvdpauVDPAU(视频解码加速接口),支持硬件解码(如 MPV/VLC 播放 4K 视频)。
lib32-libvdpauVDPAU 的 32 位兼容库。

3. 硬件控制与监控

包名用途
libxnvctrlNVIDIA X Control 库(供 nvidia-settings 读取 GPU 传感器数据)。
nvidia-settings图形化工具,调整 GPU 时钟、风扇转速、电源模式等。

4. 容器与虚拟化支持

包名用途
libnvidia-containerNVIDIA 容器运行时依赖库(供 Docker 调用 GPU)。
nvidia-container-toolkit让容器(如 Docker/Podman)支持 NVIDIA GPU(用于 Kubernetes/AI 训练)。

5. 多显卡(Optimus)支持

包名用途
nvidia-primeNVIDIA Optimus 双显卡切换工具(需配合 prime-run 命令使用)。

3. 配置与优化

在目前新版本中的驱动已经完成了默认配置无需其他额外配置,不过笔记本可能需要再进行配置来默认N卡独立显卡运行桌面环境或使用nvidia-prime来用N卡独显的方式启动应用程序

prime-run vulkaninfo # 使用N卡独显的方式运行程序,该方案由NVIDIA 官方提供

完全使用独显运行:

确认自己的桌面环境:

env | grep XDG

在XDG_SESSION_TYPE= 项可看到具体环境

 

X11 下(简单点直接使用optimus-manager即可):

pikaur -S optimus-manager-qt  #AUR源安装optimus-manager-qt包

安装完成后可直接在任务栏切换显卡,重新登陆即可切换成功:

 

Wayland下(安装all-ways-egpu包进行配置即可):

pikaur -S all-ways-egpu  # AUR源安装all-ways-egpu包

这个工具需要额外配置直接命令行运行 all-ways-egpu 命令,按照提示输入数字就好

 

确认显卡运行情况:

sudo nvidia-smi

 

 

4. 疑难杂症

出现黑屏情况,可以尝试修改内核参数:

方法一:

编辑/etc/default/grub文件,在 GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" quiet前添加

nvidia-drm.modeset=1

保存文件后更新grub

sudo update-grub

 

方法二:

编辑/etc/default/grub文件,在 GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" quiet前添加

acpi_osi=! acpi_osi="Windows 2009"

保存文件后更新grub

sudo update-grub

 

卡死无法开机可使用ArchLInux安装盘利用arch-chroot /mnt 挂载安装好的系统进行救援。

注意:需要先通过mount进行硬盘挂载

 

 

5. 参考文章

https://wiki.archlinuxcn.org/wiki/NVIDIA

https://nouveau.freedesktop.org/CodeNames.html

https://wiki.archlinuxcn.org/wiki/NVIDIA_Optimus#

https://github.com/Askannz/optimus-manager

https://forums.linuxmint.com/viewtopic.php?t=352940

 


 

1
1