本帖最后由 aricy 于 2015-10-13 16:04 编辑
- 参考贴:https://bbs.pcbeta.com/viewthread-1646768-1-1.html
复制代码
最近大家在更新10.11的时候,发现原来的USB驱动无法使用,这就导致很多机油的摄像头、蓝牙等设备无法使用。
在拜读上面的文章后,我们明白了其实这完全是由于苹果完全重写了OSX系统的USB驱动机制。
在这里引用作者的说法:
- 10.11 El Capitan开始,苹果完全重写了OSX系统的USB驱动机制。原来的驱动是怎么样的大神没说我也不知道。现在的情况是这样的。
- 首先,一般而言,对于ivybridge平台开始的电脑(自2012年的ivybridge开始intel引入原生USB3驱动),一般而言,硬件内总共存在3个USB主控器,两个USB2.0的,一个USB3.0的。两个USB2.0的。在ACPI表(就是我们常说的DSDT)中,两个USB2.0主控器一般被命名为EHC1和EHC2,无论对PC机还是白果机都是如此。但是USB3.0的主控器,PC机的DSDT里一般命名为XHC(或许也有例外),白果机则命名为XHC1。
- 或许苹果本来想的是,完全依赖ACPI表(就是DSDT信息)来读取有关USB的数据,但是问题来了,有些机器的ACPI表(DSDT信息)是不准确的,当然,普通PC机不准确不关苹果的事,爱准不准。但是,注意,苹果发现,自家的有些白果机的ACPI表(DSDT信息)也是不准确的,这就不好玩了。
- 为了解决这个问题,苹果引入了一个东西,RehabMan大神称之为injector,我想了下,决定这个词还是不能直译,还是意译的好,我决定称其为遮盖器。具体说来,遮盖器机制,就是我们很多教程里提到要修改的
复制代码
通过上面,我们知道遮盖器的大概原理。(如有不懂之处,请参考上面的帖子)
单具体我们应该怎么来做呢?其实大家读了上面的帖子后,应该就知道怎么来制作遮盖器了。
制作适用于自己机器的遮盖器的具体步骤:
1,先看看电脑有几个usb3.0接口,几个usb2.0接口。
比如宏碁Aspire V5-473P-5602 (这是一个网友的机型):
这个机型有只有三个usb接口,一个usb3.0,二个usb2.0。我们都知道usb3.0是向下兼容usb2.0的。于是我们知道如果要让所有端口都可用(这里考虑到所有端口都插上USB设备),我们就要为其预留至少2+1*2个虚拟端口,如果再加上蓝牙,摄像头,触屏等设备,这个机型需要2+1*2+3=7个虚拟端口。根据上面帖子可以知道,每个usb控制器只允许15个虚拟端口。因为只有7个虚拟端口,我们就不必在意虚拟端口数不够用的问题。但是,如果是台式机,usb接口已经远远大于15了,怎么办,那只有通过屏蔽usb3.0接口兼容的usb2.0端口来节省虚拟端口数。
由此,对于宏碁Aspire V5-473P-5602 来说,需要7个虚拟端口。
2,在windows 或者Yosemite下查询真正的虚拟端口号(Port 1、HSP1、SSP1)
注意:事先,请将所有usb端口都插上usb设备,记录下所有的虚拟端口号,然后在usb3.0上插上usb2.0的设备,再记录下此时的端口号,并且记录具体对应的设备是什么。
在windows下查询端口号,我们可以使用aida64这个软件来查看:
从上面的图中,我们可以看出:
在usb3.0控制器上,虚拟端口对应的设备情况:
Port 2:usb2.0U盘
Port 3:webcam 摄像头
Port 4:蓝牙设备
Port 6:usb输入设备,触屏
Port 10:usb3.0U盘
在usb2.0控制器上,虚拟端口对应的设备情况:
Port 5:usb2.0 U盘
Port 7: 无线蓝牙鼠标
由此可以看出我们需要的虚拟端口号:2、3、4、5、6、7、10 一个七个
在Yosemite下,我们可以用ioreg这个软件来查看:
3,进入mac系统,制作遮盖器。
这里分享下载:
宏碁Aspire V5-473P-5602:
|