用 OpenCore(OC) 准備裝黑蘋果時,發現進不了OC的菜單
一直卡在UEFI啟動圖那里。
問題描述
然后把 OpenCore 及所有相關的換成 Debug 版本,並把OC 日志級別調到最高
如果發現卡在 HdaControllerInitPciHw(): controller version 0.0
這里
當然如果日志級別沒調到最高,可能看到的是卡在
OC: Connecting drivers...
12:906 00:231 OCABC: MAT support is 0
13:194 00:287 OC: Driver OpenRuntime.efi at 4 is successfully loaded!
13:431 00:236 OC: Driver PartitionDxe.efi at 5 is being loaded...
13:676 00:245 OCABC: Recovering trashed GetMemoryMap pointer
13:914 00:237 OC: Driver PartitionDxe.efi at 5 is successfully loaded!
14:159 00:244 OC: Driver PartitionDxe.efi at 5 needs connection.
14:406 00:247 OC: Connecting drivers...
14:561 00:154 HDA: Starting for C84D5298
14:860 00:299 HdaControllerInitPciHw(): controller version 0.0
后面就都是空字符了
這里很明顯 HDA控制器版本是 0.0
,哪有版本號是全零的,絕對有問題。
於是我用另一台機子測試,剛好可以正常加載該聲卡驅動的,日志里顯示的 HDA控制器版本是1.0
之類的
16:617 00:345 OC: Connecting drivers...
17:016 00:399 HDA: Starting for C657BF18
17:278 00:261 HdaControllerInitPciHw(): controller version 1.0
17:587 00:308 HdaControllerInitPciHw(): capabilities:
64-bit: Yes Serial Data Out Signals: 0
17:864 00:277 Bidir streams: 0 Input streams: 0 Output streams: 2
18:220 00:356 HdaControllerGetName(): controller is Intel Ivy Bridge/Haswell HD Audio Controller
18:650 00:429 HdaControllerInstallProtocols(): start
19:027 00:376 Gotten here
后面還有很多日志
如果沒用 Debug 版本,你只能看到日志里都是空字符 (即0x00 )
然后我去借了群里別人 4 代機的配置,用
BeyondCompare
這個軟件對比兩個文本,調: 規則-對齊-Myers O(ND) 對准
雖然有幾個屬性值不同,但是和聲卡相關的不同配置卻有一個 驅動加載的地方,一下子就找到了重點。
解決方案
請檢查你 config.plist 里的 UEFI-Driver里是不是加載了聲卡驅動(如),有的話請刪掉
<string>AudioDxe.efi</string>
而官方文檔Haswell原文是這么寫的
也就是說:作為安裝盤,只應該加載 HfsPlus.efi
和 OpenRuntime.efi
原因分析及其后續優化
那台不能加載音頻驅動的機子,拔掉獨顯 HD7770 之后也能正常加載音頻驅動,所以應該是 AMD 獨顯的音頻沒有合適的驅動加載導致失敗。看了AppleALC支持列表,確實如此
最后,附上三個日志文件
HDAver0_ 開頭的是因不能加載音頻驅動而失敗的;HDAver1_ 是能加載了音頻驅動的另一台機子;H81m_NowOK_ 是取消加載音頻驅動后正常進入OC的日志。
最后,日志里還有卡EB問題,259:110 04:121 AAPL: [EB|#LOG:EXITBS:START] 2020-07-16T19:34:47
解決見我帖子 OC 常見問題解決方案(譯自官方文檔)_卡在 [EB|#LOG:EXITBS:START]