ASUSのZ390マザーボード、ROG MAXIMUS XI HERO WiFiのBIOSを最新版1105にアップデートしたところmacOSが起動しなくなりました。1005にダウングレードしたら復活しました。
Table of Contents
BIOSアップデートで起動しない
ASUSの最新BIOS 1105が公開されていますが、これにアップデートするとmacOSが起動しなくなるとのことです。こちらのコメントで教えていただきました。検索すると色々なところで紹介されていました。
Hello, I am having an issue with my build, its been a long time since I played with hackintosh.The error seems to be Apple NVME Assert FailedI am using a Asus Maximus XI Hero Z390 with a Intel 9700K, and a MSI RX Vega 64 Card.I have gone through all the BIOS Settings and ensured they are... Mojave Installation Issue - ASUS Maximus XI Hero II Z390 - tonymacx86.com |
ならば試してみようということで、こちらのビルドで紹介したASUS ROG MAXIMUS XI HERO WiFiのBIOSをアップデートしてみました。
Coffee Lake-S Refreshの作例です。スリープ、iMessage、FaceTimeが機能します。純正無線ユニットを使用しているのでContinuity関連も問題ありません。過去に公開した記事のまとめです。このマシンは常用していますので、ここで紹介している作例で一番自信のある構成です。macOS 10.15.3に対応したEFIフォルダの中身をこちらに置いておきます。シリアル番号とUUIDは有効ですが、ネット接続する前に必ず変更してください。ハードウェア マザーボードはASUS ROG MAXIMUS HERO WIFI (国内ではWiFi付モデルのみのようです。WiFi/BTは動作... ASUS ROG MAXIMUS XI HERO (Z390), 9900K - Boot macOS |
ROG MAXIMUS XI HEROは、BIOSからネットワーク接続してBIOSアップデートできます。この機能を使って最新の1105にアップデートしました。するとやはりmacOSが起動しませんでした。-vで起動すると起動途中で文字表示が止まってそのまま動かなくなります。apfs.efiなのかVirtualSMCのあたりのメッセージで止まります。
BIOSでRTCを設定する
この記事へのコメント欄で教えていただいた情報によると、原因はRTC (リアルタイムクロック)の関係のようです。BIOS設定でレガシーなRTCを使うように指定すれば解決するようです。RTCは、システムの日付や時計を管理しているだけでなく、割り込みでプログラムを制御するような使い方もされているようです。起動時に、RTC割り込みがある事を前提に作業を始めた起動プログラムが、RTCからの割り込みが発生しないために動作継続できなくなって、起動が止まってしまうようです。
Sorry for my bad English. It's not my native language.I'm using ASUS ROG Strix B360-i Gaming motherboard with Samsung PM961 Nvme SSD.After I update the BIOS to version 2012, I have also ran into the problem that my hackintosh never boot again.It just stucks at the progress bar with Apple... A solution of ASUS new bios ver.2012 (not downgrading) - tonymacx86.com |
上記のサイトでは以下のような設定画面の写真が紹介されていました。ASUSのBIOSメニューの、Advanced–>PCH Configuration–>System Time and Alarm SourceをLegacy RTCにすれば良いようです。メニューの内容などから判断すると、ACPIが提供するタイマー・アラーム機能を利用する方式がデフォルト設定になったため、Clover + macOSが対応できなくなったようです。従来型のRTCのタイマー・アラーム機能を使用するよう設定すれば、macOSを起動できるようです。
ところがどういうわけか、ROG MAXIMUS XI HEROのBIOS ver. 1105の画面にこの選択肢が出てきません。
IOAPICのエントリーの選択肢は、以前のBIOSでは表示されていました。今回は、それも無くなっていました。もしかしたら次のバージョンでRTCの選択肢が出てくるようになるのかもしれません。という事で、BIOSでLegacy RTCを指定する方法は使えませんでした。
追記:1302でもダメでした
2019/9/11付で1302が公開されていたので、アップデートを試みました。やはりそのままでは起動せず、また、System Time Alarm Sourceのメニューも現れませんでした。下記に説明したUSB BIOS Flashbackの方法で1005に戻しました。(2019年9月29日)
追記:1401でもダメでした
2019/12/11付で1401が公開されていたので、アップデートを試みました。やはりそのままでは起動せず、また、System Time Alarm Sourceのメニューも現れませんでした。下記に説明したUSB BIOS Flashbackの方法で1005に戻しました。(2019年12月21日)
パッチを当てる
ASRockのマザーボードなどでに必要とされていたDSDTへのパッチ
Hi guys,Just a quick update on my hackintosh. I spend the last two days trying to install Mojave but I was stuck even before loading the installer.If you want to use this board, you need to use the 1.20 bios.I did a downgrade and now everything is working, wifi, bluetooth (I changed the... Mojave on ASRock Z390 Phantom Gaming-ITX/ac - tonymacx86.com |
を当てることでも対応できるようです。これで新しいBIOSでもmacOSが起動したそうです。以下のパッチをconfig.plistのACPI\DSDT\Patchesに書き込めば良いようです。
<dict> <key>Comment</key> <string>Fix Z390 BIOS DSDT Device(RTC) bug</string> <key>Disabled</key> <false/> <key>Find</key> <data> oAqTU1RBUwE= </data> <key>Replace</key> <data> oAqRCv8L//8= </data> </dict>
ただ、パッチを当ててまで新しいBIOSが使いたいわけでなないです。そこで、ダウングレードすることにしました。ところが…
BIOSダウングレード出来ない
失敗したら古いバージョンにダウングレードすすれば良いと思って、気楽に手がけたのですが、実は簡単ではありませんでした。実際に試したところ、1105より古いBIOSでは、BIOS画面からEzFlashというツールを起動して、古いBIOSイメージを指定すれば、簡単にBIOSダウングレードできました。しかし最新の1105では、1105より古いバージョンのBIOSイメージを指定すると、適切なBIOSでは無いと言われてインストールしてくれません。
USB BIOS Flashbackでダウングレード
MAXIMUS XI HEROにはUSB BIOS Flashbackという機能があります。ネットワークやUSBメモリからBIOSを更新できるEzFlashはBIOSのメニューから起動するツールで、搭載したCPUやメモリーを使用して動いています。これに対してUSB BIOS Flashbackは、CPUやメモリーを搭載していなくても動く更新ツールです。おそらくマザーボード上に専用のマイクロコンピュータを搭載していて、CPUの力を借りずにBIOS更新する仕組みかと思います。BIOS更新のためにわざわざコンピュータを搭載していると考えると、とても贅沢に思えます。上位機種のマザーボードにしか搭載されていません。これでBIOSダウングレードを試しました。
USB BIOS Flashbackを使用するには、FATでフォーマットしたUSBメモリーのルートに、更新したいBIOSイメージをM11HW.CAPという名前で置いておきます。これをバックパネルの、USB BIOS Flashback用のUSBポートに挿しておきます。PS/2コネクタ下にあります。次に、電源を切った状態で、バックパネル左端のUSB BIOS Flashボタンを3秒ほど長押しします。するとこのボタンが点滅を始めます。あとは点滅が終了するまで待つだけです。自動的に再起動しなければ電源投入します。2-3回再起動した後、インストールしたバージョンのBIOS画面になります。ここでmacOS向けの設定をすれば良いです。
今回は、1105の一つ前のバージョンである、1005に戻すことにしました。そこで、ROG-MAXIMUS-XI-HERO-WIFI-ASUS-1005.CAPをM11HW.CAPという名前に変更して、USBメモリに入れました。ちなみに現在の設定は、工場出荷状態に加えて、
- Intel (VMX) Virtualization Technology –> [Enabled]
- Memory Remap –> [Disabled]
- iGPU Multi-Monitor –> [Enabled]
- Connectivity mode (Wi-Fi & Bluetooth) –> [Disabled]
- XHCI Hand-off –> [Enabled]
です。
SSDTで対応する
追記です。こちらの記事で紹介しましたようにSSDT-AWAC.amlを使っても解決しました。
Intel 300チップセットを搭載した現行のマザーボードからRTCの扱いが変わりつつあるようです。これが原因でmacOSの起動に失敗する事があります。DSDTへのパッチをconfig.plistに加える、もしくはBIOSで設定する事により回避できます。BIOSをアップデートして失敗したというこちらの記事で紹介した内容ですが、いまやHackintoshを作る上での一般的な注意事項になったと思います。なので、GUIDESカテゴリーに見合った内容に書き直して再掲します。Real Time Clock (RTC)コンピュータは、ファイルのタイムスタンプ管理やネットワーク同期... 300チップセットマザーボードのRTC設定 - Boot macOS |
まとめ
ということで、ACPIのタイマー・アラーム機能を使うようになった最新のマザーボードでは、BIOSで古い形式のRTCを使うように設定する必要があります。ASUSのBIOSメニューでは、Advanced–>PCH Configuration–>System Time and Alarm SourceをLegacy RTCにすれば良いです。この設定ができない場合は、config.plistにパッチを書き込むことでも解決します。このマザーボードではどういうわけか、BIOSでLegacy RTCを選択できませんでした。そこで、パッチを当ててまで新しいBIOSを利用する必要はないと判断して、古いBIOSに戻しました。BIOSをダウングレードするために、マザーボードのFlackback機能を使用しました。
今回、マザーボードにとってBIOSを復活させる機能が重要だと思い知らされました。USB BIOS Flashbackならば、BIOSが徹底的に破壊されても復活できると思われます。再びマザーボードを買い換えるときには、この種の機能を重視していきたいと思います。