肥廉 肥廉
关注数: 0 粉丝数: 29 发帖数: 624 关注贴吧数: 27
ubuntu18双显卡电脑手动完全关闭N卡 背景和问题 自ubuntu 18.04以后,N卡的切换工具prime-select不再使用bbswitch,开始以update-initramfs方式进行显卡切换。不得不说,这种切换方式又慢还需要重启才能生效。更糟心的是,在集显模式下无法完全关闭N卡,造成严重的发热和续航问题。 经过开发人员努力,在10月的nvidia版本,不再使用修改该方法进行切换显卡,而是通过runtime pm在集显模式下关闭N卡。 具体情况可见 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fbugs.launchpad.net%2Fubuntu%2F%2Bsource%2Fnvidia-prime%2F%2Bbug%2F1778011&urlrefer=39a62d2bd8198b162704583c73a36dc3 但是,经过测试,在集显模式下,N卡仍然没被完全关闭,可能是linux内核的bug。可见 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fdevtalk.nvidia.com%2Fdefault%2Ftopic%2F1032482%2Flinux%2Foptimus-on-ubuntu-18-04-is-a-step-backwards-but-i-found-the-first-good-solution%2F7&urlrefer=5e9dfd8370a56ee21acb17ab76d80835 的第100楼。 解决方法 那么,目前的情况下,我的方法是通过bbswitch手动关闭N卡,解决发热和续航问题。 首先,你要安装 bbswitch-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 第六,我们验证一下是否成功,lspci | 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"。或者,你可以将这句命令写成服务或脚本,来更快地手动执行。
ubuntu18双显卡电脑手动完全关闭N卡 背景和问题: 自ubuntu 18.04以后,N卡的切换工具prime-select不再使用bbswitch,开始以update-initramfs方式进行显卡切换。不得不说,这种切换方式又慢还需要重启才能生效。更糟心的是,在集显模式下无法完全关闭N卡,造成严重的发热和续航问题。 经过开发人员努力,在10月的nvidia版本,不再使用修改启动参数方法进行切换显卡,而是在通过runtime pm来在集显模式下关闭N卡。 具体情况可见 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fbugs.launchpad.net%2Fubuntu%2F%2Bsource%2Fnvidia-prime%2F%2Bbug%2F1778011&urlrefer=39a62d2bd8198b162704583c73a36dc3 但是,经过我的测试,在集显模式下,N卡仍然没被完全关闭。可见 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fdevtalk.nvidia.com%2Fdefault%2Ftopic%2F1032482%2Flinux%2Foptimus-on-ubuntu-18-04-is-a-step-backwards-but-i-found-the-first-good-solution%2F7&urlrefer=5e9dfd8370a56ee21acb17ab76d80835 的第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 第六,我们验证一下是否成功,lspci | 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"。或者,你可以将这句命令写成服务或脚本,来更快地手动执行。
1 下一页