300チップセットを搭載した現行のマザーボードからRTCの扱いが変わりつつあるようです。これが原因でmacOSの起動に失敗する事があります。DSDTへのパッチをconfig.plistに加える、もしくはBIOSで設定する事により回避できます。WiFiのBIOSを最新版1105にアップデートしたところmacOSが起動しなくなりました。1005にダウングレードしたら復活しました。1105が公開されていますが、これにアップデート...で紹介した内容ですが、いまやHackintoshを作る上での一般的な注意事項になったと思います。GUIDESカテゴリーに見合った内容に書き直して再掲します。(RTC)コンピュータは、ファイルのタイムスタンプ管理やネットワーク同期など、いろいろな場面で正確な日付と現在時刻を必要とします。そこで、コンピュータの電源がoffになっても、日付と現在時刻を更新し続ける水晶時計機能が用意されました。RTCは小さな部品としてマザーボードの片隅に載っていました。今ではチップセットに組み込まれています。RTCは、マザーボードの電源が切られた場合でも、マザーボード上のコインバッテリーで動き続けます。ちなみに太古のコンピュータにはRTCはありませんでした。コンピュータ室を占拠する大型計算機も、AppleやNECの初期のパソコンも、電源を入れて最初に行う仕事の一つが、今日の日付と現在時刻の入力作業でした。RTCは現時刻を知る時計として使われるだけでなく、プログラム実行のきっかけを提供する目覚まし時計としても使われます。RTCにはコンピュータ作業に割り込みをする機能があり、割り込みで起動するタスクやスレッドを設定可能です。毎日決まった時間に行う仕事、一定時間で繰り返す仕事などを設定しておけます。仕事の時間切れ管理にも使われます。特定のハードウェアがコンピュータに装備されているかどうかを確認する作業を考えてみます。そのハードウェアに、あなたは存在しますか?と問いかけるのですが、返事をじっと待っていては時間の無駄です。装備されていないために、永遠に返事が来ない可能性も高いです。そこで確認呼びかけと同時に、RTCに例えば10秒後にアラームしてくれるようにお願いします。すれば、返事を待つ間に別の仕事を実行したり、待っている間は休眠して他のスレッドにCPU資源を譲ることもできます。このように、外部デバイスにアクセスしつつ、アラームを仕掛けて返事を確認する作業は、macOSの起動時にもいくつも行われているようです。このような過程で、もしRTCのアラーム機能が動かなければ、macOSの起動が止まってしまう可能性があります。RTCの世代交代300シリーズチップセットになってRTCの世代交代が進んでいるようです。Alarmデバイス(長いので以下、ACPI時計と書きます)に移行しているようです。ACPI時計を使う事がデフォルト設定になりつつあるようです。ACPI時計ではOSが起動しないところが、ACPI時計を使うとmacOSの起動が止まってしまうようです。最初に紹介した過去の記事では、ASUSのZ390マザーボードのBIOSを1105に更新したところ、ACPI時計がデフォルトで使われるようになってしまって、macOSが起動しなくなったことを書きました。-vで起動すると起動途中で文字表示が止まってそのまま動かなくなります。apfs.efiなのかVirtualSMCのあたりのメッセージで止まります。そのあたりの処理(apfsなら起動ドライブへのアクセスかもしれません)でRTCの割り込みが効かなくなり、処理が止まってしまったような様子です。RTCがACPI時計に置き換わって、使えなくなったのが原因だと思います。Cloverの問題なのか、macOSそのものがRTCに依存しているのかわかりませんが、この問題に対策を施さないとmacOSが起動しません。実はこの問題は、1年以上前からASRockのマザーボードで発生していました。ASRockはいち早くACPI時計をデフォルトにしたようです。これを回避するパッチが見つかるまで、ASRockのマザーボードではmacOSが起動しない状態がしばらく続きました。HackintoshするならASRockは避けた方が良いかなと思っていたところ、数ヶ月後のBIOSアップデートでASUSのマザーボードも同様にACPI時計がデフォルトになってしまいました。フォーラムの方で教えていただきましたが、MSIのマザーボードでもACPI時計がデフォルトになっているようです。GIGABYTEの様子は把握していませんが、おそらくここ1年くらいで、どのマザーボードもレガシーRTCからACPI時計に移行していると思われます。この対策として次の2つの方法があります。対策1:パッチを当てる幸いなことに、ASRockのために配布されたパッチは、他のマザーボードでも動くようです。こちらで紹介されています。is...パッチの元記事によると、「ASRockマザーボードのDSDTのバグで、そのうちASRockが治してくれると思うけど、とりあえずこのパッチが動く」という意見らしいです。このパッチが他のマザーボードでも有効らしいので、ASRock限定のバグ対策では無い気がします。これはACPI時計への移行を無効にしているパッチ、もしくはACPI時計を利用する問題点を回避するパッチなのではと思われます。Patchesに以下の記述をすることです。BIOSでRTCを選択するACPI時計への移行をやめて、レガシーなRTCを使い続ける設定が一部のBIOSにあるようです。以下で紹介されています。Sourceの設定があります。RTCに変更すれば良いようです。ところが全てのマザーボードにこのメニューが出てくるわけではないようです。1401の画面にはこの選択肢が出てきません。したら将来のバージョンでRTCの選択肢が出てくるようになるのかもしれません。RTCを指定する方法は使えません。古いBIOSを使い続けるレガシーなRTCがデフォルトになっている古いBIOSからアップデートしないという消極的な解決策もあります。いろいろなバグが修正されているはずなので、一般的には最新バージョンの方が気持ち良いです。BIOSに限っては、動いているなら更新するなと注意しているメーカーのページも時折見かけます。全ての環境を網羅して動作試験を行うことは困難なので、問題なければアップデートして欲しくないという事情もわからないではありません。古いまま使い続けるのは良い選択肢かもしれません。うっかりアップデートしてしまっても、古いBIOSがメーカーサイトで配布され続けていますので、それに戻せば良いです。新しいBIOSにすると、通常の手順では古いバージョンに戻せなくなる場合があります。Flashbackという機能を使って古いバージョンに戻しています。まとめ現行のマザーボードがレガシーRTCからACPI時計に移行した事でmacOSが起動しない問題が発生することがあります。この問題は、DSDTへのパッチをconfig.plistに加える、もしくはBIOSで設定する事により回避できます。一般的にパッチは、本来の設定を無理やり変更する性質のものです。本来の機能に副作用が出る可能性があります。将来のアップデートでパッチターゲットのパターンが変更になり、パッチが効かなくなる可能性もあります。可能ならばBIOSメニューの設定を行う方法が望ましいと思います。いえ、いろいろなハードウェアでこのパッチは正しく機能している様です。安心して使って良いと思います。コメントをキャンセルメールアドレスが公開されることはありません。date*「名前」「メールアドレス」「サイト」は空白でも投稿できますが、日本語が含まれない投稿は無視されます。