感谢原作者,原帖:https://bbs.pcbeta.com/viewthread-1651615-1-1.html。
我用此方法已解决自己一台台式和笔记本的usb问题。没用第三方kext实现驱动,3.0完美识别和速度正常。
我的台式机原本的问题:我之前是用USBInjectAll.kext,但是台式机的前面板2个3.0口只能识别一个,另一个完全不识别,识别了速度也不对,在系统报告里面可以看到速度显示的是480m/s。这样每次用3.0还得去后入,很不方便。
解决方法示例:我的主板是技嘉b85n-phoenix不自带wifi版。根据原帖文中方法,我按个人理解进行了简化操作。首先还是去查看每个usb口对应的端口号。我是在windows下用aida64看的,如下:
看这里有什么用呢?我们的目的是要找到每个USB对应的端口(也就是图中Port 1,2,3,4这些),需要注意的是,USB2.0的插口,只对应一个端口,但是USB3.0的插口,会对应两个端口(因为USB3.0插口兼容2.0,所以插2.0和3.0设备的时候对应的端口不同)。我是先用键盘的插头,去插每个USB的插口,每插一个,在aida64的这个USB设备界面,右键刷新一下,就能看到变化。分别记录下使用到的端口(port)。然后我用一个USB3.0的U盘去分别插3.0的插口,记录下使用到的端口(port)。然后就有了这幅神来之笔的图。
这是我随手画的机箱,左图是前面板,前面板的左边两个是3.0插口;右图是机箱后面主板的接口,12端口那个由于是给USB耳机供电的,不能读U盘,所以忽略不计了。在记录端口过程中,发现我的usb端口全部位于intel usb3.0控制器下,而EHCI控制器里面没出现过,所以后面修改时候只考虑intel usb3.0控制器(XHC)就可以了,(原帖资料:在DSDT里,USB2.0主控器名称是EHC,USB3.0主控器名称是XHC)。现在统计下我要保留的插口,3.0的有4个,2.0的有9个,一共13个,没超过MAC系统15个USB端口的限制(貌似有个clover里面破解端口限制的补丁,我忘了,谁有欢迎补充下。)
修改DSDT:
DSDT的提取和排错就不提了,论坛已有很多大神的经验贴。以我的DSDT为例,搜索Device (XHC,然后左边找到RHUB展开,可以看到很多HS或者SS开头的东西。(HS表示2.0端口,SS表示3.0端口。)
原帖里提到的方法我尝试过,但是可能操作不对,没能成功识别前面板的3.0。我用的方法是直接保留之前记录的对应的端口,其他全部删除。
PS:这里很有必要说一下端口的查找方法。
如上图HS01就是代表之前aida64里面的port1,那么这里1-15就都是2.0端口。SSP1是在HS15的下一个,所以它对应的是port16,以此类推SSP2,3,4,5,6就分别对应的是port17,18,19,20,21。根据我之前记录的,我要保留的port分别是1,2,3,4,6,7,8,9,10,12,16,17,20,21。把其他的都删掉,最后得到的就是这样,共13个。
然后就编译成aml,放到clover里面就好了。记得不要放USBInjectAll.kext了。重启后进系统测试,所有插口均正常了,usb3.0正确识别速度也变成5G/s。有同样问题的朋友可以尝试一下哈,记得备份。笔记本的情况也类似,只不过要删除的名字显示不一样,09后面的0A,0A就是对应的port10,有碰到的注意下就好了,基本上DSDT里默认从上到下的顺序就是对的顺序,挨着数就行了。
|