本帖最后由 bb1045 于 2019-9-4 12:55 编辑
该方法适用于SMBIOS为iMac2019的300系主板与8代Cpu的台式机;9代U楼主还没有。
之前通常的做法是强制加载LPC,那么它是否还适合现在的新硬件呢?为了弄清楚这一点,不妨来先看看AppleLPC这个kext中的ID数据吧(版本3.1 获取自10.14.6)。
9ccx应该是最新了,查询一下
Wildcat Point-LP LPC Controller
Intel网站搜索关键字 Wildcat Point-LP
9系5代U
所以呢,6代U开始就不再需要加载LPC了。
至于为什么没有断电重启选项的原因,有人说机型问题,但同期的iMac确实有;有的说是T2的原因,可是2019的iMac是没有T2的。
假如能有台真正的苹果机就好了,奈何一个字~穷啊!
后来的某一天,楼主路过一家苹果店,正好还带着个U盘,里边还正好又有MaciASL,顿时心血来潮。
“嗯,进去瞅瞅,反正他们又不知道楼主买不起,就这样。。。”
一进去,人不少,于是赶紧找了台四下无人盯防的,迅速插入U盘,打开MaciASL,存储,离开。
这是楼主在做梦时想到的办法,下面言归正转。
回来后楼主反复研究测试到深夜,功夫不负有心人,终于出现了“断电后自动启动”这个选项,现在想想还激动不已。
好吧,不啰嗦了,不啰嗦了。
方法
在DSDT的PCI0下添加2个Device:
1.
Device (PPMC)
{
Name (_ADR, 0x001F0002) // _ADR: Address
}
2.
Device (PMCR)
{
Name (_HID, EisaId ("APP9876")) // _HID: Hardware ID
Name (_STA, 0x0B) // _STA: Status
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
Memory32Fixed (ReadWrite,
0xFE000000, // Address Base
0x00010000, // Address Length
)
})
}
保存未完成的工作,重启电脑。
恭喜你,久违的断电重启选项回来了吗?(没有的看下机型对不对,代码是否正确完整)
有的也先不要激动,接着看,说不定后面还会有小惊喜。
继续来看你的DSDT里面有没有Device (SLPB)。
如果有,现在试着长按下电源开关,是不是出现了下面这个?算是个意外发现吧。
没有就先不要长按电源,会直接关机的,别说我没有提醒啊啊。
加入这段后,重启再试。
Scope (_SB)
{
Device (SLPB)
{
Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID
Name (_STA, 0x0B) // _STA: Status
}
}
最后来说下SMBIOS设置为iMac2015与iMac2017的情况
据我所知,iMac2015的机型只要添加1个Device到DSDT的PCI0就行了:
Device (PMCR)
{
Name (_ADR, 0x001F0002) // _ADR: Address
}
iMac2017机型的在添加了上述代码,没有断电重启的话,可能需要同时再添加以下代码:
Device (PPMC)
{
Name (_ADR, 0x001F0002) // _ADR: Address
OperationRegion (PMCB, PCI_Config, Zero, 0x0100)
Field (PMCB, AnyAcc, NoLock, Preserve)
{
VDID, 32,
Offset (0x40),
Offset (0x41),
ACBA, 8,
Offset (0x48),
, 12,
PWBA, 20
}
}
最后的最后,完了。谢谢耐心观看!
最最后,附上楼主的HotPatch供参考
|