ubuntu18双显卡电脑手动完全关闭N卡
linux游戏吧
全部回复
仅看楼主
level 11
肥廉 楼主
背景和问题:
自ubuntu 18.04以后,N卡的切换工具prime-select不再使用bbswitch,开始以update-initramfs方式进行显卡切换。不得不说,这种切换方式又慢还需要重启才能生效。更糟心的是,在集显模式下无法完全关闭N卡,造成严重的发热和续航问题。
经过开发人员努力,在10月的nvidia版本,不再使用修改启动参数方法进行切换显卡,而是在通过runtime pm来在集显模式下关闭N卡。
具体情况可见 https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1778011
但是,经过我的测试,在集显模式下,N卡仍然没被完全关闭。可见 https://devtalk.nvidia.com/default/topic/1032482/linux/optimus-on-ubuntu-18-04-is-a-step-backwards-but-i-found-the-first-good-solution/7 的第100楼。
解决方法:
那么,目前的情况下,我的方法是通过bbswitch手动关闭N卡,解决发热和续航问题。
首先,你要安**bswitch-dkms: sudo apt install bbswitch-dkms
第二,你需要切换到集显模式: sudo prime-select intel ,然后注销或重启。
第三,切换到集显模式后,通过tail /var/log/gpu-manager-switch.log ,可以看到最后一行有类似 Setting power control to "auto" in /sys/bus/pci/devices/0000:01:00.0/power/control 这样的输出。其中0000:01:00代表独显的PCI地址。
第四,根据上面的输出,我们先反向操作,先手动开启独显。sudo sh -c "echo on > /sys/bus/pci/devices/0000:01:00.0/power/control" ,其中000:01:00.0这个值要根据前面的输出来。
第五,用bbswitch来关闭独显,sudo modprobe bbswitch load_state=0 unload_state=1
第六,我们验证一下是否成功,
lsp
ci | grep VGA,我们看到N卡后面是rev ff,表示N卡被完全关闭了。
扩展:
你可以将第四和第五缩写成一句 sudo sh -c "echo on >/sys/bus/pci/devices/0000:01:00.0/power/control; modprobe bbswitch load_state=0 unload_state=1"。或者,你可以将这句命令写成服务或脚本,来更快地手动执行。
2018年12月05日 15点12分 1
level 2
nice!不过我是4790K加gtx750和ati hd4550两个独显,系统显示三个显卡,如何关闭集成显卡和n卡?
2018年12月09日 12点12分 2
[喷]三卡交火?
2018年12月09日 18点12分
1