- 积分
- 262
- 最后登录
- 2023-4-17
- 精华
- 0
- 阅读权限
- 30
- 主题
- 36
- UID
- 3044354
- 帖子
- 580
- PB币
- 662
- 威望
- 5
- 贡献
- 0
- 技术
- 0
- 活跃
- 429
- UID
- 3044354
- 帖子
- 580
- PB币
- 662
- 贡献
- 0
- 技术
- 0
- 活跃
- 429
|
本帖最后由 shiy05 于 2017-7-14 21:30 编辑
蓝牙问题经验总结
蓝牙偶尔会在睡眠之后失灵,只能重启。
爬了无数帖子后无果,求助RehabMan终于把问题解决。
心累啊,早知道早点问他老人家了。
居然是因为USB没有正确Inject。。。
花了一天把原理,方法弄懂了,还做了视频教程,献给大家(就不收pb了,求帮忙点个赞!)!!
如果有错误,请指出。
为什么要修改USB Injector?
- apple发现有些mac机器的USB不对,就修改了usb injector,整合到SMBIOS里面或内部驱动里
- apple的usb injector对我们可能是错的
- 为了不受apple injector的影响,我们要用重命名的方法,使之无法被SMBIO或相关驱动匹配到
- 我们最终让ACPI接管所有的USB,自己定制SSDT-UIAC让ACPI对应上正确的位置
what is USB and USB controller
- USB分两种:内部和外部
- 有些主板有两类控制器:XHC和EHCI,但是每个控制器都不能超过15个端口
- USB3.0端口其实是2个端口:一个3.0, 一个2.0
- 每类USB对应的USBConnector value
- USB 2.0
- 0(普通的USB 2.0端口,注意,是0不是2,论坛的有些帖子是错的)
- 3 (USB 3.0包含的2.0端口)
- USB 3.0
- build-in USB
How to build USB Injector
- 用重命名的方法change EHC1 to EH01, XHC1->XHC等(有些机器不需要重命名),绕过apple USB Injector的影响
- DSDT一些需要提前打好的补丁
- os check windows
- 可能需要修改XWAK, ESEL等(具体请看RehabMan的帖子)
- 有些机器打个clover取消端口限制补丁就正常了,但是不推荐长期使用,有bug,最好定制SSDT-UIAC
- 用FakePCIID_XHCIMux将USB2从XHC移动到EHCI(作用:绕过15个端口限制)
- 用USBInjectorAll配合取消端口限制补丁,可以强制打开所有的USB端口
- 每个USB有对应的port号为16进制,如0x13的十进制为19(在修改SSDT-UIAC的时候要注意)
what did I do?
- 发现问题
- 感谢RehabMan,通过IOReg发现问题:USBConnector value有问题
- 我的DSDT不需要重命名,天然屏蔽了apple injector和SMBIOS的影响
- 强行打开所有的USB端口
- 打补丁去掉15个端口的限制
- 安装USBInjectorAll到LE
- 修复权限,重启,用IOReg检查效果
- 确定所有有用的USB端口
- 每个端口用USB 3.0和2.0插拔一次,看看IOReg的结果
- 记下USB对应的类型和port号(包括内部的USB)
- 修改SSDT-UIAC
- 正常后,去掉端口限制补丁
资源- 我做的视频教程(更正:USB 2.0的usbconnect value是0不是2)
- https://www.油土鳖.com/watch?v=xNHSAd5tEXg
- 百度云下载:链接: https://pan.baidu.com/s/1slI0Stn 密码: ab7r
- 有用的帖子(推荐看RehabMan的帖子):
- https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
- https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/
|
-
3
查看全部评分
-
|