この記事は、ArchLinuxでSteamVR環境を構築するために必要な情報を覚書としてまとめたものになります。
各Step毎にGoogleで調べながらやって得た知見を覚えている範囲で列挙していきます。(うろ覚え箇所多数)
環境などで差異はあると思いますので、この記事で大まかな流れを追いながら詰まったところは各自頑張っていただく想定になっています。
ArchLinuxベースのディストリビューションであるCachyOSの方がインストールは簡単(らしい)です。protondbでもCachyOSでResoniteを起動成功した人がちらほらいるので無理ArchLinuxにこだわる必要はないと思います。
https://www.protondb.com/app/2519830
参考までに本記事でOSを入れたハードウェア環境は以下のとおりです。
CPU : AMD Ryzen 9 5950X Vermeer
MOTHER : ASRock X570 Taichi [AMD X570chipset]
VGA : GeForce RTX3080Ti 12GB
MEMORY : 64GB[16GB4枚] CENTURY MICRO DDR4-3200
LinuxでSteamVRを動かす条件
ハードウェア
OSを入れる専用のSSDを1つ用意するのがお勧めです。
上級者ならパーティションを上手く切って既存OSと共有させたりもできるんでしょうが、リスクもあるし面倒なのでハードウェアごと分けた方が楽です。
OS環境
DRMリースをサポートするWaylandコンポジターが必要なようです。
公式ページによれば以下が互換性ありとのこと。
Ubuntuがデフォルト設定でSteamVRを動かせないのはこれのせいみたいです。
・すべてのX11ウィンドウマネージャーとコンポジター
・KDE Plasma Wayland
・ほとんどのwlrootsベースのコンポジター:(Sway,LabWC,Hyprland)
https://help.steampowered.com/ja/faqs/view/18A4-1E10-8A94-3DDA
ArchLinuxのインストール
まず、リンク先の下の方にあるJapanのサイトからISOファイルをゲット
https://archlinux.org/download/
次にRufusなどを使ってISOファイルから起動ディスクを作成。
使ってない適当なUSBメモリを用意してそれを起動ディスクにしてしまうのがお勧め。
また、インストール時に関係ないSSDやHDDは全て抜いてしまった方が良いです。(WindowsOSが入っているものも含めて)
インストール時に出てくる情報だけでどれがどのSSDかを識別するのはかなり難しいので、指定するSSDを間違えて既存領域を消してしまう可能性が高くお勧めしません。
インストール作業に関してはこのサイトを参考にすると良さそう
archinstallを使わないと無茶苦茶大変なので使用を推奨
https://zenn.dev/hkt100rtkn/articles/effdc2766cb172
特に重要な箇所
Profile
Desktopを選択して、次をKDE Plasmaにする。
上で触れたようにDRMリースをサポートするWaylandコンポジターを選ばないと意味がないので、自分の場合は見た限りで対応してそうなこちらを選んだ。
Network configuration
Use NetworkManagerを選ぶ。
自分の場合は、ここを設定し忘れたらしくNetworkManagerをあとから入れる羽目になった。
ArchLinuxの各種設定
ネットワーク周り
NetworkManagerの起動
systemctl start NetworkManager
Linux起動時にNetworkManagerを自動で起動するよう設定
systemctl enable NetworkManager
SteamVRのインストール
まずSteamを入れることになるが、入れ方はこの記事が参考になる。
何も入れていないとvimでテキストを弄ることになるので、事前にvimの操作方法を調べておくと良い。
ちなみに公式でサポートしているのはUbuntuのみらしいので、ArchLinuxで何かあっても自己解決が鉄則です。
https://qiita.com/undercover/items/4dc566d64016bc03c6b3
インストールが終わったらSteamからSteamVRを入れる
SteamVRの起動プションに以下を追加する
QT_QPA_PLATFORM=xcb ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrmonitor.sh %command%
起動時の互換設定からprotonを指定