Y470卸载bbswitch临时补丁acpi-handle-hack方法
Kaijia之前一直使用的是acpi_call的方法处理Y470的双显卡问题,但自从Bumblebee的PPA中移除了acpi_call包后,Kaijia也切换为了bbswitch(呵呵反编译党)。但是也不知是Linux内核的问题还是联想工程师的疏忽(或者是研发小Y系列时完全没考虑过会不会被Linus Torvalds竖中指的节奏),Y470/Y570系列电脑存在一个Bug导致Linux无法正确识别N卡的ACPI,从而导致了Bumblebee的bbswitch功能无法正常运行。
一开始Kaijia也没有头绪,后来找到了bbswitch的维护者为Y470专门提供的一个临时解决方案:安装一个非常简陋的临时解决方案acpi-handle-hack,直到Linux内核开发者修复此问题。这个漏洞一直到Linux 3.9才得到修复,而Kaijia的Ubuntu 12.04运行Linux 3.2内核,所以Kaijia安装了acpi-handle-hack后一直将就用着。
随着Ubuntu 12.04.4的发布,Ubuntu 12.04的指导内核版本提升为Linux 3.10(Saucy),显卡问题在此版本的内核前已经得到了修复,因此是时候卸载这个简陋的解决方案了。
acpi-handle-hack通过DKMS(动态内核模块支持)安装,因此可以直接通过DKMS卸载。首先可以运行:
1 |
sudo dkms status |
查看当前DKMS模块的活动状态,可以看到类似
~$ sudo dkms status
acpi-handle-hack, 0.0.2, 3.2.0-58-generic, x86_64: installed
bbswitch, 0.8, 3.2.0-58-generic, x86_64: installed
的结果,说明acpi-handle-hack已经安装并且正在运行。关闭acpi-handle-hack需要使用Root权限编辑/etc/modules文件并且去掉acpi-handle-hack一行,保存更改后运行:
1 2 |
sudo dkms uninstall -m acpi-handle-hack -v 0.0.2 sudo update-initramfs -u |
卸载这个简陋的临时补丁模块,重启后再次运行sudo dkms status
~$ sudo dkms status
acpi-handle-hack, 0.0.2, 3.2.0-58-generic, x86_64: built
bbswitch, 0.8, 3.2.0-58-generic, x86_64: installed
可以看到acpi-handle-hack的状态由原来的installed变成了built,说明acpi-handle-hack已经停用,如果要彻底从DKMS中移除可以运行命令
1 2 |
sudo dkms remove acpi-handle-hack/0.0.2 -k 3.2.0-58-generic sudo update-initramfs -u |
这样acpi-handle-hack就已经移除了。当然内核升级需要注意的内容还有很多,升级后bbswitch可能需要重新安装才能正常使用。
评论