
需要があるかどうかはわからないが、通常はメニューバーのアイコンから行う必要があるeGPUの取り外し(イジェクト)をターミナルで行う方法、及び関連コマンドを紹介する。
管理人の環境は以下の通り。
- Mac mini 2018
- macOS Catalina 10.15.6
- Blackmagic eGPU Radeon Pro 580
INDEX
eGPUイジェクトコマンド
ターミナルで下記のコマンドを実行するとeGPUがイジェクトされる。
なお、イジェクト可能なGPUだけがイジェクトされるため、CPU内蔵グラフィックなどは影響を受けない。
SafeEjectGPU Eject

上記コマンドを実行すると全てのアプリケーションが再起動し、eGPUのイジェクトが始まる。

「finalize」と出れば正常にイジェクト成功。
なお、eGPUをターミナルでイジェクトしてもeGPUに接続している外付けドライブなどの周辺機器はイジェクトされない。
外付けドライブなどをターミナル上でイジェクト・マウントする方法は下記記事を参照して頂きたい。

ファイナライズに失敗した場合
前述のeGPUイジェクトコマンドは実験してみた限り、ファイナライズ処理がループしファイナライズに失敗することがある。

下記コマンドでイジェクトのキャンセルが可能だが、僕の環境では効果がなかった。
SafeEjectGPU Cancel
ファイナライズに失敗した場合、Thunderbolt 3ケーブルを物理的に接続解除する必要がある。
関連コマンド
マニュアルを表示
下記のコマンドでSafeEjectGPUコマンドのマニュアルを表示可能。
man SafeEjectGPU

使用可能なオプションには「Initiate」や「Relaunch」があるが、管理人の環境では実行しても一切変化が現れなかった。
Thunderbolt 3のPCI-Eストリームを切断
イジェクトした後に下記コマンドでkextをアンロードするとeGPUとのPCI-Eストリームを切断できるが、Catalinaではエラーが出る。

Thunderbolt 3のPCI-Eストリーム再接続
下記のコマンドでアンロードしたkextをロードすると再接続可能だが、前述の通り管理人の環境ではアンロードができないため、エラーは出ないものの効果を確認できない。
sudo kextload /System/Library/Extensions/AppleThunderboltPCIAdapters.kext/Contents/PlugIns/AppleThunderboltPCIUpAdapter.kext/

まとめ
eGPU.IOのフォーラムではイジェクトと再接続を正常に実行できたという報告が複数あり、イジェクトと再接続の処理を一括で行うスクリプトも紹介されているがmacOS Catalinaの管理人の環境では前述のようにエラーが出るため、イジェクトのみ可能な状況だ。
参考 Connect/Mount eGPU using command line eGPU.IOSIPを無効化すればいいのかもしれないが、そこまでするなら普通にケーブルを再接続した方が早い。
ただ、macOS High SierraやMojaveを利用しているのであれば前述のコマンドでeGPUの切断と再接続を手間なく行える可能性があるため場合によっては便利かもしれない。
ここ数日ターミナルでeGPUを制御する方法を探っているため、もしmacOS Catalinaや次期Big Surでも有効な方法を発見したら改めて追記したい。