Linux独立显卡驱动安装
Linux到独立显卡分开源驱动和闭源驱动两种,开源驱动不能完全发挥独立显卡到性能,闭源驱动使用bumblebee
的 optirun
的兼容性不好。而 optimus-manager
可以设置开机默认使用 Intel 还是 Nvidia ,可以随时在这两者之间切换。
安装依赖
sudo pacman -S virtualgl lib32-virtualgl lib32-primus primus
安装闭源bumblebee版驱动
# sudo mhwd -f -i pci video-hybrid-intel-nvidia-bumblebee
sudo mhwd -f -i pci video-hybrid-intel-nvidia-430xx-bumblebee
讲用户加入到bumblee组
sudo gpasswd -a $USER bumblebee
设置bumblebeed开机自启
sudo systemctl enable bumblebeed
很多硬件厂商的BIOS驱动对Linux不友好,无法顺利加载ACPI模块,从而导致无法驱动独立显卡,这就需要修改grub启动文件使ACPI模块能正常工作
sudo vim /etc/default/grub
# 在 GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=! resume=UUID=2d6d6716-4886-49ff-a277-55ba5d9f19d8" 中加入 acpi_osi=’Windows 2009’ 或者 acpi_osi=! acpi_osi=Linux acpi_osi=’Windows 2015’ pcie_port_pm=off
# acpi_osi=’Windows 2009’的意思是告诉ACPI模块,我是‘Windows 7’,模拟Windows让其继续运行
# 如:
GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=! acpi_osi=’Windows 2009’ resume=UUID=2d6d6716-4886-49ff-a277-55ba5d9f19d8"
更新grub文件,使永久有效
sudo update-grub
#重启
reboot
性能测试
# 安装性能测试软件
sudo pacman -S mesa-demos
sudo pacman -S glmark2
测试集显性能
glxgears
glmark2
测试独显性能
optirun glxgears
optirun glmark2
## NVIDIA setting面板打不开使用以下命令
optirun -b none nvidia-settings -c :8
# 使用optimus-manager管理显卡
[optimus-manager仓库](https://github.com/Askannz/optimus-manager)
```bash
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
,多个显卡配置文件可能导致出错
目录结构如下
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
sudo systemctl stop bumblebeed
sudo systemctl disable bumblebeed
启动optimus-manager服务
sudo systemctl enable optimus-manager
重启
使用
# 切换到nvidia
optimus-manager --switch nvidia
# 切换到Intel
optimus-manager --switch intel
# 设置开机使用intel
optimus-manager --set-startup=intel
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/
目录下进行修改即可
[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=
异常处理
更新后黑屏
Manjaro 的仓库版本相较于 Arch 的库晚些,而 AUR 内的包调用的是 Arch 库内的包,这就会产生包版本不对的问题,产生一些错误,这时通过主动升降级可解决。
通过 optimus-manager --status
查看状态,提示报错日志位置,通过报错日志找相应的报错内容。
如:/var/log/optimus-manager/switch/switch-20220330T193127.log
参考:
使用 optimus-manager 来管理显卡切换
Optimus-Manager的
README
Wiki
电源管理选项指南
常见问题,常见问题,故障排除