BootcampでeGPU

## あらすじ
2010年頃に購入したHPの15インチ2kg windowsノートPCでwindows10にアップデートしたものの使用していなかった。
そこで、このライセンスを使って2016年モデル mac book pro 13インチ（機種 ID：MacBookPro13,2）にBootcampでwindowsをインストールしようと思いたった。
しかも、razer core と AMD radeon Vega 56 を所有していたので、バーチャルマシンで外付けGPUを使用し、windowsのゲームができたら楽しそうじゃないか、という発想。

→達成まで非常にハマったのでその記録

## 結論

使用しているmacのモデルによって対応が異なるので、
https://egpu.io/best-external-graphics-card-builds/
で、成功した先人の手順をなぞるのが最も確実。
（参考もどういうことをしないといけないかを掴むためには良かったが、一貫した手順ではなかった）


### 私の環境で動作した先人の手順
https://egpu.io/forums/builds/2016-13-macbook-pro-6th2cu-rx-5700-xt-32gbps-tb3-razer-core-x-chroma-macos-10-15-1/

### 手順概要

2021-06-25 追記
macのハードウェア故障のため、再度自身で行った。前の状態と相違があるが動いているので更新。
→大容量メモリは表示されていなくても動作している。

1. Bootcampヘルパーで、isoを用いてmac上にwindowsをインストール
1-1.Windows Updateはデバイスドライバのオプションも含めて全て行う。
2. UEFI(Unified Extensible Firmware Interface)ブートのためのアプリケーションをインストール※1
2-1.automate-eGPU EFIをMAC OS拡張（ジャーナリング）にダウンロード・展開する。
2-2. https://github.com/0xbb/apple_set_os.efi/releases から落とした4KBのapple_set_os.efiをbootx64.efiにrenameしてEFI/BOOT配下に置きかえる。元々のbootx64.efiファイルはなくて問題ない。automate-eGPU.efiもなくても構わない。

注・動作するようになってから、検証のためにファイル削除しても動作しているので2-3.の手順は不要かもしれない。
2-3.config.plistで、catalina用の修正を行う。一応、https://egpu.io/wp-content/uploads/2018/11/automate-eGPU-EFI-install.txtから、# Phase 3: Patch Selectionの部分だけ切り出して実行しNVIDIAオプションを選択する。

3. Windows起動後、Radeon Vegaを接続し、デバイスマネージャーでエラーコード12が出るのを回避
EFI経由の起動で、Radeon Vegaを接続しててもWindowsロゴのローディングが終わらない問題は起きなくなっていた。
エラーコード12というのは、デバイスマネージャでeGPUを見たときに出ているエラーで、メモリが足りていないコードらしい。

3-1.DSDT overrideのintel methodを行う。
自身の環境では\_SB.PCI0.RP05.UPSB.LSTXの引数が6より多すぎるエラーが必ず起きる。引数が6個になるように最後の引数になりそうなものを適当に消した（！）。が、最終的には問題なく動作している（この分岐に入らないからエラーが出ないんだろうか）

3-2.レジストリエディタでHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP\Pci 配下に HackFlagsをQWORD (64 ビット) の値で16進で600を指定する。windowsサポートではDWORDを編集する手順案内があるので、DWORDがだめならQWORDで試してみるのはありかもしれない。（QWORDを思いついたのはDSDT overrideでQWORD memoryを追記するため）

必要かわかっていないが、https://github.com/0xbb/gpu-switch のWindows 8/10 Usage:も実行している。結局これだけではエラーコードが消えなかったので影響不明。

3-3.デバイスマネージャーの「表示」メニューから「デバイス（接続別）」を選択し、eGPUに影響ありそうな同一階層のPCI-to-PCIブリッジを無効にする。自身の環境ではHigh Definition Audio Busも同一ブリッジだったが、それも無効にし、eGPUのデバイスドライバをインストールした。eGPUが適切に動作したあとHigh Definition Audio Busが有効になったので、ハマった人は試しても良いかもしれない。

デバイスドライバのインストール後、High Definition Audio BusもeGPUと並んでエラーコード12が出るが、再起動を繰り返す。
複数回の再起動のあとeGPUが利用可能となる。

過去の手順
1. Bootcampヘルパーで、isoを用いてmac上にwindowsをインストール
2. UEFI(Unified Extensible Firmware Interface)ブートのためのアプリケーションをインストール※1
3. windowsのデバイスマネージャーのリソースに「大容量メモリ」を表示する（最大のハマりポイント）※2
4. windows上で既存処理でインストールされたドライバのアンインストールと、最新版のアンインストールをセーフモードで実施
5. 複数回の再起動。4コネクタのうち左の手前（Tabキーに最も近いポート）**のみ** 有効で、利用できるようになった。

※1
https://egpu.io/forums/mac-setup/automate-egpu-efi-egpu-boot-manager-for-macos-and-windows/
起動ディスクをmac上に持つ。MAC OSX
https://support.borndigital.co.jp/hc/ja/articles/115010543848-Max-OS-X%E3%81%AE%E5%A4%96%E9%83%A8%E8%B5%B7%E5%8B%95%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%82%92%E4%BD%9C%E6%88%90

※2
手順
https://egpu.io/forums/pc-setup/fix-dsdt-override-to-correct-error-12
参考ファイル群
https://egpu.io/public-repository-egpu-dsdt-overrides/
https://acpica.org/downloads/binary-tools


アカウント取得しないと確認できないようになっていた、が、今の所スパムも来ていないので手順を英語で確認してほしい。

使い切れていない3TB SSDがあるので、その上で動かせたらというのが次点の目標。

## 参考
●macのモデル識別
https://support.apple.com/ja-jp/HT201300

●Bootcampの初期設定

公式サポート
https://support.apple.com/ja-jp/guide/bootcamp-assistant/bcmp173b3bf2/mac

サポートソフトウェアについて
https://support.apple.com/ja-jp/HT204923

●Bootcampインストーラーの表示がバグって次に進めない/中断してしまった場合の回避策

https://i-tsunagu.com/mac/windows-supportsoftware/


●eGPUを接続してブートすると、windowsはロゴマークのまま止まるケースの対処法（efiパーティションからの起動）

https://slowquery.hatenablog.com/entry/2019/03/10/234345

https://beginners-high.com/bootcamp-egpu-efi/

●windows上、デバイスマネージャーのエラーコード

https://support.microsoft.com/ja-jp/help/942959/error-message-when-you-attach-a-pci-express-expansion-chassis-to-a-com

http://www.kokoro-navi.com/diary3/2011/01/post-204.html

●なぜか上位にヒットしなかった、AMD Radeon Settings Lite MS store

https://www.microsoft.com/ja-jp/p/amd-radeon-settings-lite/9n9370crz0fn?utm_source=AppAgg.com&utm_medium=AppAgg&utm_campaign=AppAgg&rtc=1&activetab=pivot:overviewtab

●その他ググって見つけた同じ志の先人方(windows ダウングレードなど）

https://bobsmac.com/egpu/166.html

https://mizuki-an.hatenablog.jp/entry/2020/01/15/200000

https://shimezikun.hatenablog.com/entry/2019/11/09/190842