からあげうどん

こんにちは

メインOSをManjaro Linuxにしました

PCゲーム用に専用PC組んだのでWindowsである理由があまりなくなってきました。

加えて、WindowsだとROCm(CUDAのRadeon版)がWindowsだと使用できないので、このタイミングでメインOSをLinuxにすることにしました。

ROCmを使いたい理由は機械学習のためですね。AIイラストやAIボイチェン等、ローカル環境に構築して遊んでみたくなったので。

今まで何度かLinux移行は試していましたが、どうしてもWindowsじゃないとできないことが多かったので結局戻ったりしていました。

今回も同様の事案がありましたが、無事メインOSをLinuxに移行できたのでメモしておきます。

ディストリビューションの選定

デスクトップ環境はKDEが使いたかったので、以下の3つが選択肢としてありました。

KDE neonKubuntuは両方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にパススルーすることで、ネイティブとほぼ同じ環境で使用できます。

OVMF による PCI パススルー

現環境で便利だと思ったツール

ddcutil

DDC/CIを読み書きすることでCLI上からモニタの輝度や入力切り替え等が行えるようになります。

GPUパススルーのおかげでゲストOSもネイティブに近い性能が出せているので、RDPせずに使いたいところですが、モニタの入力切り替えが不便でした。
そこで、ddcutilを使って切り替えるシェルスクリプトをショートカットキーに割り当てることで、手元で一発で切り替えられるようになり、手軽になりました。 また、Windows起動時に画面切り替えのシェルスクリプトをフックして自動で切り替えを行うようにしました。

Barrier

OSSのソフトウェアKVMです。

ホスト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