[Hackintosh] OpenCore で Ventura を立てる(2) EFI フォルダーを作成する

前回マザーボードの BIOS の設定をした。

[Hackintosh] OpenCore で Ventura を立てる(1) BIOS 設定 – with a Christian Wife
https://wacw.cf/2023/04/05/hackintosh-ventura-with-opencore-1/

次にやるのは OpenCore 用の EFI フォルダーの作成だ。

基本的に以下のサイトに従ったが、一部情報が古いところがあったり、自分用の設定のため変更している箇所がある。

ASUS Z390 + Coffee LakeのブートローダをOpenCoreにする – Boot macOS
https://bootmacos.com/archives/8895

Hackintosh はマシン構成等で設定が異なる。ネットの情報をそのまま真似してもうまくいかないことが多いので、試行錯誤が必要だ。

(1)【OpenCore の入手】

Kext Updater を以下のサイトからダウンロード。

Kext Updater – SL-Soft
https://www.sl-soft.de/en/kext-updater/

今回は Kext Updater 4.0.7 をダウンロードした。

Kext Updater を起動し、「Bootloader」をクリック。

「Plase select」で「OpenCore」を選択。再びドロップダウンメニューが出てくるので「OpenCore」を選択。「Download」をクリック。デスクトップにダウンロードされる。「OpenCore>Docs>Changelog.md」を確認すると、バージョン 0.9.0 のようだ。

(2)ダウンロードしたファイルのうち、X64 フォルダー内にある EFI フォルダーを編集して作業を進めていく。

その前に Docs フォルダー内にある Sample.plist を config.plist に名前を変えて EFI>OC フォルダーに入れる。

(3)【ACPI フォルダー(1)】

今回のマシンでは CPU が Intel CPU Core i3-8100 であり Coffee Lake-S だ。なので、以下の Coffee Lake 用の OpenCore マニュアルを参照する。

Desktop Coffee Lake | OpenCore Install Guide
https://dortania.github.io/OpenCore-Install-Guide/config.plist/coffee-lake.html

「ACPI」のセクションを見ると、以下の SSDT が必要だと分かる。

・SSDT-PLUG.aml
・SSDT-EC-USBX.aml
・SSDT-AWAC.aml
・SSDT-PMC.aml

それぞれ以下のページからビルド済みの aml ファイルをダウンロードした。ファイル名は上記のとおりにして、「EFI>OC>ACPI」フォルダーに入れる。

Fixing Power Management: Prebuilt | Getting Started With ACPI
https://dortania.github.io/Getting-Started-With-ACPI/Universal/plug-methods/prebuilt.html

Fixing Embedded Controllers: Prebuilt | Getting Started With ACPI
https://dortania.github.io/Getting-Started-With-ACPI/Universal/ec-methods/prebuilt.html#wrapping-up

Fixing System Clocks: Prebuilt | Getting Started With ACPI
https://dortania.github.io/Getting-Started-With-ACPI/Universal/awac-methods/prebuilt.html

Fixing NVRAM: Prebuilt | Getting Started With ACPI
https://dortania.github.io/Getting-Started-With-ACPI/Universal/nvram-methods/prebuilt.html

(4)【ACPI フォルダー(2)】

USB ポート 15 個制限の設定については、現時点の Mac で作業済みだ。

[Hackintosh] USB ポート 15 個制限用の SSDT を作成する – with a Christian Wife
https://wacw.cf/2023/04/05/usb-port-limits-with-ssdt/

生成された SSDT-UIAC.aml を「EFI>OC>ACPI」フォルダーに入れる。

USB ポート 15 個制限設定は、現時点で作業ができない場合、Ventura が動いたあとに後回しにしてもよさそうだ。

(5)【Drivers フォルダー】

「EFI>OC>Drivers」は OpenRuntime.efi と HfsPlus.efi のみ入れる。不要な Driver は削除し、HfsPlus.efi は以下からダウンロードしてくる。

OcBinaryData/HfsPlus.efi at master · acidanthera/OcBinaryData
https://github.com/acidanthera/OcBinaryData/blob/master/Drivers/HfsPlus.efi

(6)【Kexts フォルダー】

kext は Clover で使っていたものをそのまま「EFI>OC>kexts」へ入れればいい。僕はこれまで使っていた VoodooHDA.kext をやめて AppleALC.kext に変更している。つまり以下の kext を入れた。

・IntelMausi.kext
・Lilu.kext
・VirtualSMC.kext 
・AppleALC.kext
・WhateverGreen.kext
・USBInjectAll.kext

参考:
音を出す – Boot macOS
https://bootmacos.com/archives/120

Hackintosh に挑戦する 2018 – with a Christian Wife
https://wacw.cf/2018/08/22/hackintosh-2018/

Hackintosh に挑戦する 2019(2) – with a Christian Wife
https://wacw.cf/2019/08/21/hackintosh-2019-2/

(7)【Tools フォルダー】

「EFI>OC>Tools」は OpenShell.efi だけ残して他は削除する。

(8)【config.plist の編集】

(8-1)2の config.plist を ProperTree アプリで開く。

参考:
[Hackintosh] ProperTree をインストールする – with a Christian Wife
https://wacw.cf/2023/03/28/propertree/

(8-2)#WARNING で始まる最初4行を削除する(「右クリック>Remove~」で)。

(8-3)「File>OC Clean Snapshot」をクリック。「EFI>OC」を指定する。

これで ACPI や driver、kext 関係が自動設定が実行されるが、逆に言えば ACPI や driver、kext フォルダーの中身を変更するたびに OC Clean Snapshot を実行する必要がある。

(8-4)「Root>Kernel>Add」で Lilu.kext を1番めに、VirtualSMC.kext を2番めに、USBInjectAll.kext は一番最後に、項目をドラッグ・アンド・ドロップして変更する(つまり、kext 同士で依存関係がある場合、大もとのものを先に配置する)。

参考:
新ブートローダーOpenCoreを使う – Boot macOS
https://bootmacos.com/archives/5914

(8-5)【「Root>ACPI」の項目】

変更しなくていい。

(8-6)【「Root>Booter>Quirks」の項目】

以下を変更する。

・DevirtualiseMmio: True に。
・RebuildAppleMemoryMap: True に。
・SetupVirtualMap: True に。
・SyncRuntimePermissions: True に。
・Resize Apple GPU Bars: 0 に。(BIOS で Re-Size BAR Support を有効化したので。)

(8-7)Hackintool アプリの「PCIe」で「Subclass」が「Audio device」となっているものを調べる(そのためには現時点で Mac が動いている必要がある。僕は Clover で動いている Hackintosh があるが、それがない場合はどうすればいいんだろう)。

Releases · benbaker76/Hackintool
https://github.com/benbaker76/Hackintool/releases

Audio device が2つあったが、「Vendor Name」が「Intel Corporation」のほうだ。

この「Devide Path」をメモする。今回は「PciRoot(0x0)/Pci(0x1F,0x3)」だった。

参考:
OpenCoreで起動音を鳴らす – Boot macOS
https://bootmacos.com/archives/9961

(8-8)【DeviceProperties の項目(1)】

「Add」の項目が「PciRoot(0x0)/Pci(0x1b,0x0)」となっているので、(8-7)で分かった「PciRoot(0x0)/Pci(0x1F,0x3)」に値を変更する。

layout-id はあとで boot-arg で入力するので、そのままの値でいい。

AppleHDA.kext ではなく VoodooHDA.kext を使う場合は、(8-7)と(8-8)の設定しなくていいんだろうか(未検証)。

参考:
Liluとプラグイン:(2) AppleALCの使い方 – Boot macOS
https://bootmacos.com/archives/7134

(8-9)【DeviceProperties の項目(2)】

8-8 と同じ階層に以下のような新しい項目を作成する。

・Key: PciRoot(0x0)/Pci(0x2,0x0)
・Type: Dictionary

さらに以下の子項目を作成する。

・Key: AAPL,ig-platform-id
・Type: Data
・Value: 00009B3E

僕の環境では値を 07009B3E にすると、このあとのインストールがうまくいかなかった。

参考:
Desktop Coffee Lake | OpenCore Install Guide
https://dortania.github.io/OpenCore-Install-Guide/config.plist/coffee-lake.html#deviceproperties

(9)【Kernel の項目】

「Quirks」内の以下を設定した。

・AppleCpuPmCfgLock: False に(BIOS 側の設定で CFG Lock を無効化しているため)。
・AppleXcpmCfgLock: False に(BIOS 側の設定で CFG Lock を無効化しているため)。
・DisableIoMapper: False に(BIOS 側の設定で VT-d を無効化しているため)。
・PanicNoKextDump: True に。
・PowerTimeoutKernelPanic: True に。

(10)【misc の項目】

「Debug」内の以下を設定した。

・AppleDebug: True に。
・DisableWatchDog: True に。
・Target: 67 に。

「Security」内の以下を設定した。

・AllowSetDefault: True に。
・ScanPolicy: 0 に。
・Vault: Optional に。

(11)【NVRAM の項目】

「Add」内で以下を設定する。

・「7C436110-AB2A-4BBB-A880-FE41995C9F82」内の # で始まる行を削除する。
・US キーボードを使っているので、「prev-lang:kbd」の Value を 656e2d55533a30 にする。
・「7C436110-AB2A-4BBB-A880-FE41995C9F82」内の「boot-args」に debug=0x100 alcid=1 を追記する。alcid は layout-id であり、環境によって値を変える必要があるかもしれない。僕は1で大丈夫だった。

参考:
OpenCore 0.8.9 から0.9.0に更新 – Boot macOS
https://bootmacos.com/archives/21043

(12)【PlatformInfo の項目】

GenSMBIOS を使って、Serial、Board Serial、SmUUID を生成する。これも現時点で動いている Mac が必要だが、単なる文字列の生成のためなので、まったく別のマシンでも OK だ。

GenSMBIOSを使って機種情報を設定する – Boot macOS
https://bootmacos.com/archives/9597

そのうえで以下のように設定した。

・SystemProductName: iMac19,1
・SystemSerialNumber: GenSMBIOS で生成された Serial の値を入力。
・MLB: GenSMBIOS で生成された Board Serial の値を入力。
・SystemUUID: GenSMBIOS で生成された SmUUID の値を入力。
・ROM: マザーボードの BIOS で、Ethernet の MAC アドレスを : を除いた英数字で入力。Gigabyte H370 HD3 の場合、BIOS の「Peripherals」の項目に表示されている。

なお、GenSMBIOS には config.plist に直接値を書き込む機能もある。

参考:
[Hackintosh] MacInfoPkg で Board Serial Number 生成 – with a Christian Wife
https://wacw.cf/2019/08/17/generate-board-serial-number-with-macinfopkg/

(13)できあがった config.plist を以下のサイトでチェックを掛ける。

OpenCore config.plist Sanity Checker
https://opencore.slowgeek.com/

CPU は Desktop の Coffee Lake を選択し、Version に OpenCore のバージョンを指定するが、バージョンは 0.6.6 までしか選べない。とりあえず最新の 0.6.6 を選んだ。

サイトにアップロードする前に PlatformInfo の情報などは消しておいたほうがいいかもしれない。

エラーなどが出たら参考になるかもしれない。

Kext Updater にも OpenCore の config.plist をチェックする機能があるが、こちらのオンラインチェッカーのほうが細かくチェックできる。

Amazon | 2021 Apple MacBook Pro (16インチ, 10コアCPUと16コアGPUを搭載したApple M1 Proチップ, 16GB RAM, 512GB SSD) – スペースグレイ | Apple(アップル) | パソコン・周辺機器 通販
https://amzn.to/3zBhMkt