本文发自 http://www.binss.me/blog/solve-hackintosh-stuck-problem-after-bios-upgrading/,转载请注明出处。
今天吃饱没事刷 NGA,看到一个帖子说 ASUS Z390 最新的 BIOS 优化了对高频内存的支持,也就是说内存能超得更高了,于是我熟练地在官网下载了 BIOS 升级包,在 BIOS 中利用官方工具进行了升级。在 Windows 下一番跑分发现没啥变化,失望地切到装在另外一块硬盘上的黑苹果准备干活时,发现系统卡读条进不去了!
心头瞬间一万头草泥马奔过,差点给自己两巴掌,叫你丫的手贱。一番骂娘后,打开 Google 搜索问题,在耗费了三个小时后终于解决。
原因
升级 BIOS 后,在初始化过程中未设置 STAS 变量,导致 RTC 设备无法初始化,于是系统启动失败:
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00")) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{8}
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
If ((STAS == One))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
}
解决
最暴力的做法是将 BIOS 降级,然而 BIOS 一般是不支持降级的,强刷的话一不小心变砖就不好了。Don't do that 。
若你的 BIOS 中有 System Time and Alarm Source 的选项,从 ACPI Time and Alarm Device 切换回 Legacy RTC 即可。
很可惜我的 ASUS Z390i 并没有该选项,只能通过改 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
}
}
}
将以上代码编译后放到 EFI/CLOVER/ACPI/patched 即可。https://www.tonymacx86.com/threads/fix-for-boot-hangs-after-bios-update-acpi-patch.275091/page-6 60 楼的 furter 同学提供了编译好的版本,直接下载使用即可。
2019.07.05
应评论区同学要求,更新编译好的文件:
参考
https://www.reddit.com/r/hackintosh/comments/awtcxn/hackintosh_will_not_boot_after_updating_to_asus/
https://www.tonymacx86.com/threads/a-solution-of-asus-new-bios-ver-2012-not-downgrading.273151/
https://www.tonymacx86.com/threads/fix-for-boot-hangs-after-bios-update-acpi-patch.275091/
1F Azrael 5 years, 7 months ago 回复
博主你好,我也遇到了相同的问题,你有编译好的版本么,能发我邮箱下么,那个链接打不开,感谢
2F binss MOD 5 years, 7 months ago 回复
回复 [1F] Azrael:已更新
3F Azrael 5 years, 7 months ago 回复
回复 [2F] binss:谢谢,我在config 加入
Comment
Fix RTC _STA bug
Disabled
Find
oAqTU1RBUwE=
Replace
oAqRCv8L//8=
后可以进入系统了
4F binss MOD 5 years, 7 months ago 回复
回复 [3F] Azrael:嗯,这也是一种可行的解决办法。但对于不同厂商不同版本的 BIOS,Find 的字符串可能不一样,所以在本文没有推荐这种方法。
5F monokeith 5 years, 7 months ago 回复
我要是早点看到这篇。。
我用的是PRIME Z390A, 刚强刷回之前的bios,现在变砖了,完全没显示输出,主板亮黄灯。。
6F hank9999 5 years, 6 months ago 回复
AUSU B360M 成功了,谢谢博主
7F 小黑果 5 years, 6 months ago 回复
Z390f 的efi 可不可以给我一下啊
8F chuwuuu 5 years, 6 months ago 回复
楼主我的B360I升级BIOS同样遇到卡logo情况,把那个文件放入EFI也没用诶
9F V 5 years, 6 months ago 回复
回复 [5F] monokeith:现在情况怎么样啦?我主板和你一样,同样也是升级 BIOS 后卡进度条。。
10F 文举 5 years, 6 months ago 回复
楼主你好,我碰到的和你一样的问题,笔记本华硕FL5900U,主板X556UQK,用了你的方法和3楼的方法,都不可以,还麻烦指导一下,哪里有要修改的地方没有?我的bios不是故意升级的,在四叶草页面,一不小心选错了启动,就自动升级了。现在后悔死了。不敢刷BIOS,求大神指导方法,谢谢
11F V 5 years, 6 months ago 回复
Z390-A 升级 BIOS 后出现相同问题,不知道能不能解决了
12F V 5 years, 6 months ago 回复
回复 [5F] monokeith:你的问题现在解决了吗?我的主板也是 Z390-A,也是更新 BIOS 后卡在进度条了
13F 文举 5 years, 6 months ago 回复
你用楼主的文件,和那个config的补丁,都不行吗?
14F V 5 years, 6 months ago 回复
回复 [13F] 文举:重新弄了一下,完美解决了。感谢
15F 方方 5 years, 4 months ago 回复
大神你好,我也是华硕笔记本无意间升级了BIOS,现在黑苹果也是卡在进读条,你的方法我不会弄,能详细说下如何找到并打开EFI文件并把你的文件放到 EFI/CLOVER/ACPI/patched
16F binss MOD 5 years, 4 months ago 回复
回复 [15F] 方方:通过其他硬盘上的系统进入(如果没有,可以 U 盘装个 PE 之类的),挂载黑苹果硬盘上的 EFI 分区,将补丁文件拷贝到 /EFI/CLOVER/ACPI/patched 下即可
17F 依然 5 years, 4 months ago 回复
回复 [15F] 方方:我上次找了一个kext 不知道放哪里去了,可以解决这问题
18F 小渣 5 years, 3 months ago 回复
你好,楼主,我是i7 8700,华硕b360,可以用你的方法吗
19F binss MOD 5 years, 3 months ago 回复
回复 [18F] 小渣:不确定是否适用,可尝试下,不行将补丁删除即可,无副作用
20F 小渣 5 years, 3 months ago 回复
回复 [19F] binss:我试了,可以启动了,十分感谢!
21F 四点 5 years, 3 months ago 回复
这个问题我见过三种补丁了。一个是通过把RTC _STA那改掉判断条件,If ((0xFF || 0xFFFF));一个是LZ这种通过SSDT-AWAC.asl让STAS=1;还有一种是SSDT-RTC0.dsl。殊途同归。
22F V 4 years, 12 months ago 回复
大佬,你的黑苹果升级到 10.15 了吗?最近心痒痒想把我的 z390-a 的黑苹果升级到 10.15,怕翻车想来问问你。
23F 大V 4 years, 9 months ago 回复
刚刚在我hp zbook g4 studio上验证,真是amazing了!!!谢谢大佬们
24F 0x00000001 4 years, 7 months ago 回复
试了好几种,貌似对我的没有用。。。 难受。。。
25F 阿飞 4 years, 1 month ago 回复
微星B360M今天升级了BIOS后发现进不了系统了,用了博主的方法修好了,非常感谢!
26F jiangzq18 4 years, 1 month ago 回复
微星B360 成功
27F 心动不语 3 years, 6 months ago 回复
博主,您好,主板是H370M DS3H,拿下BIOS电池后,应该是BIOS恢复出厂了,开机一直卡黑苹果,想问现在可以通过这个方法解决吗?教程不是很详细,有详细一点的教程吗!感谢。