OS-X-USB-Inject-All 项目使用教程
1. 项目介绍
OS-X-USB-Inject-All
是一个开源项目,旨在自动为安装的 Intel EHCI/XHCI 芯片组注入所有 USB 端口。在 macOS 10.11 及以上版本中,Apple 改变了 USB 驱动的工作方式,通常情况下,驱动程序使用 ACPI 获取有关哪些端口是活动的信息。然而,这些信息往往是不准确的。为了解决这个问题,可以使用端口注入器来替代修正 DSDT(Differentiated System Description Table)。
该项目的主要目的是帮助用户在测试阶段启用所有 USB 端口,以便确定哪些端口在最终的注入器中真正需要被启用。它支持多种 Intel 芯片组,并自动根据特定的 USB 控制器芯片组确定端口及其地址。
2. 项目快速启动
2.1 克隆项目
首先,克隆 OS-X-USB-Inject-All
项目到本地:
git clone https://github.com/RehabMan/OS-X-USB-Inject-All.git
2.2 编译项目
进入项目目录并编译项目:
cd OS-X-USB-Inject-All
make
2.3 安装 Kext
编译完成后,将生成的 USBInjectAll.kext
文件复制到 /Library/Extensions/
目录下,并修复权限:
sudo cp -R USBInjectAll.kext /Library/Extensions/
sudo chown -R root:wheel /Library/Extensions/USBInjectAll.kext
sudo kextload /Library/Extensions/USBInjectAll.kext
2.4 重启系统
安装完成后,重启系统以使更改生效。
3. 应用案例和最佳实践
3.1 应用案例
-
USB 端口测试:在安装 macOS 时,有时 USB 端口可能无法正常工作,导致无法从 USB 设备启动安装程序。使用
OS-X-USB-Inject-All
可以临时启用所有 USB 端口,确保安装过程顺利进行。 -
定制端口注入器:在确定哪些 USB 端口是活动的之后,可以创建一个自定义的端口注入器,只包含实际需要的端口,以提高系统的稳定性和性能。
3.2 最佳实践
-
避免长期使用:
OS-X-USB-Inject-All
主要用于测试阶段,不建议长期使用。在测试完成后,应创建一个自定义的端口注入器或使用 SSDT 进行定制。 -
使用 SSDT 定制:通过创建 SSDT(System Definition Table)文件,可以更精细地控制 USB 端口的注入行为,避免不必要的端口注入。
4. 典型生态项目
-
Clover Bootloader:
OS-X-USB-Inject-All
可以与 Clover Bootloader 结合使用,通过在 Clover 配置文件中添加相应的 Kext 来实现 USB 端口的注入。 -
FakePCIID:
FakePCIID
是一个用于修改 PCI 设备 ID 的工具,可以与OS-X-USB-Inject-All
结合使用,以绕过某些硬件限制,如 USB 端口数量限制。
通过以上步骤,您可以快速上手并使用 OS-X-USB-Inject-All
项目,解决 macOS 中的 USB 端口问题。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考