Pioneerの光学ドライブを使用していると「空のdvdがセットされました」というメッセージが出て、操作不能になることがあります。Cloverのconfig.plistでパッチを当てて対処していたのですが、OpenCoreに移行したので同様のパッチを当てました。
Table of Contents
Cloverで使用していたパッチ
「空のdvdがセットされました」というエラーメッセージが出ることの原因と対策をこちらの記事で紹介しました。macOSがPioneerのドライブにスリープ指令を送りつけると、スリープ後も復帰しないことが原因のようです。そこで、光学ドライブにはスリープ命令を送らないように、macOSでは設定してあるらしいです。
現行のMacintoshからはすっかり駆逐されてしまった光学ドライブですが、Hackintoshなら5.25インチベイ搭載ケースを使っていくらでも復活できます。CD-ROMでもDVDでもokです。実機にはついぞ搭載されなかったBlu-rayドライブも搭載可能です。1台だけでなく2台3台と搭載することだって可能です。読み出すだけじゃなくて書き込むこともできます。搭載するに当たって、特に難しいことはありません。SATAケーブルと電源を配線するだけです。「可能な場合でもハードディスクをスリープさせない」簡単、かんたん、a piece of cakeだと思ってい... 光学ドライブを使う - Boot macOS |
なので、本物のMacと同型番のPioneer DVDドライブを使っていれば、操作不能に陥る問題は多分発生しないです。でも違う型番、例えばBDドライブを使う場合は、PioneerSuperDrive.kextにパッチを当てて、本物のMacが搭載している型番 (DVD-RW DVR-105) を、hackintoshで使用している型番 (例えばBD-RW BDR-205) に書き換えることで、この問題を解決できます。実際には、config.plistに以下のパッチを追加していました。これでスリープ命令が送られなくなり、操作不能に陥ることを回避できました。
<key>KextsToPatch</key> <array> <dict> <key>Comment</key> <string>PioneerBD-RW No Sleep</string> <key>Find</key> <data>RFZELVJXICBEVlItMTA1</data> <key>Name</key> <string>PioneerSuperDrive</string> <key>Replace</key> <data>QkQtUlcgICBCRFItMjA1</data> </dict> </array>
OpenCoreに移行したところ、再び、「空のdvdがセットされました」というエラーメッセージが出るようになりました。Cloverで使っていたパッチと同様の内容を、OpenCoreのconfig.plistにも書いておく必要があるようです。
CloverのKextToPatchをOpenCoreに移行する方法
OpenCoreには、CloverのようなKextToPatchの項目はありません。OpenCoreで、カーネルとkextに対してパッチを当てる項目は、Kernel, Patchの場所です。また、書式もCloverのパッチとは多少異なります。上記のCloverのパッチを、OopenCoreで書く場合は、以下になります。ちなみにReplaceの値は、BD-RW BDR-205の型番になっています。他の型番の光学ドライブを使用している方は、その型番に書き換えてください。詳しくは、以前の記事をご覧ください。
<key>Kernel</key> <dict> <key>Patch</key> <array> <dict> <key>Comment</key> <string>PioneerBD-RW No Sleep</string> <key>Count</key> <integer>1</integer> <key>Enabled</key> <true/> <key>Find</key> <data>RFZELVJXICBEVlItMTA1</data> <key>Identifier</key> <string>com.apple.driver.PioneerSuperDrive</string> <key>Replace</key> <data>QkQtUlcgICBCRFItMjA1</data> </dict> </array> </dict>
Cloverと比べてOpenCoreでは、一部のキーが削除追加されています。OpenCoreのサンプルconfig.plistを見ると、もっとたくさんのキーがあります。ただOpenCoreのパッケージに付属するマニュアルを読んでみたところ、デフォルト値のままで問題ないキーが多かったです。それらは省略しました。
Cloverのkeyのうち、Comment, Find, ReplaceはOpenCoreでも同じ名前で、同じ意味です。つまり、Commentは人が読むためのメモ書き、Findは検索データ列、Replaceは置き換えるデータ列です。これらはCloverの内容からそのままコピーしました。
Cloverでは、kextをファイル名(この例ではPioneerSuperDrive)で指定していました。使用するキーの名前はNameでした。OpenCoreでは、Idenetifierというキーで指定します。URLを逆順にしたような形式の一意の名前なので、より正確です。PioneerSuperDrive.kextがどのようなIdentifierなのかは、システム情報の拡張機能で、該当するkextを選択すると調べられます。
identifierは、バンドルIDという項目に書いてあります。以下のようです。Identifierの項目にはこれを書いておきます。
com.apple.driver.PioneerSuperDrive
Enabledキーでは、このパッチを有効にするかどうかを指定します。デフォルトがfalseですので、明示的にtrueを書いておかないと有効になりません。なので追加しました。
Countキーは発見された項目を何個置き換えるかを指定する箇所です。1個置換えてくれれば十分(それ以上検索する必要は無い)なので、1を指定しておきました。デフォルトは0で、それは発見できうる限り全て置換するという指定です。1箇所変換することで十分ならば、Countには1を指定したほうが、残りの部分を全部検索するという無駄な処理が不要になるので、高速になると思います。
このパッチをOpenCoreのconfig.plistに追加したところ、Pioneerのブルーレードライブが正常に動くようになりました。パッチを施したconfig.plistを以下に置いておきます。もしこれを使用する場合は、SystemSerialNumber、SystemUUID、MLB、ROMの値を必ず置換えてください。
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time. OpenCore config.plist for 9900K - Pastebin.com - Pastebin |
PlistEDPlusで編集
(追記)PlistEDPlusでOpenCore 0.6.9のconfig.plistを編集する様子を以下に示します。いくつか項目が増えていますがデフォルトで良いです。データがASCII表示もされるので確認が楽です。
まとめ
Cloverに当てていた光学ドライブのパッチを、OpenCoreのconfig.plist用に書き換えて動作を確認しました。CloverとOpenCoreでは、パッチのキー構成が多少違います。Cloverに当てていた他のkext用パッチも、必要に応じてOpenCoreに移行して、動作を確認していこうと考えています。