SDB:NVIDIA SUSE Prime
SUSE Prime 是一种用于在 Optimus 笔记本电脑上切换集成 Intel GPU 和 NVIDIA GPU 的工具。它是 Bumblebee 的替代方案。
使用 SUSE Prime 设置后,所有应用程序都将在 Intel 或 NVIDIA 上渲染。您可以使用prime-select工具进行切换。更改生效需要注销并重新登录。
情况
您拥有 Optimus 笔记本电脑,并希望能够切换 NVIDIA 和 Intel GPU。
流程
- 安装 NVIDIA 专有驱动程序:SDB:NVIDIA drivers
- 确保您没有/etc/X11/xorg.conf文件和在/etc/X11/xorg.conf.d目录中包含 "ServerLayout"、"Device" 或 "Screen" 部分的任何配置文件。(干净安装可以满足此要求。)
- 安装suse-prime和bbswitch-kmp-default软件包。
用法
要在 Intel 和 NVIDIA 之间切换,以 root 身份运行
# prime-select boot nvidia
或
# prime-select boot intel
或
# prime-select boot offload
建议使用最新版本,因为它提供了为特定应用程序使用 GPU 的能力(请参阅 卸载)。
然后注销并重新登录以应用更改。
请注意:如果您有 Optimus 笔记本电脑,则需要额外的步骤来确保 Nvidia 显卡已关闭。需要安装一个 systemd 服务。
请参阅 https://github.com/openSUSE/SUSEPrime
验证
要验证正在使用的 GPU,您可以比较以下命令的输出(请记住,如果使用卸载方法,请使用 prime-run)
Intel
# xrandr --listproviders
Providers: number : 1
Provider 0: ... associated providers: 0; name: modesetting
# glxinfo | grep 'OpenGL renderer string'
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
NVIDIA
# xrandr --listproviders
Providers: number : 2
Provider 0: ... associated providers: 1; name: NVIDIA-0
Provider 1: ... associated providers: 1; name: Intel
# glxinfo | grep 'OpenGL renderer string'
OpenGL renderer string: GeForce GT 640M LE/PCIe/SSE2
卸载
使用最新驱动程序,您可以执行以下操作
# prime-select boot offload
这允许在将特定计算和渲染卸载到 NVIDIA GPU 的同时使用集成 GPU。为了定义应卸载到 NVIDIA GPU 的应用程序/命令,您可以使用
prime-run steam
来运行 Steam 或任何其他使用 NVIDIA GPU 的应用程序。
它是如何工作的?
该prime-select脚本会修改系统中的两件事
- 在原始实现和 NVIDIA 实现之间切换 X 服务器的 GLX 扩展。
- 复制/usr/share/prime/xorg-nvidia.conf或/usr/share/prime/xorg-intel.conf到/etc/X11/xorg.conf.d目录。
当选择 Intel 选项时,X 服务器配置为完全忽略 NVIDIA 显卡。NVIDIA 驱动程序将使其保持休眠状态。
当选择 NVIDIA 选项时,X 服务器将使用两张卡 - NVIDIA 用于渲染,Intel 作为输出提供者。输出提供者的配置由 X 服务器在启动时自动完成。
自定义配置
如果您需要更改 X 配置的“Screen”、“Device”或“ServerLayout”部分,请在/usr/share/prime/xorg-nvidia.conf或/usr/share/prime/xorg-intel.conf文件中进行更改。
任何其他部分(例如输入设备配置)都可以在/etc/X11/xorg.conf.d目录。
的故障排除
Xorg/Wayland
如果 Nvidia 驱动程序在登录时未激活(如果您选择它),您可能正在使用 Wayland 协议。要验证您正在使用的 X 服务器
# loginctl
SESSION UID USER SEAT TTY
1 1000 youruser seat0
然后
# loginctl show-session 1 | grep Type
Type=x11
如果是 wayland 而不是 x11,您正在使用 Wayland。
要配置系统以使用 X11
编辑
/etc/gdm/custom.conf
替换
#WaylandEnable=false
为
WaylandEnable=false
重启。
撕裂问题
您可能会遇到激活 Nvidia 后出现一些撕裂问题。要消除此问题,您必须激活“PRIME 同步”。
创建文件
/etc/modprobe.d/nvidia-drm-nomodeset.conf
并插入行
options nvidia_drm modeset=1
然后使用命令
# sudo dracut -f
重启。
安装程序在 Optimus 笔记本电脑上冻结
1. 使用 openSUSE Tumbleweed live USB/DVD 启动笔记本电脑。
2a. 如果您正在使用 UEFI 进行安装,向下移动以选择“installation”,按“e”编辑名为“installation”的 grub 条目。找到以“linuxefi /boot/vmlinuzxxx”开头的行,在“splash=silent”之后移动并添加以下内容(不要带方括号)“nomodeset”。按 F10 启动。请注意,安装程序不再挂起。
2b. 如果您正在使用传统 BIOS 启动进行安装,向下移动以选择“installation”,按“F5”,向下移动以选择“nomodeset”,按 Enter 确认。请注意,在“F5 Kernel”下方,现在显示“nomodeset”。按 Enter 开始安装。请注意,安装程序不再挂起。
3. 安装 openSUSE Tumbleweed。
4. 更新仓库并升级系统
$ "sudo zypper ref && sudo zypper dup".
5. 重启系统。
6. 删除 nomodeset 内核选项。
编辑
/etc/default/grub
找到以
"GRUB_CMDLINE_LINUX_DEFAULT="
删除
nomodeset
7. 更新 grub。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
8. 按照官方文档进行 nvidia 驱动程序安装:https://en.opensuse.net.cn/SDB:NVIDIA_drivers
9. 按照官方文档进行 suse-prime 安装和测试:https://en.opensuse.net.cn/SDB:NVIDIA_SUSE_Prime
10. 重启系统