你为什么要USB映射
因此,USB映射的过程是定义您的macOS端口并告诉端口它们是什么类型,我们这样做的原因是:
- macOS很难猜测您拥有哪种端口
- 一些端口可能低于额定速度运行(3.1端口以2.0运行)
- 某些端口可能根本无法工作
- 蓝牙无法正常工作
- 某些服务(如交接)可能无法正常工作
- 睡眠可能会中断
- 损坏的热插拔
- 即使来自
XhciPortLimit
因此,既然您知道为什么要使用USB映射,我们现在可以讨论USB映射的技术信息。这是您不能跳过的部分,否则下面的所有信息都将看起来像是由一个醉酒的奴隶撰写的非常破碎的俄语翻译。
因此,对于USB,我们需要了解并非所有端口都是相同的,并且某些端口实际上隐藏了其中的其他端口!我的意思是:
- USB 3.0端口实际上被视为macOS的2个端口:USB 2.0和USB 3.0
- 这也是USB保持其向后兼容性的方式,因为所有USB 3.0设备都必须支持USB 2.0
现在,让我们看一下USB端口的示意图,以更好地理解这一点:
如您所见,底部的4个引脚专用于USB 2.0,并且当上面的另外5个引脚被识别时,设备将切换到USB 3.0模式。
现在有了基本的了解,我们现在不得不谈论可怕的15端口限制。
#macOS和15端口限制
现在,让我带您回到2015年代后期以及OS X 10.11 El Capitan的发布。这是一次更新,建立了许多既使我们受益又使社区感到痛苦的东西,例如系统完整性保护和15端口限制。
macOS(当时称为OS X)中的15个端口限制是每个控制器仅15个可能端口的严格限制,当我们查看主板上包含的芯片组端口时,这成为一个问题:
- Z170和更新的芯片组:总共26个端口
您甚至可能没有26个实际端口,但仍会在ACPI表中声明它们,从而导致问题,因为macOS无法分辨真实端口与您的固件编写者忘记删除的端口之间的区别。
但是,为什么苹果选择15个端口作为限制?
好吧,这进入了一个有趣的计算机子集,即十六进制计数系统!这与我们的十进制系统的区别是共有15个值,最后一个是0xF
。这意味着将端口限制扩展到255(0xFF)只是将其停在15个端口更干净,而且在苹果公司看来,超过15个端口没有任何意义,因为他们所支持的Mac都没有超过这个端口。如果Mac Pro用户添加了USB扩展卡,它将获得自己的15端口限制。
现在,当我们考虑到这个怪癖时XhciPortLimit
,您会明白为什么会发生数据损坏。当我们越过0xF限制并进入其他人的空间时。因此,请尽可能避免这种怪癖。
USB集线器呢?
连接到USB控制器端口之一的USB集线器具有不同的端口限制。单个USB端口总共可以拆分为127个端口。这包括连接到USB集线器的USB集线器