メインOSをManjaro Linuxにしました
PCゲーム用に専用PC組んだのでWindowsである理由があまりなくなってきました。
加えて、WindowsだとROCm(CUDAのRadeon版)がWindowsだと使用できないので、このタイミングでメインOSをLinuxにすることにしました。
ROCmを使いたい理由は機械学習のためですね。AIイラストやAIボイチェン等、ローカル環境に構築して遊んでみたくなったので。
今まで何度かLinux移行は試していましたが、どうしてもWindowsじゃないとできないことが多かったので結局戻ったりしていました。
今回も同様の事案がありましたが、無事メインOSをLinuxに移行できたのでメモしておきます。
ディストリビューションの選定
デスクトップ環境はKDEが使いたかったので、以下の3つが選択肢としてありました。
KDE neonとKubuntuは両方Ubuntuベースなのでほぼ同じです。
neonはaptではなくDiscover(GUI)でのパッケージ管理を推奨していたため、不便さが勝ってしまいナシになりました。
Manjaro LinuxはArch Linux系統なので、ローリングリリースでUbuntuのようなOSバージョンの概念がありません。
使用頻度が低いPCだと起動の度に無限アップデート地獄に落とされるのですが、今回はメインPCのメインOSになるので、ローリングリリースの方が都合が良さそうです。
ということで、KubuntuではなくManjaro Linuxにしました(Win11がインストールできないノートPCはKubuntuにしました)。
困ったこと
キャプチャボードが使えない
積んでいるElgato 4K60 ProはWindows用ドライバしかありません。
USB接続のキャプチャボードはUVC(USB Video Class)に対応していればドライバなしでも動作するのですが、4K60 ProはPCIE接続のため、ドライバがないと動作しません。
そのため、PCIパススルーを行ってゲストOSのWindows11上でキャプチャを行うことにしました。
試しにUVC対応のGC553を買ったりして試してみましたが、結局ゲストのWindows上で4K60 Proを動かすのが一番安定しました。
理想論的にはMagewellなどのLinux対応を正式に謳っている業務用キャプチャボードを買うべきだと思います。
PCIパススルーによる仮想環境の構築
キャプチャボードとGPUをゲストOSであるWindowsにパススルーすることで、ネイティブとほぼ同じ環境で使用できます。
現環境で便利だと思ったツール
ddcutil
DDC/CIを読み書きすることでCLI上からモニタの輝度や入力切り替え等が行えるようになります。
GPUパススルーのおかげでゲストOSもネイティブに近い性能が出せているので、RDPせずに使いたいところですが、モニタの入力切り替えが不便でした。
そこで、ddcutilを使って切り替えるシェルスクリプトをショートカットキーに割り当てることで、手元で一発で切り替えられるようになり、手軽になりました。
また、Windows起動時に画面切り替えのシェルスクリプトをフックして自動で切り替えを行うようにしました。
Barrier
ホストOS/ゲストOSには当然別々のマウス・キーボードを接続する必要があります。
物理KVMを使用する方法もありますが、Barrierはマルチディスプレイ的な感じでマウス・キーボードを共有できるため、物理KVMのようなボタン切り替え等も不要です。
構成
最終的な構成は以下のような感じになりました。
パーツ | 型番 | 備考 |
---|---|---|
CPU | Ryzen7 3700X | Windowsに6コア割り当て |
M/B | B550 PG Riptide | |
MEM | DDR4-2666 64GB | Windowsに16GB割り当て |
GPU1 | RX6800XT | メイン |
GPU2 | RX6600 | Windows用 |
SSD1 | NVMe 1TB | メイン |
SSD2 | NVMe 500GB | Windows用 |
SSD3 | SATA 500GB | 共用データ |
SSD4 | SATA 500GB | 機械学習用 |
SSD5 | SATA 128GB | バックアップ |
etc | Elgato 4K60Pro MK2 | |
電源 | 850W | |
ケース | NZXT H510 Elite |