Arch Linux 启用独显直连(NVIDIA)(更新于2026.03.27)

1273 字
6 分钟
Arch Linux 启用独显直连(NVIDIA)(更新于2026.03.27)
2025-01-01

前言#

Important

这篇博客很多文字是照搬那个参考链接的,感觉即使我自己手打文稿也觉得和原文讲的差不多,就懒得想了直接Ctrl+C Ctrl+V了。

本博客参考网页:点我1 点我2

有一次周末,我在安装好的Arch Linux系统和NVIDIA驱动之后玩MC,发现帧数撑死只有100多,查看nvidia-smi发现能正常使用命令行,但是游戏画面还是卡的很严重,于是我开始排查问题。(如图,MC打开F3界面发现视频驱动使用的是Intel核显)

Minecraft Java F3 显示界面
Minecraft Java F3 显示界面

解决方法#

上篇文章我介绍了安装NVIDIA驱动,没看过的先点这里

1. 配置 X11 下的 Nvidia 显卡优先#

可以通过配置/etc/X11/xorg.conf实现 Nvidia 独显输出。幸运的是,Nvidia 提供了自动生成配置文件的工具,用户无需手动编写:

Terminal window
sudo nvidia-xconfig --prime

该命令会根据硬件情况自动生成配置文件。执行后重新登录会话即可生效(即使是 Wayland 用户也可以执行一次此命令)。

X11 Nvidia 配置
X11 Nvidia 配置

2. 配置 Wayland 下的 Nvidia 显卡优先#

在 Wayland 下优先启用 Nvidia 显卡的步骤如下:

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

3. Intel + Nvidia 混合显卡方案#

如果不希望全局启用独显,可以选择让大部分程序默认使用核显,而少数高性能需求的程序使用独显。这种方法能有效节省功耗,同时将独显资源集中分配给需要的程序(如 Steam 游戏、Blender 等)。缺点是每个程序需要手动配置启动项。

配置步骤#

  1. 打开程序的.desktop启动文件: 位置可能在/usr/share/applications~/.local/share/applications中。
  2. Exec=后添加prime-run参数。例如:
    XXX.desktop
    Exec=prime-run <程序启动命令>
  3. Vim 快捷配置 如果使用 Vim,可以使用以下快捷键快速批量替换Exec=Exec=prime-run
    v -> G -> :s/Exec=/Exec=prime-run /g Enter -> :wq Enter

4. 安装切换工具(不建议)#

Caution

此方法已过时,请忽略

网上的大多数博客仅仅是在hybrid模式下仅使用独显允许所有进程,并非真正的独显直连。这种配置下独立显卡绘制完成后,会将framebuffer交由集成显卡然后输出至显示器,不仅延迟更高,性能也会受到总线带宽的限制。

system76Pop!_OS是为数不多的自带独显驱动和管理器的发行版,并且system76编写了一个优秀的电源管理器system76-power用于控制电源配置和显卡模式。根据我的使用经验,我更倾向于使用system76-power而不是optimus-manager或其他管理器。并且optimus-manager只能在混合模式下使用独显,而不是真正的独显直连。

对于Arch Linux用户,system76-power已经包含在aur中,软件包名为system76-power。该工具由Rust编写,并依赖多个crates

使用yay安装:

Terminal window
yay -S system76-power

启用system76-power守护服务#

Terminal window
sudo systemctl enable com.system76.PowerDaemon.service
sudo systemctl start com.system76.PowerDaemon.service

切换到独显渲染#

Terminal window
sudo system76-power graphics nvidia

此时仍然不是独显直连状态,仅仅是只使用nvidia显卡渲染。

允许Nvidia-drm作为默认渲染源#

Caution

目前独显直连通过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-0
xrandr --auto

GNOME#

/usr/share/gdm/greeter/autostart/optimus.desktop/etc/xdg/autostart/optimus.desktop中添加以下相同的内容:

[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer

不使用DM#

如果不使用DM,在~/.xinitrc中添加以下内容:

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

LightDM#

参考Arch Wiki

重启#

重新启动后,应该能够进入DM和桌面。在终端中执行nvidia-smi,应该能够发现所有的GUI进程都由Nvidia显卡渲染,并且Xorg占用数百兆内存。

pAzziIx.png
pAzziIx.png

效果#

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

pAzzVzD.jpg
pAzzVzD.jpg

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Arch Linux 启用独显直连(NVIDIA)(更新于2026.03.27)
https://blog.lingxi9374.top/posts/教程/arch-nvidia/
作者
泠熙_LingXi_
发布于
2025-01-01
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-01-01,距今已过 459 天

部分内容可能已过时

评论区

Profile Image of the Author
泠熙_LingXi_
一个普通的 Bilibili UP主
公告
本Blog于2026年从Fuwari迁移至更稳定的Firefly模板,让我们恭喜泠熙_LingXi_的博客得到大翻新! 原Blog评论经某群群u指点也已成功迁移! 3/23更新: 本Blog启用新域名: blog.lingxi9374.top,欢迎造访!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
10
分类
4
标签
7
总字数
33,804
运行时长
0
最后活动
0 天前

目录