- 积分
- 217
- 最后登录
- 2024-4-17
- 精华
- 0
- 阅读权限
- 30
- 主题
- 50
- UID
- 2701811
- 帖子
- 468
- PB币
- 153
- 威望
- 5
- 贡献
- 0
- 技术
- 20
- 活跃
- 803
- UID
- 2701811
- 帖子
- 468
- PB币
- 153
- 贡献
- 0
- 技术
- 20
- 活跃
- 803
|
本帖最后由 红红_星星 于 2020-6-27 22:50 编辑
更新 BIOS 后卡 ACPI:6 ACPI AML tables successfully acquired and loaded
一般情况下是更新后 RTC Device 多了个函数,而函数引用的变量没有初始化导致
- BIOS 中有 System Time and Alarm Source 的选项,从 ACPI Time and Alarm Device 切换回 Legacy RTC 即可
- 没有该选项,只能通过改 SSDT 手动设置 STAS = One 参考如下。
- DefinitionBlock ("", "SSDT", 1, "HACK", "SET-STAS", 0x00000000)
- {
- External (STAS, IntObj) // (from opcode)
- Scope (_SB)
- {
- Method (_INI, 0, NotSerialized) // _INI: Initialize
- {
- STAS = One
- }
- }
- }
复制代码
但是我查看 DSDT 发现 RTC 前后没有变化,倒是 CPU 命名发生了变化,如下:
- Processor (CP00, 0x00, 0x00000510, 0x06)
- {
- Name (_HID, "ACPI0007") // _HID: Hardware ID
- Name (_UID, "SCK0-CP00") // _UID: Unique ID
复制代码 更新后
Apple 的 dsdt 命名都是强制的,比如 GPU 的命名,所以这里想到可能也是这个原因,就把 Device 改回 Processor。修改后仍到 EFI/OC/ACPI 顺利启动系统。
一开始想着打 hotpatch, 但是发现后面的命名并没有可靠的规律(可能我没有发现),而且搭配的 CPU 28 核 56 线程(要改 224 行),hotpatch 工作量也不小,就基于 DSDT 修改 (60W+ 的 aml 实在是痛苦)。
后来想着是不是能把 CPU 部分(Processor)拎出来扔到 dsdt ,貌似该函数捕获了大量变量,也是个体力活,遂罢。
有没有大佬有好的建议可以做到 Patch, 不胜感激。
致谢@cheneyveron在解决该问题时给了莫大的建议与灵感。
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
-
1
查看全部评分
-
|