[Guide] 8/9/100系正确识别USB3.0的方法(10.11.1+)
本帖最后由 cleveriax 于 2016-12-19 18:39 编辑credit to leko999 , lnyx328328 and RehabMan
本文以9系主板举例,理论上适用于 8/9/100 系主板,解决Clover 引导 USB3.0 无法读取或者被降速 480mb/秒的情况。
本文仅讨论 Intel 提供的 USB 接口,任何第三方芯片提供的 USB 接口不适用于本文。
首先需要指出的是,在 intel 8/9/10 系主板中,USB2.0 与 USB3.0 已经全部由 XHC 控制器接管。
USB3.0 的本质是 USB3.0 + USB2.0 ,向下兼容。
在明确了这些前提之下,我们开始教程的内容。
Step1:探明所有的 USB 接口
刚刚提到了本文仅讨论 Intel 提供的 USB 接口,如何区分是我下面要讲的。
以我的主板为例,
如图所见,我共计有 6 个 USB2.0 接口和 8 个 USB3.0 接口。
如果对 9 系主板有所研究就会发现,9 系主板最多提供 14 个 USB2.0 与 6 个 USB3.0 。
那多出来的两个 USB3.0 接口相比就是第三方芯片提供的。
我们接下来开始区分 Intel 提供的 USB 和第三方提供的 USB。
需要准备 1 个 USB3.0 闪存盘,1 个 USB2.0 闪存盘 ,1 张表格,我们会记录接下来的数据。
为了达到记录准确,我个人推荐在 Windows 下进行记录。
下载如下软件:usbtreeview,由 Microsoft 开源的 USB 检测工具。http://www.uwe-sieber.de/files/usbtreeview.zip运行,依次在每个 USB 接口上分别插入 USB3.0 闪存盘和 USB2.0 闪存盘。
记录下红色框与棕色框内的数字。
下面是我记录的范例。
Step2:安装 USBInjectAll 驱动并加载正确的 USB Map英文有一些基础的可以去 github 下加深一下理解。
下载最新的 kext 放在 S/L/E 下,修复权限。https://github.com/RehabMan/OS-X-USB-Inject-All
https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads并下载 SSDT-UIAC.dsl 编辑正确的USB Map,下面示范修复一个 USB3.0 口和蓝牙。
论坛编辑器无法,大家请看图。
从 10.11 开始,Apple 限制 USB 接口的数量为 15个。
所以我们不能把所有的 USB 接口数据全部填上,而是要进行筛选,控制在 15 个之内。
编辑完毕之后存为 aml 文件,放入 EFI/Clover/ACPI/Patched,并加载 TableId 为 UIAC 的 SSDT ,重启即可。
Update:
35F更新了直接修改 USBInjectAll.kext的方法,个人认为更加简单,和加载SSDT的原理一样。
Step3:如果你真的需要 15 个以上的 USB 接口
可以打上解除 15 个 USB 口限制的 Patch 。Comment: change 15 port limit to 20 in AppleUSBXHCIPCI for 8/9 series
Name: AppleUSBXHCIPCI
Find: <83bd8cfe ffff10>
Replace: <83bd8cfe ffff15>Comment: change 15 port limit to 26 in AppleUSBXHCIPCI for 100 series
Name: AppleUSBXHCIPCI
Find: <83bd8cfe ffff10>
Replace: <83bd8cfe ffff1b>Reference:https://github.com/RehabMan/OS-X-USB-Inject-All
https://bbs.pcbeta.com/viewthread-1647578-1-1.html
https://bbs.pcbeta.com/viewthread-1646940-1-4.html
http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/
https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/
https://www.tonymacx86.com/threads/10-11-0-10-11-3-skylake-starter-guide.179221/
https://pikeralpha.wordpress.com/2016/07/13/simple-skylake-usb-fix-no-kexts-required/
https://bbs.pcbeta.com/viewthread-1651615-1-1.html
https://bbs.pcbeta.com/viewthread-1646768-1-1.html
嗯,方法不错,可以以后试试看,目前为止,自己主板3.0一切正常 目前为止,自己主板3.0一切正常 正需要,感谢分享!!!! 谢谢楼主分享,留名! SSDT页挂了,重新打一遍
修改ssdt...目前用的是修改端口配置信息,直接放入fakeSMC驱动的plist文件里,每次重装后反正都要安装fakeSMC,也不麻烦 楼主这句怎么操作?“编辑完毕之后存为 aml 文件,放入 EFI/Clover/ACPI/Patched,并加载 TableId 为 UIAC 的 SSDT ,重启即可。”
用SSDT-UIAC.dsl重新生成一个新的SSDT-x.aml的文件,放在EFI/Clover/ACPI/Patched下即可?clover里devices下的USB项需要勾不?把USBInjectAll安装到S/L/E下修复权限?
顺便问下这样能解决睡眠换新后摄像头不能用的问题吗? 谢谢你这么好的教程。 谢谢你这么好的教程 哈哈哈 其实思路都一样 我就是更加的简单粗暴 直接修改 USBInjectAll。这样就不用动dsdt 和 制作ssdt了 方法 很正确,我目前也是用这个方法修改了usb3.0。主板技嘉z77x ud3h。有一个via的usb3.0
hello_ok 发表于 2016-10-23 15:18 https://www.pcbeta.com/static/image/common/back.gif
楼主这句怎么操作?“编辑完毕之后存为 aml 文件,放入 EFI/Clover/ACPI/Patched,并加载 TableId 为 UIAC...
如下图,Clover 中 USB 相关都不要勾选。
lnyx328328 发表于 2016-10-23 20:54
哈哈哈 其实思路都一样 我就是更加的简单粗暴 直接修改 USBInjectAll。这样就不用动dsdt 和 制作ssdt了
不错的思路,精简引导文件和 kext 数量,我之后也试试。 不错的文章,支持一下 谢谢分享。学习了。 如果打上解除 15 个 USB 口限制的 Patch了,那还需要USBInjectAll和SSDT吗? 用遮盖器躲避遮盖的目的不就是为了解除15个端口限制吗?用SSDT的目的不也是为了躲避遮盖吗?用Path不也是为了解除15口限制吗?那也就是说这三种做法的目的是一样的啊,那应该这三种办法只用其中之一就行了吧? mark。。
前置USB3.0接口之前试了好多方法都是USB2.0,后来win下也发现只能识别为USB2.0。
后来商家说线不行,所以识别不了。。。TM不早说。。。 梦水乡 发表于 2016-10-24 09:52 https://www.pcbeta.com/static/image/common/back.gif
用遮盖器躲避遮盖的目的不就是为了解除15个端口限制吗?用SSDT的目的不也是为了躲避遮盖吗?用Path不也是为 ...
可以这么理解,打 Patch 其实是一种取巧省事的办法,指不定哪天一更新就失效了。
从原理上理解 Apple 新的 USB 限制解法,虽然麻烦,但是一劳永逸。