如何强制所有应用程序在使用开源驱动程序的独立 GPU 上运行/永久启用独立 GPU?

如何强制所有应用程序在使用开源驱动程序的独立 GPU 上运行/永久启用独立 GPU?

系统:KDE Neon 18.04,4.18内核

集成:英特尔高清

独立显卡:Nvidia 965M

驱动程序:nouveau

我已经让它与 Nvidia 的专有驱动程序兼容,但我正在尝试 Wayland 并希望继续使用它。问题是 Nvidia 的专有源代码意味着 Wayland 无法开发无缝集成 Nvidia 驱动程序的方法。我真的很想摆脱 xorg 和 Nvidia 软件的使用,因为它们一直很麻烦。

我可以使用独立 GPU 来运行 X.org,但只能(大多数时候)使用集成 GPU 来运行 Wayland。我说大多数时候是因为我实际上还没有看到它切换到使用独立 GPU 和桌面管理器,但当强制所有东西都使用独立 GPU 运行时,我节省的 RAM/性能提升非常明显。我知道大量渲染 3D 图形效果的应用程序可以关闭,但由于 Intel HD Graphics 决定使用更多 RAM,因此无法很好地完成这项工作。我想强制在独立 GPU 上运行的主要应用程序是浏览器和 GUI shell。

我按照列出的顺序尝试过:

清除了 nvidia 的所有东西

重新安装所有与 nouveau 相关的软件包,以防与升级内核有关

nvidia-prime自行安装并使用命令prime-select nvidia

看看我的系统是否知道我的离散switcheroo-control;真的不确定如果没有任何 BIOS 设置帮助的话这会有什么作用。

部分输出gdbus introspect --system --dest net.hadess.SwitcherooControl --object-path

interface net.hadess.SwitcherooControl {
    methods:
    signals:
    properties:
      readonly b HasDualGpu = true;

删除nouveau.modeset=0并替换为nvidia-drm.modeset=1。我以前使用前者来允许自己启动登录而不会挂起系统,后者是来自的建议这里

该指南中我还没有尝试过的是sudo ubuntu-drivers autoinstall,我现在要尝试一下。由于它安装的所有软件包,我一直犹豫不决是否要尝试它。

libbsd0:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386
  libdrm2:i386 libedit2:i386 libelf1:i386 libexpat1:i386 libffi6:i386 libgl1:i386 libgl1-mesa-dri:i386
  libglapi-mesa:i386 libglvnd0:i386 libglx-mesa0:i386 libglx0:i386 libllvm7:i386 libnvidia-cfg1-390
  libnvidia-common-390 libnvidia-compute-390 libnvidia-compute-390:i386 libnvidia-decode-390
  libnvidia-decode-390:i386 libnvidia-encode-390 libnvidia-encode-390:i386 libnvidia-fbc1-390
  libnvidia-fbc1-390:i386 libnvidia-gl-390 libnvidia-gl-390:i386 libnvidia-ifr1-390
  libnvidia-ifr1-390:i386 libpciaccess0:i386 libsensors4:i386 libstdc++6:i386 libwayland-client0:i386
  libwayland-server0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386
  libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb1:i386
  libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxnvctrl0 libxshmfence1:i386
  libxxf86vm1:i386 nvidia-compute-utils-390 nvidia-dkms-390 nvidia-driver-390 nvidia-kernel-common-390
  nvidia-kernel-source-390 nvidia-settings nvidia-utils-390 screen-resolution-extra
  xserver-xorg-video-nvidia-390

我现在已经重新启动进入 Wayland。我的 3D 处理器需要 Nvidia,但使用的主要 GPU 仍然是 Intel。nvidia-smi打印出 30MB 正在用于/usr/lib/xorg/Xorg。我已经输入nvidia-smi -pm 1并将重新启动进行测试。我认为这不会有帮助。如果有用,我会重新编辑,但我将把它搁置,直到有更多经验的人可以提供帮助。通常我会使用nvidia-settings来强制离散,但它输出ERROR: Unable to find display on any available system

编辑:我的系统在重启时挂起后,我重新订阅了。登录常规 shell,检查 GPU RAM 使用情况nvidia-smi,发现多个进程使用 GPU 渲染,而不仅仅是 1 个。我能够使用nvidia-settings并仔细检查 Nvidia/performance 是否被选为首选模式。我切换到 Wayland 的众多原因之一是,有一天我无法扩展显示器。我的第二台显示器始终是重复的……仍然没有修复,现在我的面板都丢失了。

注销后重新登录 Wayland 会话,nvidia-smi只显示 Xorg 是通过 Nvidia GPU 渲染的进程。我真的真的需要使用虚拟操作系统来测试这类东西。

答案1

我对 Ubuntu 和 GNU/Linux 还很陌生,这是我在这里的第一个回答,所以请谨慎对待并原谅这种说法。我不确定 Nvidia GPU 是否使用 Prime,但如果它确实使用 Prime,那么我的观点是:

bashBedlam 的回答帮助我在独立 AMD gpu 上运行所有内容:如何配置应用程序以始终在 DRI_PRIME=1 的情况下运行?除了终端之外还有其他方法吗?

“(...)将您的分配 DRI_PRIME=1 插入到 /etc/environment 然后重新启动就可以了(...)”

外观: /etc/环境/ 这是一个只读文件。因此您需要以 root 身份使用 gedit 进行更改。

首先,在终端中使用此命令转到目录:

光盘/等

然后:

sudo gedit 环境

现在您可以在里面注入 DRI_PRIME=1 命令。

如果我没理解错的话,这就是你想要做的,除非你的系统有 Nvidia。

相关内容