在 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家族

如果以上驱动安装后都不能正常工作,您也许需要使用 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_TYPEWayland 登录:选择 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-settings1. 核心驱动与工具
| 包名 | 用途 |
|---|---|
| nvidia-dkms | NVIDIA 动态内核模块(DKMS)驱动,支持自定义内核(如 linux-zen)。 |
| nvidia-utils | NVIDIA 用户态工具(如 nvidia-smi、Vulkan/OpenGL 驱动文件)。 |
| opencl-nvidia | NVIDIA 的 OpenCL 支持(用于 GPU 计算,如机器学习、哈希破解等)。 |
| lib32-nvidia-utils | NVIDIA 驱动的 32 位兼容库(运行旧版游戏或软件如 Steam 所需)。 |
2. 图形接口支持
| 包名 | 用途 |
|---|---|
| egl-gbm | 提供 EGL 接口的 GBM(Generic Buffer Management)支持,用于 Wayland 下的显存管理。 |
| egl-wayland | NVIDIA 驱动对 Wayland 的 EGL 支持(解决 Wayland 兼容性问题)。 |
| egl-x11 | NVIDIA 驱动对 X11 的 EGL 支持(传统 X11 环境下的 OpenGL 加速)。 |
| libvdpau | VDPAU(视频解码加速接口),支持硬件解码(如 MPV/VLC 播放 4K 视频)。 |
| lib32-libvdpau | VDPAU 的 32 位兼容库。 |
3. 硬件控制与监控
| 包名 | 用途 |
|---|---|
| libxnvctrl | NVIDIA X Control 库(供 nvidia-settings 读取 GPU 传感器数据)。 |
| nvidia-settings | 图形化工具,调整 GPU 时钟、风扇转速、电源模式等。 |
4. 容器与虚拟化支持
| 包名 | 用途 |
|---|---|
| libnvidia-container | NVIDIA 容器运行时依赖库(供 Docker 调用 GPU)。 |
| nvidia-container-toolkit | 让容器(如 Docker/Podman)支持 NVIDIA GPU(用于 Kubernetes/AI 训练)。 |
5. 多显卡(Optimus)支持
| 包名 | 用途 |
|---|---|
| nvidia-prime | NVIDIA 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
