Linux到独立显卡分开源驱动和闭源驱动两种,开源驱动不能完全发挥独立显卡到性能,闭源驱动使用bumblebee 的 optirun 的兼容性不好。而 optimus-manager 可以设置开机默认使用 Intel 还是 Nvidia ,可以随时在这两者之间切换。
安装依赖
1
| sudo pacman -S virtualgl lib32-virtualgl lib32-primus primus
|
安装闭源bumblebee版驱动
1 2
| sudo mhwd -f -i pci video-hybrid-intel-nvidia-bumblebee
|
讲用户加入到bumblee组
1
| sudo gpasswd -a $USER bumblebee
|
设置bumblebeed开机自启
1
| sudo systemctl enable bumblebeed
|
很多硬件厂商的BIOS驱动对Linux不友好,无法顺利加载ACPI模块,从而导致无法驱动独立显卡,这就需要修改grub启动文件使ACPI模块能正常工作
1 2 3 4 5 6 7
| sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=! acpi_osi=’Windows 2009’ resume=UUID=2d6d6716-4886-49ff-a277-55ba5d9f19d8"
|
更新grub文件,使永久有效
1 2 3 4
| sudo update-grub
reboot
|
性能测试
1 2 3
| sudo pacman -S mesa-demos sudo pacman -S glmark2
|
测试集显性能
1 2 3 4 5 6
| glxgears glmark2
optirun glxgears optirun glmark2
|
NVIDIA setting面板打不开使用以下命令
1
| optirun -b none nvidia-settings -c :8
|
使用optimus-manager管理显卡
optimus-manager仓库
1
| sudo pacman -S optimus-manager
|
配置
确保 /etc/X11/xorg.conf 和 /etc/X11/xorg.conf.d 下没有其他显卡和显示相关的配置,如果有的话可以备份后删掉,原因是 optimus-manager 会生成显卡配置文件 /etc/X11/xorg.conf.d/10-optimus-manager.conf,多个显卡配置文件可能导致出错
目录结构如下
1 2 3 4 5 6 7 8 9
| tree /etc/X11/
/etc/X11/ ├── xinit │ └── xinitrc.d │ ├── 40-libcanberra-gtk-module.sh │ └── 50-systemd-user.sh └── xorg.conf.d └── 10-optimus-manager.conf
|
关闭 bumblebeed
1 2
| sudo systemctl stop bumblebeed sudo systemctl disable bumblebeed
|
启动optimus-manager服务
1
| sudo systemctl enable optimus-manager
|
重启
使用
1 2 3 4 5 6 7 8
| # 切换到nvidia optimus-manager --switch nvidia
# 切换到Intel optimus-manager --switch intel
# 设置开机使用intel optimus-manager --set-startup=intel
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| optimus-manager [参数]
-h,--help 显示此帮助消息并退出 -v,--version 打印版本并退出 --status 打印optimus-manager的当前状态 --print-mode 打印当前桌面会话正在运行的GPU模式 --print-next-mode 打印下次登录会话时将使用的GPU模式 --print-startup 打印将在启动时使用的GPU模式 --switch MODE 将GPU模式设置为MODE。需要注销然后登录以应用更改。可选模式:intel,nvidia,hybrid,auto(自动检测您可能想要切换到的模式) --set-startup STARTUP_MODE 将启动模式设置为STARTUP_MODE。可选模式:intel,nvidia,hybrid --temp-config PATH设置临时配置文件的路径,仅用于下次重新引导。对于测试电源开关配置而不会导致无法启动的安装很有用 --no-confirm 切换GPU时不要求确认并跳过所有警告 --cleanup 删除守护程序剩余的自动生成的配置文件
|
intel模式为省电模式,nvidia模式为游戏模式
使用图形界面配置
通过optimus-manager-qt或gnome-sell扩展optimus-manager-argos来使用图形化前端来进行切换
图形化配置通过生成/etc/share/optimus-manager.conf文件并添加内容实现配置的,如果已经有该文件会直接覆盖修改
配置文件详解
optimus-manager的配置文件:/usr/share/optimus-manager.conf
如需自定义配置,将该文件复制一份到/etc/optimus-manager/目录下进行修改即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| [optimus]
# 此参数定义接通Nvidia卡电源的方法 # 可能的值: # -nouveau:将nouveau模块加载到Nvidia卡上 # -bbswitch:使用bbswitch模块关闭卡的电源(需要bbswitch依赖项) # -acpi_call:尝试各种ACPI方法调用来打开和关闭卡的电源(需要acpi_call依赖项) # -none:请勿将外部模块用于电源管理。对于某些笔记本电脑型号,最好将此选项与pci_power_control结合使用(请参见下文)。设置该选项后,您还可以使用脚本nvidia-enable.sh和nvidia-disable.sh执行自定义命令以进行电源管理
switching=bbswitch
# 在Intel模式下启用PCI电源管理。此选项与acpi_call和bbswitch不兼容,因此在这些情况下将被忽略
pci_power_control=yes
# 从PCI总线上卸下Nvidia卡。可以防止电源开关引起的死机。如果switching = nouveau或switching = bbswitch则被忽略
pci_remove=no
# 在重新加载nvidia模块之前,请在PCI级别上重置Nvidia卡。在重新加载nvidia模块之前,请确保卡处于新状态。可能会解决一些切换问题 # 可能的值: # -no:不执行任何重置 # -function_level:执行轻度的“功能级别”重置 # -hot_reset:对PCI桥接器执行“热重置”。注意:此方法直接与硬件混淆,使用前请阅读optimus-manager的在线文档。另外,即使pci_remove=no,也会执行PCI移除操作
pci_reset=no
# 切换GPU时自动注销当前的桌面会话。当前,以下DE / WM支持此功能:KDE Plasma,GNOME,XFCE,Deepin,i3,Openbox,AwesomeWM,bspwm如果禁用此选项或使用其他桌面环境,则GPU切换仅在下一个图形显示时有效会话登录
auto_logout =yes
[intel]
# 用于Intel GPU的驱动程序。 # 可能的值:modesetting,intel # 要使用intel驱动程序,需要安装软件包“ xf86-video-intel”
driver=modesetting
# 加速方法(对应于Xorg配置中的AccelMethod)。仅适用于intel驱动程序 # 可能的值:sna,xna # 默认值(未指定任何选项) accel=
# 在Xorg配置中启用TearFree选项,仅适用于intel驱动程序 # 可能的值:yes,no # 保留默认值(未指定任何选项) tearfree=
|
参考:
使用 optimus-manager 来管理显卡切换
Optimus-Manager的
README
Wiki
电源管理选项指南
常见问题,常见问题,故障排除