屏蔽不支持的硬盘
黑苹果这块经常在 NVME 硬盘这里翻车,比如常见的 三星 Samsung PM961/PM981/PM981a/PM991 系列、镁光 Micron 2200V MTFDHBA512TCK、Micron 2200S 等,关于无解的硬盘详细可以参考教程的:硬件限制 - 硬盘支持
PXPX 方法¶
需要先在 Windows 下查看到具体的硬盘路径,不同的电脑都不太一样,实际路径以你的实际为准:
然后将下面的内容_SB_.PCI0.RP21
替换成你自己看到实际路径就行了,接着将文件保存为 SSDT-RP.PXSX-disbale.aml,OC 加载这个 SSDT 即可:
DefinitionBlock ("", "SSDT", 2, "OCLT", "noRPxx", 0x00000000)
{
External (_SB_.PCI0.RP21, DeviceObj)
Scope (_SB.PCI0.RP21)
{
OperationRegion (DE01, PCI_Config, 0x50, One)
Field (DE01, AnyAcc, NoLock, Preserve)
{
, 4,
DDDD, 1
}
Method (_STA, 0, Serialized) // _STA: Status
{
If (_OSI ("Darwin"))
{
Return (Zero)
}
}
}
Scope (\)
{
If (_OSI ("Darwin"))
{
\_SB.PCI0.RP21.DDDD = One
}
}
}
屏蔽独显法¶
这个其实是国光我自己命名的,因为屏蔽独显也是这种姿势,有些 NVME 硬盘控制器也可以使用这种方法来屏蔽。
需要先在 Windows 下查看到具体的硬盘路径,不同的电脑都不太一样,实际路径以你的实际为准:
根据上图我们的 NVME 硬盘的路径为:
_SB_.PCI0.GPP0
然后将下面的内容_SB_.PCI0.GPP0
替换成你自己看到实际路径就行了 :
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "spoof", 0x00000000)
{
External (_SB_.PCI0.GPP0, DeviceObj)
Method (_SB_.PCI0.GPP0._DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If ((!Arg2 || (_OSI ("Darwin") == Zero)))
{
Return (Buffer (One)
{
0x03 // .
})
}
Return (Package (0x0A)
{
"name",
Buffer (0x09)
{
"#display"
},
"IOName",
"#display",
"class-code",
Buffer (0x04)
{
0xFF, 0xFF, 0xFF, 0xFF // ....
},
"vendor-id",
Buffer (0x04)
{
0xFF, 0xFF, 0x00, 0x00 // ....
},
"device-id",
Buffer (0x04)
{
0xFF, 0xFF, 0x00, 0x00 // ....
}
})
}
}
在这个喧嚣浮躁的时代,坚持写博客输出原创文章的人还有多少呢?写博客感觉一直是用爱发电的状态......
如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN 费用等)
微信
|
支付宝
|
国光我也写了一个打赏页面用以感谢支持我的朋友,详情请看 打赏列表 | 国光
最后更新:
2022-09-19