SDB:NVIDIA SUSE Prime
目录
简介
SUSE Prime 提供了在 Intel 显卡和 NVIDIA 显卡之间切换的工具,它适用于启用了Optimus 技术的笔记本电脑。与 Bumblebee 不同的是,使用 SUSE Prime 可以完全发挥 NVIDIA 显卡的性能。
在SUSE Prime设置下,所有应用程序都在 Intel 显卡或 NVIDIA 显卡上渲染。你可以使用一个 prime-select 工具在它们之间切换。要使这一变更生效,需要注销并重新登录系统。
适用范围
你有 Optimus 笔记本电脑,并希望能够在 NVIDIA 和 Intel GPU 之间进行切换。
- 要查看您的电脑是否是Optimus电脑,参见:Bumblebee:如何判断我的笔记本是不是双显卡?
安装过程
- 请参考 SDB:NVIDIA_驱动 安装 NVIDIA 驱动。
- 首先删除 /etc/X11/xorg.conf 文件。然后查看所有位于 /etc/X11/xorg.conf.d 下的文件,确保其中不包含任何关于 ServerLayout、Device 和 Screen 的配置文件(全新安装无需清理这些文件)。
- 安装 suse-prime 和 bbswitch-kmp-default:
sudo zypper install suse-prime bbswitch-kmp-default
使用
要在 Intel 显卡和 NVIDIA 显卡之间转换,可以运行:
sudo prime-select nvidia
或者
sudo prime-select intel
然后注销并重新登录以应用显卡变更。
请注意:如果你有一台 Optimus 笔记本电脑,还需要额外的步骤来确保 nvidia 显卡的电源关闭。需要安装一个 systemd 服务。
详见: https://github.com/openSUSE/SUSEPrime
要查看当前使用的显卡,请运行:
sudo prime-select get-current
验证
要验证正在使用哪个 GPU,您可以比较以下命令的输出:
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 脚本会编辑两个系统文件。
- 将 X 服务器的 GLX 扩展在原始和 NVIDIA 实现之间进行切换。
- 将 /etc/prime/xorg-nvidia.conf 或 /etc/prime/xorg-intel.conf 复制到/etc/X11/xorg.conf.d 目录。
当选择Intel选项时,X服务器被配置为完全忽略 NVIDIA 卡。英伟达(NVIDIA)驱动程序会让它保持睡眠状态。
当选择 NVIDIA 选项时,X服务器将同时使用两块卡-- NVIDIA 用于渲染,Intel 作为输出提供者。输出提供者的配置是由X服务器在启动时自动完成的。
自定义配置
如果你需要改变X配置中的 "屏幕"、"设备" 或 "服务器布局" 部分,请在 /etc/prime/xorg-nvidia.conf 或 /etc/prime/xorg-intel.conf 文件中进行修改。
其他部分(例如输入设备配置)可以在 /etc/X11/xorg.conf.d 目录下的文件中完成。
常见问题
Xorg/Wayland
可能是因为您运行在 Wayland 而不是 Xorg 下,注销后在登录界面选择 “Gnome on Xorg” 即可(其他桌面环境同理)。
如果 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
重启你的电脑。
画面撕裂
出现此种情况,你必须打开 “PRIME同步” 功能:
- 创建文件
sudo echo "options nvidia_drm modeset=1 " > /etc/modprobe.d/nvidia-drm-nomodeset.conf
- 执行代码:
sudo dracut -f
重启
安装程序在 optimus 笔记本电脑上卡死
1. 用 openSUSE Tumbleweed live USB/DVD 启动笔记本电脑。
2.1 如果你使用 UEFI 安装,向下移动选择 "installation" ,按 "e" 键编辑名为 "installation" 的 grub 条目。找到以 "linuxefi /boot/vmlinuzxxx" 开头的一行,移到 "splash=silent" 之后,添加以下内容(不带括号)"nomodeset" 。按 F10 键启动。注意,安装程序将不再挂起。
2.2 如果你使用传统 BIOS 启动安装,向下移动选择 "installation",按 "F5",向下移动选择 "nomodeset" ,按回车确认。注意 "F5 Kernel" 下面现在显示 "nomodeset"。按回车键,开始安装。注意,安装程序不再挂起。
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.org/SDB:NVIDIA_drivers
9. 按照官方文件继续进行SUSE-PRIME的安装和测试:https://en.opensuse.org/SDB:NVIDIA_SUSE_Prime
10. 重启系统。