如果您已经安装了 Windows 10,可以直接跳到第 8 步!
第 1 步:
通过 Boot Camp Assistant 下载 Windows 支持软件。
第 2 步:
使用 Windows 10 安装程序创建可启动的 USB 驱动器。以下是一些链接和指南:
https://www.microsoft.com/en-us/software-download/windows10
https://taig.medium.com/create-a-bootable-windows-10-usb-from-macos-395773d4782e
第 3 步:
通过“磁盘工具”(Disk Utility)为 Windows 创建一个新分区(Exfat 格式)。
第 4 步:
在恢复模式下的终端中禁用完整性检查:输入“csrutil disable”。
第 5 步:
安装 GPT 磁盘工具:https://sourceforge.net/projects/gptfdisk/
第 6 步:
安装 Windows 10。启动时按住“Alt”键,从 Windows 10 安装 USB 启动。将分区格式化为 NTFS。
第 7 步:
安装从 Windows 支持软件中下载的 Cirrus 驱动程序。连接互联网后,安装 AMD 驱动程序及其他驱动程序。点击“设置”——“更新”。
第 8 步:
解决 Windows 10 (Macbook Pro) 缺失声音的问题,其中详细列出了解决此问题的所有步骤。
论坛链接:https://egpu.io/forums/pc-setup/fix-dsdt-override-to-correct-error-12/
文章翻译:
[指南] DSDT 重写 修复 eGPU 错误 12(仅限 Windows)
简介
Windows 系统 DSDT 表中根桥(ACPI PNP0A08 或 PNP0A03)的定义通常限制在 32 位保留空间(小于 4GB)内,该空间必须足够大以容纳笔记本电脑的 PCIe 设备。TOLUD 水位值随后被设置并固定在系统固件中。Windows 操作系统遵循根桥定义,并将 PCIe 设备分配在其范围内。macOS 会忽略根桥限制,Linux 在使用“pci=noCRS”参数启动时也是如此。这些操作系统都不需要 DSDT 重写,并且可以自由地在巨大的 64 位 PCIe 地址空间中分配设备。
在 Windows 设备管理器中安装 eGPU 时,可能会出现错误 12(此设备无法找到足够的可用资源来使用),导致 eGPU 无法工作。这可能表明 32 位地址空间不足以容纳 eGPU。eGPU 需要相对较大的 PCIe 配置空间来进行分配。通过将 RAM 减少到 2GB 来降低 TOLUD 是一种不太实际的变通方法。最终解决方案如下。
这个三步解决方案消除了 Windows 对 32 位 PCIe 分配的限制,从而修复 eGPU 错误 12:
第 1 步:创建带有 36 位根桥的 dsdt-modified.aml 文件
第 2 步:将 dsdt-modified.aml 文件作为注册表覆盖或内存替换加载
第 3 步:通过设备管理器中的“大内存”(Large Memory)区域确认成功 macOS 用户:请参考 Mikeal 的文章,其中描述了这些步骤,标题为“Windows 10 — Clover DSDT memory override [仅限 Macbooks 上的 UEFI Windows]”。
第 1 步:创建带有 36 位根桥的 dsdt-modified.aml 文件
i. 下载并安装必要的工具:
Windows 二进制工具 (WBT — 2016 年 12 月) 解压到 c:\dsdt 目录。[较新版本的 WBT 有解析错误]。
Windows 驱动程序工具包 (WDK),其中包含 Windows ASL 编译器 (asl.exe)。
Notepad++ 文本编辑器,带有 Search->Goto (line) 菜单,以便在下面的 asl 或 iasl 编译失败时快速编辑行。
ii. 将 WDK 的 ASL 编译器复制到 c:\dsdt 目录。为此,请打开命令提示符(以管理员身份运行),然后复制并粘贴以下命令。
mkdir c:\dsdt
c: & cd \dsdt
set 64bit_OS_asl="C:\Program Files (x86)\Windows Kits\10\Tools\x64\ACPIVerify\asl.exe"
set 32bit_OS_asl="C:\Program Files (x86)\Windows Kits\10\Tools\x86\ACPIVerify\asl.exe"
copy /y %32bit_OS_asl% c:\dsdt > nul & copy /y %64bit_OS_asl% c:\dsdt > nul
if not exist c:\dsdt\asl.exe echo ERROR: Failed to copy asl.exe to c:\dsdt
iii. 使用命令提示符(以管理员身份运行)中的这些命令将 ACPI 表转储到磁盘文件(dsdt.asl 和 dsdt.dat)。创建的 dsdt.asl 将在此处复制为 dsdt-modified.asl,稍后将用于进行必要的更改。
c: & cd \dsdt
acpidump -b -z
asl /u dsdt.dat
copy dsdt.asl dsdt-modified.asliv. 现在您可以选择 Intel 方法或 Microsoft 方法(分别使用蓝色工作文件 dsdt-modified.dsl 或紫色 dsdt-modified.asl)来生成 dsdt-modified.aml 文件,甚至可以尝试两种方法以获得最大成功率。请注意:
— 对于非 Lenovo 系统,请使用 Intel 方法,因为它们的 DSDT 通常具有 Intel 创建签名。
— 已知 Lenovo Thinkpad X220、T420、W530、T540P 以及其他采用第 2-4 代 i 系列处理器的 Lenovo Thinkpad 系统需要 Microsoft 方法。Intel 方法在 Windows 启动时会导致“ACPI BIOS ERROR”。
选项 1:使用 Intel 方法
i. 将此文件 >refs.txt< 另存为 c:\dsdt 文件夹中。它有什么用?
来自 tonymacx86:iasl 反汇编程序尝试确定参数的数量 [对于未在任何文件中定义的未解析符号],但通常会出错。您可以通过在 refs.txt 文本文件中提供外部声明来修复此问题。它包含一些常见(和不常见)的缺失符号。...
ii. 从命令提示符(管理员)反编译 dsdt.dat 为 dsdt.dsl。此处使用了 refs.txt 文件。然后将 dsdt.dsl 复制为 dsdt-modified.dsl,我们将在其中进行必要的更改。
c: & cd \dsdt
iasl -da -dl -fe refs.txt dsdt.dat
copy dsdt.dsl dsdt-modified.dsliii. 使用 Notepad++ 打开生成的 c:\dsdt\dsdt-modified.dsl 文件并搜索 ResourceProducer。在其下方将有一系列“DWordMemory”资源条目。在该区域的最后一个 DWordMemory 条目下方,通常在 _CRS 方法上方,添加一个“QWordMemory”(64 位)条目,如下所示。范围选择在 36 位范围内(< 64GB),以保持与支持 PAE 的 32 位 Windows 的兼容性。选择 48GB 以上的空间是为了缓解配备 32GB 内存系统的问题。在这里,我们使用 48.5GB 到 56.25GB 的范围。当系统开始配备 64GB RAM 时,需要更改此设置以使用 64 位地址。
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000A0000, // Range Minimum
0x000BFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00020000, // Length
,, , AddressRangeMemory, TypeStatic)
// - 在此处添加此片段: ---------------------------------------------------------------------------
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x0000000000000000, // Granularity
0x0000000C20000000, // Range Minimum, set it to 48.5GB
0x0000000E0FFFFFFF, // Range Maximum, set it to 56.25GB
0x0000000000000000, // Translation Offset
0x00000001F0000000, // Length calculated by Range Max - Range Min.
,, , AddressRangeMemory, TypeStatic)
// ----------------------------------------------------------------------------------------------
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settingsiv. 创建 dsdt-modified.aml 文件。“-ve”参数禁用警告消息。
c: & cd \dsdt
iasl -ve dsdt-modified.dsl第一次尝试不太可能成功,因为编译器非常严格。需要在 Notepad++ 中查看错误消息所在的行。在 dsdt-modified.asl 文件中找到 dsdt-modified.dsl 错误行中的唯一错误关键字(它看起来可能略有不同),只需在 dsdt-modified.dsl 文件中交换上方/下方的行并进行编译即可。这足以让 Dell XPS 9350、Dell E6540、2016 15英寸 Macbook Pro DSDT 重写完美完成。
如果您卡住了,请查看 eGPU.io 公共存储库,其中包含针对各种系统的预编译 DSDT。如果您的系统存在该文件,则可以将其与 Winmerge 一起下载,将文件更改合并到工作文件 dsdt-modified.dsl 中。在 [指南] 修补笔记本电脑 DSDT/SSDT (tonymacx86) 中还描述了其他修复程序。也可以尝试在 tonymacx86.com 的 DSDT 中心论坛寻求建议。然后再次尝试编译 DSDT。
然后....
ii. 在命令提示符(管理员)中,编译 dsdt-modified.asl 文件以创建 dsdt-modified.aml 文件:
c: & cd \dsdt
asl /Fo=dsdt-modified.aml dsdt-modified.asl第 2 步:将 dsdt-modified.aml 文件作为注册表覆盖或内存替换加载
选项 1:在启用 Windows 测试签名模式的情况下将 dsdt-modified.aml 加载为注册表覆盖
在这里,我们将把您的 dsdt-modified.aml 加载为 Windows 注册表 DSDT 覆盖。请注意,以这种方式加载无效的 dsdt-modified.aml 可能会在启动时导致蓝屏死机 (BSOD)。此外,Windows 测试签名模式可能会对应用程序兼容性产生问题。通过使用选项 2 可以避免这两个问题:避免测试签名模式 — 将您的 dsdt-modified.aml 加载为内存中的 DSDT 替换。
i. 在命令提示符(管理员)中,输入以下内容。为了使程序运行,必须按照第 1 步 (i) 和 (ii) 安装包含 asl.exe 文件的 WDK。
c: & cd \dsdt
asl /loadtable dsdt-modified.aml ii. 启用 TESTSIGNING 模式以应用注册表覆盖。在命令提示符(管理员)中,输入:
bcdedit -set TESTSIGNING ON
如果执行此操作时出现如下错误,请在 BIOS 中禁用 SECURE BOOT。
搞定。重启电脑。声音应该会出现。如果还没用,就需要进一步折腾了 😎
附注:Windows 右下角会出现类似“测试模式”的字样。
本指南已根据视频(其中详细解释了一切)进行了测试和编写:
英文指南在这里:https://www.youtube.com/watch?v=LbmLVOUpVOA
这里也有:https://www.youtube.com/watch?v=6foOrPapEFg