您的PC主板可能具有比迄今为止生产的任何Apple Mac多的USB端口。甚至是基本的Mini-ITX主板。因此,我们需要减少现有的数量,直到达到与苹果macOS期望的数量相符的水平,并确保我们以正确的速度运行,提供正确的电源并在需要时安全地进行装卸,以确保数据安全。
所需的所有“工具”
1.软件
Disk Utility(磁盘分区工具)
Terminal(终端)
Clover Configurator /OpenCore Configurator / PlistEdit Pro
USBInjectAll.kext
Hackintool
IORegistryExplorer.app
2.硬件
一个USB2.0闪存驱动器
一个USB3.0闪存驱动器
操作步骤
步骤1-安装USBInjectAll.kext和端口限制删除补丁程序(建议直接安装到引导文件的驱动目录下)
我们需要使PC主板拥有所有可用的端口。
要加载隐藏的EFI分区,首先需要检查它的磁盘名称。打开我们的磁盘工具。并检查您在这里看到的内容:
在所有GUID / GPT分区磁盘的EFI文件夹会之前,甚至在主磁盘之前,任何的APF“集装箱”。上面的图像实际上来自High Sierra,即使我们还看不到EFI分区,它实际上也位于主分区之前。因为在这种情况下,磁盘的主要区域是“ disk0s 2 ”,所以EFI分区将位于“ disk0s 1 ”。(您可以在屏幕抓图中看到的另一个磁盘是我单独的500GB数据驱动器。我们忽略了这一点)。
现在我们知道了磁盘的名称,我们可以使用终端Terminal命令的方式来加载该隐藏的EFI分区:
代码:
sudo mkdir /Volumes/EFI
sudo mount -t msdos /dev/disk0s1 /Volumes/EFI
你发现了什么在你的 EFI分区将取决于引导加载器使用的是-四叶草clover或着OpenCore。都可以。
对于四叶草 -将USBInjectAll.kext复制到EFI / CLOVER / kexts / Other中
对于OpenCore-将USBInjectAll.kext复制到OC / Kexts中-并将新的kext节添加到config.plist中。如果您是OpenCore的较早采用者,您将知道必须声明每个kext及其可执行文件的路径等。(请参见下面的screengrab)。
Port_limit移除补丁
我们先打如下的补丁,使我们的USB能正常工作
High Sierra在Skylake / 100系列产品上为USB 3提供了一个新的提升端口限制补丁。
这是四叶草的KextstoPatch的数据:
代码:
Comment
Change 15 port limit to 24 in XHCI kext 10.13 PB1
Find
g32MEA==
Name
AppleUSBXHCIPCI
Replace
g32MGw==
Comment: Change 15 port limit to 24 in XHCI kext 10.13 PB1
Find: 837D8C10
Name: AppleUSBXHCIPCI
Replace: 837D8C1B
Mojave适用于14.1、14.2、14.3、14.5、14.6的USB端口限制补丁
以下修补程序允许根集线器端口限制从0xf到0x3f。
修补程序1
Comment: USB port limit patch 10.14.x (credit ydeng)
Name: IOUSBHostFamily
Find: c20200e0 83fb0f
Replace: c20200e0 83fb3f
这需要与AppleUSBXHCI修补程序一起使用
补丁2
Comment: USB Port limit patch 10.14.1, 10.14.2,10.14.3
Name: com.apple.driver.usb.AppleUSBXHCI
Find: 00 00 83 FB 0F 0F 83 8F 04 00 00
Replace: 00 00 83 FB 3F 0F 83 8F 04 00 00
补丁2
Comment: USB Port limit patch 10.14.5,10.14.6
Name: com.apple.driver.usb.AppleUSBXHCI
Find: 4183ff0f 0f839404 0000
Replace: 4183ff3f 0f839404 0000
Mojave 14.1在AppleUSBHostPort : setPortLocation中进行了附加检查,以将最大端口数限制为0xf。
__text:0000000000015CC6 test ebx, ebx; port number passed in the argument, zero for root hub ports
__text:0000000000015CC8 jnz short loc_15CD2
__text:0000000000015CCA mov ebx, [r12 0D0h] ; port id from port property
__text:0000000000015CD2 loc_15CD2:
__text:0000000000015CD2 mov r14d, 0E00002C2h
__text:0000000000015CD8 cmp ebx, 0Fh ; check port id is not above 0xf
__text:0000000000015CDB ja loc_160F7
macOS Catalina 10.15.0-USB端口限制删除补丁
对于Catalina,我们只需要两个补丁,而对于Mojave,则只需要四个补丁。
第1行-
Name*:com.apple.iokit.IOUSBHostFamily
Find *:83FB0F0F
Replace *:83FB3F0F
第2行-
Name* com.apple.driver.usb.AppleUSBXHCI
Find *:83F90F0F
Replace *:83F93F0F
请记住,您将需要USBInjectAll.kext安装,以使其工作。
四叶草 -在config.plist中输入PLRP 。这是在Clover Configurator中查看过的Catalina 。
作为参考,这是使用PlistEdit Pro插入的相同补丁。您可以看到有五个Kexts到Patch,其中两个是Catalina PLR-Patch。
对于OpenCore-将Quirk“ XhciPortLimit”设置为“ / true”。这是OpenCore Configurator中的外观。请参阅下面的内容,了解PlistEdit Pro中的外观。
这是使用PlistEdit Pro编辑的相同“ Quirk” 。很简单:
保存并重新启动
步骤2)检查您拥有哪些USB端口。
运行Hackintool并在菜单栏中选择USB图标:
不同的芯片组具有不同数量的端口,但是以上内容非常典型。您可以在蓝色突出显示的栏中看到我的Z370芯片组。
步骤3)端口发现
要确定主板上要保留和配置的端口,您需要使用USB闪存驱动器测试每个端口,以查看其在Hackintool输出中的位置。
这是使用第一个USB2.0驱动器和第二个USB3.0 / 3.1驱动器对同一端口的测试:
物理端口是相同的,但根据插入的设备类型的不同,枚举的方式也有所不同-USB2.0是HS **端口,USB3.0 / 3.1是SS **端口。如您所见,单个物理USB3端口在我们的15个限制中算作2个端口,因为可以插入任何一种类型的设备。
对主板上的每个端口重复此过程,并在某处进行记录。
这是我为Z370M-D3H主板制定的两个计划:
有了这个,我们现在可以从不需要的Hackintool列表中删除端口,这样我们就可以降低到Apple规定的神奇数字15。为此,我们使用cmd mouse方法突出显示不需要的每个端口:
完成此操作后,我们在上面的屏幕截图中用鼠标圈单击我用红色圆圈圈出的“删除”图标。这将删除我们不希望使用或配置的端口。
最终列表如下:
步骤4)导出我们的配置文件
在上方的屏幕抓图中选择我用红色圆圈圈出的图标,以导出所有工作:
最后的USBPorts.kext是我们想要的文件。另外两个对于其他配置方法很有用,但是我们今天不需要它们。
步骤5)安装我们的配置并进行清理
如果你仍然有EFI分区安装,那么你可以:
四叶草 -删除USBInjectAll.kext,取而代之的是USBPorts.kext在EFI/CLOVER/kexts/Other。通过使用Clover Configurator编辑或在“禁用”框中打勾,从config.plist中删除PLR修补程序。
支持OpenCore -删除USBInjectAll.kext,取而代之的是USBPorts.kext在OC / kext文件 -不要忘记在修改内核扩展名的config.plist。要删除PLR修补程序,请将其编辑为“ / false”,或取消选中该Quirk-“ XhciPortLimit”。
保存并重新启动
步骤6)完成作业-检查您的工作
或者运行Hackintool并选择该USB图标以查看您的端口,或者运行IORegistryExplorer并将左窗格向下滚动到XHC部分。
而已。在完成USB端口配置方面做得很好!
ps:
1
您的config.plist是纯文本格式,称为xml,您需要文本编辑器对其进行修改。您选择哪种取决于您是否感到满意。许多人推荐PlistEdit Pro,而其他人则喜欢A pple的Xcode编辑器。还有许多其他功能,但是无论您选择哪种功能,都必须能够以纯文本格式进行编辑,而不仅仅是以富文本格式或某些专有格式进行编辑。如果您知道如何设置,甚至macOS的TextEdit也可以完成这项工作。
虽然我说明了Clover Configurator和OpenCore Configurator的用法引导”,是他们的软件复杂的作品,可以偶尔得到的东西混起来使用(虽然他们都在积极更新),所以不必依靠他们conpletely。切记要仔细检查您的工作并经常备份
2
请记住,端口限制删除修补程序不是为永久使用而设计的,因为它们会覆盖并超出Apple预留给工作的内存区域。可以将您的USB端口想像成一盒十二个鸡蛋,两行六个鸡蛋。装满盖子后,便可以安全使用了。如果您在中间再放五个鸡蛋,它们看起来很合适-但是现在您无法关闭盖子。鸡蛋可能会破裂。
简而言之,长期使用该补丁程序意味着数据丢失和系统崩溃仅需一小段时间。
3
本教程重点介绍所有现代英特尔芯片组所具有的XHCI控制器。一些较旧的主板具有既具有以前的EHCI标准又具有更新的XHCI的芯片组。即使年龄更大,也可能只有两个EHCI。如果你看到3行Hackintool的顶部面板有两个EHC和一个XHC控制器则优先考虑的XHC,因为这是USB3.0的来源。如果您仅看到两个EHC控制器,则您的系统卡在USB2.0上。但是,当您进入下一阶段时,可以使用这些端口。因为您需要放置一些在您的config.plist中重命名。
说明:由于Apple在控制可以安装哪些第三方kexts,因此最初担心使用任何形式的kext安装来修改ACPI / USB端口会在将来被阻止。但是,通过将USBPorts.kext放入EFI /或OC /文件夹中,macOS不会“看到”它。此外,如果从Terminal运行kextstat,您会注意到,尽管其他kext对macOS可见,但USBPorts.kext却不可见。我对此的看法是因为它的容器中没有“可执行文件”。
Hackintosh适用于构建器的实用工具的出色工具箱。在本指南中,我们仅涉及其功能的一部分。
评论8