RX580 で mac と Android のデュアルブートの夢を見る

夢を見ました。

夢の中のお話なので、備忘録として。

構成

知人からのお下がりのマシン。ありがたい。

  • マザー: MINIX H61M-USB3
    • チップセット: Intel H61 Express(6 series)
    • オーディオ: Realtek ALC892
    • イーサネット: Broadcom 57788
  • CPU: i5-3570
    • iGPU: HD2500
  • dGPU: Radeon RX 580

参考になったウェブサイト

これが大事。

必要なもの

  • マシン
  • Mac 本体
    • インストーラを作って Clover を入れるため
  • Clover Configurator
    • 設定項目が多すぎるので、最初のうちは使うと便利
    • バグもほとんどないし直感的なので、普通に使ってかまわない
  • Hackintool
    • デバイスの状態が見られるので、入れておくと便利
  • SystemRescueCD
    • ブートできなくなったりしたとき、パーティションを詳細に設定したくなったとき、efibootmgr を使いたくなったときに使う
  • ググり力
  • 根気

手順

  1. USB メモリにインストーラを焼く
    • GPT+JHFS+
  2. Clover を USB メモリに入れる
    • SIP を無効化しておく必要がある
  3. Clover をチューニングする
  4. BIOS をチューニングする
  5. インストールする
  6. Clover をインストールしたマシンに入れる
  7. Clover の設定をコピーしてチューニングする

BIOS の設定

基本的には

  • SATA は AHCI
  • XHCI Hand-off は有効
  • VT-D は無効
  • (dGPU をメインにするなら)iGPU は無効 or dGPU を primary

ほぼこれだけで事足りるっぽい。

Clover のチューニング

基本的には Hackintosh Vanilla Desktop Guide を読んでそのとおりに設定する。Intel の iGPU を使う場合には、WhateverGreen のマニュアルも読みこんで設定する。

なんでもかんでもオンにすればよいというわけではないので、結構タイヘン。原則は「なるべくいじらない」。

なお Clover がデフォルトで書いてくれる config はグチャグチャなので、まっさらな状態から作ったほうがよい。

Devices は適当に設定しても Clover が勝手に必要なものだけ選んでくれるっぽいので、多少雑でもよさそう。

ある程度の設定は Clover のブート画面で変更できるので、ミスったときはそれを使うと便利。あと config ファイルも変えられるので、複数用意したりバックアップを作ったりしておくと安心。どうしても無理になったら SystemRescueCD に頼る。

SMBIOS

Mac のモデルを決定する場所。CPU の PowerManagement とか、ディスプレイの処理とか、DRM とか SideCar とか TouchBar とか、いろいろ結構違うので、この選択は大事。

Clover Configurator だとポチってするだけで設定できる。

SMBIOS はなるべく CPU の世代に合わせることが推奨されていて、ssdtPRGen.sh のモデルリストを参考にするとよいが、実際には古い SMBIOS ほど不具合が多いので、無理に新しいマシンにしてしまってもさほど問題はない。僕は Ivy 対応の SMBIOS で 4K に対応しているものがなかったのと、shiki の関係で、iMacPro 1,1 にしている。普通に問題なく動いている。

SMBIOS を使いはじめてから変えると挙動が怪しくなるので、インストールする前に決定したほうがよい。

Rt Variables の MLB は同時に設定する。

ドライバ

相性がある(同時に入れてはいけないものがある)ので注意する。

必須なのは、ApfsDriverLoader、Aptio 系の MemoryFix、FSInject、VirtualSmc だけ。

インストール時はたぶん HFSPlus も必要(ずっと入れていたので確認してない)。APFS からブートするときには必要ない。

Aptio は Boot macOS に書いてある順番に従うとよい。

AudioDxe、DataHubDxe はあって困らないので入れておいてよい。

Kexts

カーネル拡張。

よく出てくる Lilu という kext はプラグインのベースで、WhateverGreen などは Lilu プラグインとして実装されているので、 それを使う場合には Lilu が必須。

必須なのは、Lilu と VirtualSMC だけだと思う(VirtualSMC は部分的に Lilu を使っている)。

VirtualSMC はいくつか SMC 系の kext を持っているので、同時に入れておくと便利。使えないやつはブート時に排除してくれる。

WhateverGreen は入れていて悪さをすることはあまりないのと、入れてるときと入れてないときでデバイスの認識が変化するので、入れておくほうが無難。

AppleALC はオーディオ出したければ入れておく。

NullCPUPowerManagement は、PowerManagement 系で kernel panic するときにとりあえず入れておく。ブート時引数の -xcpm と組みあわせて使う。ssdtPRGen で ssdt にパッチを当てれば必要なくなるが、はじめはめんどいので入れておくとラク。

GPU

使わないほうを無効にするのが最も無難。両立する場合には、iGPU が primary のほうが安定するらしい。

使ってるマザーボードは iGPU を使わないと認識すらさせてくれないっぽく、これがわからなくてハマっていた。

完全には対応していない iGPU もある(僕の HD2500 もそう)ので、そういうのは使わないほうが無難。

Ethernet

大抵 kext を入れないと動かない。自分の構成に合わせて探してくる。

インストーラは EFI の kext でもいいが、メインで動かすときは /S/L/E/IONetworkingFamily の Plugins に入れないといけないっぽい。バニラだとたぶん無理。

Ethernet の PCI を認識しないときは LANInjection を、Ethernet の線をつないでいるときだけ OS が固まる場合には、Clover の FixLAN を有効にするとよい。

BCM57788 だったので、nms42 版 BCM5722D を使っている。このドライバにはどうやらバグがあって、ちょっと通信するとイーサネットがうんともすんともいわなくなる。

Private.cpp にある IOInterruptEventSource::interruptEventSource の最後の引数 intIndex を 0 にすると正しく動く。

ビルドした。

オーディオ

ほとんど全部 AppleALC がやってくれる。

layout-id だけ指定する必要があるので、ブートオプションを使う(非推奨)か、Device の Properties で指定する。

Vanilla Desktop Guide には Devices/Audio/Inject を使うよう書いてあるが、これは使わない。

トラブルシューティング

Waiting on <dict ID=”0″><key>IOProviderClass</key><string ID=”1″>IOResources… で固まる

ハズレ。再起動する。

apfs / hfs+ 系で kernel panic する

ハズレ。再起動する。メモリの問題説らしいが、いろいろ試しても特に改善してない。

boot のログは出るのに画面がうつらない

BIOS の設定を確認してみる。WhateverGreen の指示に従う。InjectIntel や IntelHDMI などの設定を修正する。

使ってるとときどき固まる

コンソールを確認してみて、Intel の Acceleration 系で出ていた場合にはハズレ。実 mac でも報告がある。

iGPU を諦めると解決する。

Clover が BIOS から起動しない・エントリがない

SystemRescueCD 上で efibootmgr を使ってエントリを作る。


コメントを残す

メールアドレスが公開されることはありません。