OpenCoreの設定を行うツールOC Gen-Xを使ってみました。Z390 + 9800Kで構成したマシンのために、このツールでEFIフォルダを作成しました。多少の手直しは必要ですが、そのまま起動するEFIフォルダが出来上がりました。
Table of Contents
OC Gen-X
フォーラムで便利だったという話をお聞きして、試してみることにしました。夢日記にも紹介されてます。OpenCoreの設定を楽にするツールは、いくつかあるらしいですが、Dortaniaさんのガイドに、configuratorは使うな、手作業で設定せよ、と書いてあったので、避けてました。OC Gen-Xは、そのDortaniaさんのガイドに準拠したconfig.plistを生成するとの説明があるので、良いのかもしれないと思い、試してみることにしました。以下からダウンロードできます。
現用マシンと同じ設定をする
今使っているASUS ROG MAXIMUS XI HERO + 9800Kの構成でインストールしたOpenCore 0.6.3 Big Surの組み合わせで使っている構成を目指して同じように設定を試みました。
OC Gen Xを起動して、タブを選んで項目を選択していきます。最初はプロセッサーです。Z390 + 9800KなのでCoffee Lakeを選びます。
次はKextです。使用中のKextを選びました。Lilu, VirtualSMC, SMCProcessor, SMCSuperIO, WhateverGreen, AppleALC, IntelMausiを選びます。Kext選択は、システムに依存しますし、知識も必要なので、初見で簡単に決められる作業ではないですね。さらに、自前で作ったUSBポートの設定kextは、当然ですがここでは選択できないです。
Firmware Driversは、OpenRuntimeとHfsPlusを選びます。今はVBoxHfsを使っているのですが、HfsPlusの方が高速なはずです。外に、ブートの見た目をよくするためにOpenCanopyを使ってますが、これは選択肢に出てこないです。
次はSMBIOSの設定です。System Model, Serial Number, MLB, UUIDに、今使っているそのままの値を入れました。System Model (機種ID) はiMac19,1です。
起動オプションも、現用と同じ
-v keepsyms=1
を書き込んでおきました。
これでGerate EFIボタンを押すと、デスクトップにEFIフォルダが出来上がります。
完成したEFIフォルダを確認
デスクトップに作られたEFIフォルダを確認します。config.plistが出来上がっていて、OpenCore関連のファイル類も入ってます。またKextsとDriversフォルダには設定したファイルが入っていました。下の図のように、OC Gen-X.appの中のContents/Resourcesの中に、OpenCoreとkext類の一式が入っています。これがそのままコピーされたのだと思います。OpenCore, kext, efiの最新版が出ていたらこちらを差し替えれば良いと思いました。
ただし、ACPIフォルダは空です。これも用意してくれれば良いのにと思いました。ここは手作業で入れておきます。Coffee Lakeに必要なACPI類は、
- SSDT-PMC.aml
- SSDT-PLUG.aml
- SSDT-EC-USBX.aml
- SSDT-AWAC.aml
です。ACPIフォルダにamlファイルを追加したので、config.plistにも反映しておかねばなりません。ProperTreeの機能を使いました。元々はACPIの記述は何もありません。
ProperTreeのShapShot機能を使うと、今追加した4個のamlファイルが追加されました。
起動するかどうかを試す
ここまで行ったステップは、
- OC Gen-Xを使ってEFIフォルダを作る
- ACPIファイル(aml)を追加する
- ProperTreeのsnap shot機能を使う
の3ステップです。使用すべきkextファイルがわかっているとか、シリアル番号などは決めてあるとか、使用すべきamlファイルが手元にあるとか、ProperTreeを用意しておくなど、下拵えは必要ですが、それが準備できていれば、3分くらいでEFIフォルダが完成すると思います。
では、このEFIフォルダで起動するでしょうか?
HFS+でフォーマットしたUSBメモリを用意して、これのEFIフォルダに書き込んで試しました。BIOSでUSBメモリを設定して起動したところ、なんと問題なく起動しました!
- USBの15個対応のkextを入れてないのでUSBの一部が動かない
- その関係でBluetoothが動かない
- サウンドの設定をしていなかったので音はまだ出ない
などの問題はあるものの、これは設定を行えば済むことです。とりあえず起動を目指すには、便利なツールだと思いました。
config.plistを比較する
自動生成されたconfig.plistを、いろいろ調整して作っていた自家製config.plistと比較しました。以下の項目は、実質的に同じ内容でした。
- ACPI
- Booter
- UEFI
以下の項目で自動生成版と自家製版config.plistが違いました。
DeviceProperties
自動生成されたconfig.plistのDevicePropertiesにはデバイスの記述がありません。自家製config.plistには、サウンドとiGPUの設定がしてあります。音が出なかった原因はこの設定がなかったことです。iGPUは設定なしでも起動できましたが、構成によっては(特にiGPUを使う場合)起動しない可能性があります。DevicePropertiesに記述がないと動かないデバイス(特定のLANチップなど)があるとその機能は動かないことになります。
Kernel
いろいろ工夫して加えていたkernelパッチ(光ディスクのスリープ対策とリムーバブルベイのホットプラグ対策)が自動作成版に無かったのは当然ですが、これらは起動には問題ない項目です。
Quirksは、いくつか違ってました。自動作成版はDortaniaガイドのデフォルトに従っています。自家製設定と比較すると、ガイドの一部を変更していた項目が違ってました。以下にそれを示します。でも、いずれも起動には問題なかったです。
- AppleCpuPmCfgLock: BIOS設定で設定したのでここで対応する必要がなく、デフォルトを変更してfalseにしてます。
- AppleXcpmCfgLock: BIOS設定で設定したのでここで対応する必要がなく、デフォルトを変更してfalseにしてます。
- DisableIoMapper: デフォルトを変更してfalseにしてます。
- DisableRtcChecksum: デフォルトを変更してtrueにしてます。
- XhciPortLimit: USB 15個制限を無理やり回避する項目です。ちゃんと対策してfalseにすべき項目です。デフォルトではtrueですが、今回の実験ではそれでも一部のUSBポートが機能してませんでした。対応するkextを作ってデフォルトを変更してfalseにしてます。
Misc
Debugカテゴリーのうち、自家製版では、AppleDebug, ApplePanic, DisableWatchDogのデフォルトを変更してfalseにしてます。またDisplayLevelを2147483648にしてます。
Securityカテゴリーでは、ExposeSensitiveDataを7に、ScanPolicyを19858179にしてましたが、これは大した違いではないです。自動生成版では、SecureBootModelがdisabledになっていますが、0.6.3からはSecureBootModelはdefaultで良いようです。でもどちらでも起動はします。
NVRAM
自動生成では、prev-lang:kbdがデフォルトのロシア語になってます。自家製版では、これを英語(16進数で656E2D55533A30)にしてます。
PlatformInfo
自動生成版ではmemoryに関する記述が増えています。ただ、システムの値を自動的に使う設定にもなっているので、ここは無駄なところかと思いました。それ以外は、手作業で設定していたconfig.plistと同じでした。
まとめ
OpenCoreのEFIフォルダ内容を作成するツール、OC Gen-Xを使ってみました。ACPIのファイルを設定する機能が無いこと、config.plistの設定でできれば直したいと思う点も多少はあるものの、起動するEFIフォルダーを短時間で作ることができました。初めて挑戦する環境でhackintoshするときに、とても役立つと思いました。OpenCoreにたくさんあってややこしいQuirksの設定をとりあえず無難にこなしてくれるだけでも助かります。