使用bumblebee和bbswitch虽然能够把独显从小黑屋拖出来偶尔用用,但是更新337.19驱动后发现每次开机GT550M都是工作状态。经检查发现是因为开机的时候在bbswitch加载前检查到设备然后自动加载了nvidia模块和nvidia_uvm。原本在rc.local中加入移除模块的命令,后来发现移除模块后还是会因为其他程序检查硬件后自动加载它们2个,所以不能单单移除模块而是要禁用。
因为nvidia_uvm依赖于nvidia,bbswitch关闭的时候会因为nvidia模块未移除而无法关闭,而nvidia又因为nvidia_uvm而无法移除,所以关键是禁用nvidia_uvm。因为nvidia_uvm比较顽固,所以就只能强制它载入失败。然后重新生产initramfs。
/etc/modprobe.d/blacklist.conf
blacklist nvidia_uvm blacklist nvidia install nvidia_uvm /bin/false
这样做后还需要/proc/acpi/bbswitch变成OFF,让bumblebee和bbswitch接管独显控制权,不然过会加载了nvidia,bbswitch就失效了。我是在rc.local里面加入"echo OFF > /proc/acpi/bbswitch" ,rc-local的WantedBy=multi-user.target。
Y470开机后lspci就可以看到GT550M状态ff。