Closed updateing closed 7 years ago
十分感谢大神的贡献!
我的电脑是 ThinkPad X230 23068CC,原机带蓝牙小板,于是换了单网卡无蓝牙版本的 BCM94352HMB,使用 r2 -w -c 'wa ret' policy.efi 进行破解。网卡是可以用了,但
r2 -w -c 'wa ret' policy.efi
acpi_osi=! acpi_osi=Linux
dmesg
尝试直接删除 LenovoWmaPolicyDxe,结果一样。
后恢复此模块,修改其中一个网卡的 VID、PID和SUBSYS,即可解决上述问题。
我还没有追查问题的能力,不清楚哪里出了问题……不过这一点可以写在文档中,供后来者参考。再次感谢!
补:DSDT 中针对不同 _OSI 查询的结果会设置一个叫做 WIN8 的变量,在 USB 控制器部分(以及很多其它代码)中对此有特殊处理,但也看不懂在干嘛……
WIN8
已经添加到文档中。 因为一直用coreboot,所以没注意过这个问题。LenovoWmaPolicyDxe这个模块除了做白名单的检测之外还做了一些其他的事情,所以正确的方式应该是逆向这个模块找出要修改的位置。
Thanks!
十分感谢大神的贡献!
我的电脑是 ThinkPad X230 23068CC,原机带蓝牙小板,于是换了单网卡无蓝牙版本的 BCM94352HMB,使用
r2 -w -c 'wa ret' policy.efi
进行破解。网卡是可以用了,但acpi_osi=! acpi_osi=Linux
的 Linux 和 Windows 7 及更早的 Windows,只要经过睡眠唤醒流程,蓝牙就会失效,重启才可恢复。唤醒后在dmesg
中可以见到 USB disconnected,这使得蓝牙鼠标和键盘难以使用。尝试直接删除 LenovoWmaPolicyDxe,结果一样。
后恢复此模块,修改其中一个网卡的 VID、PID和SUBSYS,即可解决上述问题。
我还没有追查问题的能力,不清楚哪里出了问题……不过这一点可以写在文档中,供后来者参考。再次感谢!
补:DSDT 中针对不同 _OSI 查询的结果会设置一个叫做
WIN8
的变量,在 USB 控制器部分(以及很多其它代码)中对此有特殊处理,但也看不懂在干嘛……