Arch Linux 启用独显直连(NVIDIA)(更新于2026.03.27)
前言
这篇博客很多文字是照搬那个参考链接的,感觉即使我自己手打文稿也觉得和原文讲的差不多,就懒得想了直接Ctrl+C Ctrl+V了。
有一次周末,我在安装好的Arch Linux系统和NVIDIA驱动之后玩MC,发现帧数撑死只有100多,查看nvidia-smi发现能正常使用命令行,但是游戏画面还是卡的很严重,于是我开始排查问题。(如图,MC打开F3界面发现视频驱动使用的是Intel核显)

解决方法
上篇文章我介绍了安装NVIDIA驱动,没看过的先点这里
1. 配置 X11 下的 Nvidia 显卡优先
可以通过配置/etc/X11/xorg.conf实现 Nvidia 独显输出。幸运的是,Nvidia 提供了自动生成配置文件的工具,用户无需手动编写:
sudo nvidia-xconfig --prime该命令会根据硬件情况自动生成配置文件。执行后重新登录会话即可生效(即使是 Wayland 用户也可以执行一次此命令)。

2. 配置 Wayland 下的 Nvidia 显卡优先
在 Wayland 下优先启用 Nvidia 显卡的步骤如下:
- 编辑 GRUB配置 文件
打开
/etc/default/grub文件,在GRUB_CMDLINE_LINUX_DEFAULT=""中添加nvidia_drm.modeset=1:/etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="nvidia_drm.modeset=1" - 重新生成 grub 配置:
Terminal window sudo grub-mkconfig -o /boot/grub/grub.cfg - 配置
Plasma 环境文件: 在~/.config/plasma-workspace/env/nvidia.sh中写入以下内容:~/.config/plasma-workspace/env/nvidia.sh #!/bin/bashexport __NV_PRIME_RENDER_OFFLOAD=1export __GLX_VENDOR_LIBRARY_NAME=nvidia - 保存并重启电脑,即可生效。

Wayland Nvidia 配置
3. Intel + Nvidia 混合显卡方案
如果不希望全局启用独显,可以选择让大部分程序默认使用核显,而少数高性能需求的程序使用独显。这种方法能有效节省功耗,同时将独显资源集中分配给需要的程序(如 Steam 游戏、Blender 等)。缺点是每个程序需要手动配置启动项。
配置步骤
- 打开程序的
.desktop启动文件: 位置可能在/usr/share/applications或~/.local/share/applications中。 - 在
Exec=后添加prime-run参数。例如:XXX.desktop Exec=prime-run <程序启动命令>
- Vim 快捷配置
如果使用 Vim,可以使用以下快捷键快速批量替换
Exec=为Exec=prime-run:v -> G -> :s/Exec=/Exec=prime-run /g Enter -> :wq Enter
4. 安装切换工具(不建议)
此方法已过时,请忽略
网上的大多数博客仅仅是在hybrid模式下仅使用独显允许所有进程,并非真正的独显直连。这种配置下独立显卡绘制完成后,会将framebuffer交由集成显卡然后输出至显示器,不仅延迟更高,性能也会受到总线带宽的限制。
system76的Pop!_OS是为数不多的自带独显驱动和管理器的发行版,并且system76编写了一个优秀的电源管理器system76-power用于控制电源配置和显卡模式。根据我的使用经验,我更倾向于使用system76-power而不是optimus-manager或其他管理器。并且optimus-manager只能在混合模式下使用独显,而不是真正的独显直连。
对于Arch Linux用户,system76-power已经包含在aur中,软件包名为system76-power。该工具由Rust编写,并依赖多个crates。
使用yay安装:
yay -S system76-power启用system76-power守护服务
sudo systemctl enable com.system76.PowerDaemon.servicesudo systemctl start com.system76.PowerDaemon.service切换到独显渲染
sudo system76-power graphics nvidia此时仍然不是独显直连状态,仅仅是只使用nvidia显卡渲染。
允许Nvidia-drm作为默认渲染源
目前独显直连通过XRandR的--setprovideroutputsource实现,这意味着Wayland目前无法使用独显直连。(未考证)
检查/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf和/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf,其中有一个文件已经存在了类似一下的内容,这意味着它是你要修改的配置文件。
(如果/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf的文件不存在就直接复制一模一样的过去),不影响也不冲突。
Section "OutputClass" Identifier "nvidia" MatchDriver "nvidia-drm" Driver "nvidia" Option "AllowEmptyInitialConfiguration" ModulePath "/usr/lib/nvidia/xorg" ModulePath "/usr/lib/xorg/modules"EndSection在Option "AllowEmptyInitialConfiguration"后添加一行Option "PrimaryGPU" "yes"。
配置显示源自动切换
如果此时重启,在进入DE时应该会导致黑屏。这是由于Xorg将集成显卡作为了输出源而不是独立显卡。我们需要在DE实际启动前将显示源切换成Nvidia显卡。
根据不同的DM,需要进行不同的配置。
SDDM
在/usr/share/sddm/scripts/Xsetup中添加以下内容:
xrandr --setprovideroutputsource modesetting NVIDIA-0xrandr --autoGNOME
在/usr/share/gdm/greeter/autostart/optimus.desktop和/etc/xdg/autostart/optimus.desktop中添加以下相同的内容:
[Desktop Entry]Type=ApplicationName=OptimusExec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"NoDisplay=trueX-GNOME-Autostart-Phase=DisplayServer不使用DM
如果不使用DM,在~/.xinitrc中添加以下内容:
xrandr --setprovideroutputsource modesetting NVIDIA-0xrandr --autoLightDM
重启
重新启动后,应该能够进入DM和桌面。在终端中执行nvidia-smi,应该能够发现所有的GUI进程都由Nvidia显卡渲染,并且Xorg占用数百兆内存。

效果
在进行上文的步骤后,我立刻打开Minecraft,按下F3查看渲染模式,发现已经切换到了Nvidia显卡渲染,游戏画面立刻变得流畅,帧数也上去了。(请选择你的拍屏大师.png)

文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分内容可能已过时