概述
在某些系统上,当你启用VT-d(这是某些特定设备(例如Antelope音频接口和其他支持Thunderbolt的设备)的主要功能所必需的)时,系统会开始出现异常,所有网络设备(包括以太网和WiFi)突然无法工作。在“系统偏好设置”>“网络”中检查设备时,发现网络适配器处于循环状态,无限连接和断开,但始终无法连接。
摘自OpenCore文档(DisableioMapper部分)。
此类问题在运行 Big Sur 及更高版本的系统上有所体现。为了解决这个问题,用户 @yosoyoco 提出了一个修复方案,其思路是通过从原始 OEM DMAR 表中删除保留的内存区域来修复 DMAR 表,然后进一步删除 OEM DMAR 表,并使用修复后的 DMAR 表。
运行 Big Sur 及更高版本的系统需要此修复。不过,在 Catalina 及之前版本上也很少有用户报告此问题。
自 macOS Ventura 以来,启用 VT-d 是必须的。VT-d 是正常工作的网络适配器所必需的,包括内置网络适配器和基于 PCIe 的网络适配器。以下主题已对此进行了讨论。
快速信息:
要求:
要求与 VT-d 基本相同。
步骤 1:启用 Apple VT-d。
第一步是在 BIOS/UEFI 中启用 VT-d 功能。否则,提取原生 ACPI 表时将无法获取 DMAR 表。要启用 VT-d,只需在 BIOS/UEFI 中将 VT-d 设置为“已启用”即可。有关启用 Apple VT-d 的更多信息,请阅读下文。
步骤 2:提取原生 ACPI 表
下一步是提取原生 ACPI 表进行补丁。为了获得最高的完整性,我们建议使用 Clover 进行提取。如果您不知道如何操作,可以参考下方链接提供的指南。
步骤 3:修复 DMAR 表
1. 提取完成后,将 origin 文件夹复制到您选择的任意工作目录。
2. 打开复制的 origin 文件夹
3. 找到该文件并将其复制DMAR.aml
到您的工作目录。
4. 下载 MaciASL。
5. 使用 MaciASL 打开 DMAR.aml 文件。您应该会看到一个与下方截图类似的表格。
5. 找到内存区域并删除它们。在我们的例子中,内存区域从第 70 行开始,到第 101 行结束。
删除内存区域后,DMAR 表应类似于下面附加的屏幕截图。

如您所见,现在很明显,内存区域已被删除。这就是本质
6。单击“编译”按钮。
7。转到文件菜单并选择“另存为”选项。确保在文件格式选择中选择 ACPI 机器语言二进制文件。
步骤 4:复制 DMAR SSDT
下一步是复制新修补的 DMAR 表。要复制 DMAR 表,请按照以下步骤操作。
1. 挂载您的 ESP
2. 如果您使用的是 OpenCore,请将步骤 #3 中的
新 SSDT 复制到目录中。如果您使用的是 Clover,请将步骤 #3 中的 SSDT 复制到目录中。
步骤 5:修改 EFI 配置 下一步是通过编辑 config.plist 添加所需的更改。两个引导加载程序(即 OpenCore 和 Clover)都支持这些更改。要修改,请按照以下步骤操作。
1. 挂载您的 ESP对于 OpenCore
2 从目录 中打开您的 config.plist
3. 导航到 ACPI 部分并实施以下更改ACPIDMAR.aml
EFI/OC/ACPI
DMAR.aml |
EFI/Clover/ACPI/patched
本节用于加载、阻止和修补 ACPI 表。各子节的说明如下。
添加
本节用于为您的系统添加 DSDT 和 SSDT 文件。这主要包括 USB 和 CPU 电源管理 SSDT。
所需设置包括:
小路* | 价值 | 笔记 |
---|---|---|
SSDT-DMAR | 是的 |
|
删除
此部分允许阻止加载 ACPI 表。
所需的设置包括:
桌号* | OemTableId | 表长度 | 评论 | 全部 | 已启用 | 笔记 |
---|---|---|---|---|---|---|
DMAR | 0 | 删除 OEM DMAR 表 | 是的 |
|
保存你的 config.plist。
对于 Clover
1. 从 EFI/Clover 目录打开你的 config.plist
2. 导航到 ACPI 部分并实施以下更改
ACPI
此部分用于加载、阻止和修补 ACPI 表。各子部分说明如下。
删除表
此部分用于阻止加载 ACPI 表。
所需设置包括:
签名* | 类型/键 | 字符串[表格]数字[长度] | DropForAllOS | 笔记 |
---|---|---|---|---|
DMAR | 不 |
|
SSDT
此部分用于在使用“排序顺序”时为您的系统添加 DSDT 和 SSDT 文件。如果您使用的是完整补丁的 DSDT+SSDT,请将“Drop OEM”设置为 true。使用此选项时,您还需要使用“排序顺序”。请参阅下面的“排序顺序”信息。SortedOrder此部分用于在使用“排序顺序”时为您的系统添加 DSDT 和 SSDT 文件。如果您使用的是“排序顺序”配置,请将 SSDT-DMAR.aml 添加到列表中。
3. 保存您的 config.plist。
步骤 6:重新启动系统
完成上述所有步骤后,重新启动系统以使应用的更改生效。
评论0