ASUSのBIOSを1105以上に更新すると起動しない

ASUSのZ390マザーボード、ROG MAXIMUS XI HERO WiFiのBIOSを最新版1105にアップデートしたところmacOSが起動しなくなりました。1005にダウングレードしたら復活しました。

BIOSアップデートで起動しない

ASUSの最新BIOS 1105が公開されていますが、これにアップデートするとmacOSが起動しなくなるとのことです。こちらのコメントで教えていただきました。検索すると色々なところで紹介されていました。

ならば試してみようということで、こちらのビルドで紹介したASUS ROG MAXIMUS XI HERO WiFiのBIOSをアップデートしてみました。

ROG MAXIMUS XI HEROは、BIOSからネットワーク接続してBIOSアップデートできます。この機能を使って最新の1105にアップデートしました。するとやはりmacOSが起動しませんでした。-vで起動すると起動途中で文字表示が止まってそのまま動かなくなります。apfs.efiなのかVirtualSMCのあたりのメッセージで止まります。

BIOSでRTCを設定する

この記事へのコメント欄で教えていただいた情報によると、原因はRTC (リアルタイムクロック)の関係のようです。BIOS設定でレガシーなRTCを使うように指定すれば解決するようです。RTCは、システムの日付や時計を管理しているだけでなく、割り込みでプログラムを制御するような使い方もされているようです。起動時に、RTC割り込みがある事を前提に作業を始めた起動プログラムが、RTCからの割り込みが発生しないために動作継続できなくなって、起動が止まってしまうようです。

上記のサイトでは以下のような設定画面の写真が紹介されていました。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へのパッチ

を当てることでも対応できるようです。これで新しい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を使っても解決しました。

まとめ

ということで、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が徹底的に破壊されても復活できると思われます。再びマザーボードを買い換えるときには、この種の機能を重視していきたいと思います。

18件のコメント

  1. B360 H370でもASUSマザーボードで同様なことが起きてましたね。
    ASUS ROG Strix B360-i Gaming motherboardでもRTC周りに問題がありました。
    https://www.tonymacx86.com/threads/a-solution-of-asus-new-bios-ver-2012-not-downgrading.273151/
    では、
    I changed the option from “ACPI Time and Alarm Device” to “Legacy RTC”.
    という、解があり、私の安いマザー(ASUS PRIME H370-A)では助かりました。
    多くの、指南書では、BIOSを新しくすることと書いてあるものが多いので、気を付けたいですねぇ。

    1. ありがとうございます。これは週末に試してみます。そういえばASRockのマザボの話でレガシーRTC設定にして解決できるってのを読んだ記憶がありました。リンク先にあるように、私のところの-vのログでも確かにSMCRTC:startのメッセージの後で落ちていました。BIOS設定の定石の一つになりそうですね。

    2. 私も週末が来たので、試してみました、基本的に上のパッチは、Z390向けということでしたが、
      https://www.tonymacx86.com/threads/fix-for-boot-hangs-after-bios-update-acpi-patch.275091/
      にあるように、
      「Its for my motherboard, can work with other z370,h370,b360 motherboards. I didnt had other systems to test.」
      ということなので、ASUS PRIME H370-A (BIOS 1402)で試したところ動きましたね(RTCをLegacyにしなくても動きました。)
      いちおう、各所に報告の一文を入れておきました。
      今のところは、簡便なのでBIOS設定の解法で行っています。

  2. 自分もgigabyte z370 aorus ultra gamin 2.0でBIOSをf3 -> F13にしたら起動しなくなりました
    検証とかが面倒でF3に戻して復活しましたが
    久しぶりに焦りました…

    1. それも多分レガシーRTCがデフォルトで無効にされた関係なのかもですね。ASRock, ASUS, Gigabyteとそうなっていく方向なのでしょうか。「レガシーRTCを使う設定にする」というのがHackintosh用BIOS設定項目の定番になりそうですね。

  3. 関係ないWin10の話ですが、録画ソフトでPCをスリープ復帰させるシステムで、
    UEFIを1105にアプデしたらスリープしていた時間が長いほど復帰時刻が遅れて
    録画冒頭5分とか切れてしまう現象に悩まされてダウングレードする方法を
    探してここにたどり着きました。
    別のPCは買った時からだったので探りようがなかったのですが、
    原因これっぽいなー。

    1. 面白いですね。ACPIのタイマーを使う新しい仕組みを使うとスリープ中にRTCの時間が進まないわけですね。そのうち対応するのでしょうが。

  4. TUF Z390M-PRO GAMINGにVega64を組み合わせて使っていたところサウンドが途切れる、ノイズが乗るといった問題が出まして、BIOS画面で確認するとx8で接続されていました。これはBIOSの問題かなと1002→2417にアップデートしたところ、見事に起動しなくなりました。
    不具合の解決のためですから戻すわけにも行かず(そもそもこのマザーボードは古いBIOSに戻せません)パッチを当てることで無事起動しました。接続もx16になっていることが確認でき、サウンドの途切れやノイズもなくなりました。
    こういうときに備えてEFIだけを入れたUSBメモリを用意しておくと何かと便利ですね。

    1. そうですね。EFIの内容だけはバックアップしておくと良いですね。いざとなったらUSBメモリなどのESPにコピーすれば良いので。

  5. 初めまして
    同じ状況で探しまわり、ここに辿り着きました。
    ROG MAXIMUS XI EXTREMEを最新のbiosにあげてしまい
    起動しなくなっています。
    USB BIOS Flashbacでダウングレードをトライしましたが
    ファイル名が違うのか完了出来ません。
    M11HW.CAPに変更しています。
    なにかアドバイスが有ればご教授願いたく
    レスさせて頂きました。

    よろしくお願い致します。

    1. ROG MAXIMUS XI EXTREMEのマニュアルをダウンロードして見てみたところ、ファイル名はM11E.CAPにすべき様です。製品ごとに違うようです。

  6. ご回答ありがとうございます。
    無事、起動できました。
    読み返してみると、非常に初歩的なミスで
    恥ずかしくなります。
    お手間を取らせたことをお詫び致します。

    10.5の時代からHacを作り始めたのですが
    仕事に使うようになったばかりに、昨日は焦ってしまいました。

    全てではありませんが、読ませて頂いて非常に勉強になります。
    今回はありがとうございました。

    bio

  7. ROG MAXIMUS XI HERO (WI-FI) で試していますが、おっしゃるとおり 1401でSystem Time Alarm Sourceでませんね。パッチだけ適用してみたのですが、Clover自体が起動しなくなってしまいました…。1005版に戻せば起動しますね。これではBIOS更新しないほうがよさそうですね…。

    1. 私は1401にしてメニューが出ないことを確認して、すぐに1005に戻してしまいました。ので気づかなかったのですが、パッチが効かなくなったのですか。このマザボだから良いけど、古いBIOSに戻れないマザボだと困りますねぇ。

      1. パッチの作り方が悪かったようで、再度トライしたら1401で起動できるようになりました。
        XMLをそのままコピーせずに手打ちしたらいけました!

        Catalina, Core i9 9900KS, 128GBのマシンできました!
        Geekbench5 で Single-core 1247, Multi-core 8792でした。

        1. 続報ありがとうございます。こちらでも1401でパッチが動くことを確認しました。また1005に戻しましたが🙂

  8. 情報に大変感謝です。
    昨年から安定稼働していたASUS Z390-Aマシンでしたが、Windows10を別ドライブにインストールしようしたところ、ハマってしまいました。

    試行錯誤の中で、マザーボードのBIOSのアップデートをしたらいいのかも!としなくてもいいことをしてるうちに、ひとまずWindows10もインストール完了したものの、Mojaveの入ったM2.SSDを取り付けてもMojaveが起動しなくなり、こちらのポストにたどり着きました。

    Z390-AにはBIOSのフラッシュバック機能がないため、M2.SSDを外付けケースに入れて、MacBook Proに接続して、EFIをマウントし、こちらでアップしていただいていたSSDT-AWAC.amlで無事に復活いたしました。ありがとうございました。こういうときに予備Macがないとしんどいですね。

    1. 復旧してよかったです。お役に立てて何よりです。
      予備Macはいろいろな場面で必要ですが、今回の件なら、UEFI Shellでも対応可能と思います。USBメモリにSSDT-AWAC.amlを入れておいて、UEFI Shellで起動ESPにcpすれば復旧可能かと思います。

      https://bootmacos.com/archives/1754

yasuji へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です