💾 Archived View for pixeldreams.tokyo › technomancy › vr-linux-slackware.gmi captured on 2024-07-08 at 23:41:13. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-03-21)
-=-=-=-=-=-=-
㋿ 6-2-20 火 曇り
linuxでsteamvrやるには、まずはsteam環境から、vr環境を構築する。
もともとsteamやprotonはubuntuやarchで開発・テストされているので、slackwareで最初に動かすのは大変だった。それでこの備忘録を書こうと思ったんです。
flatpakはだいたい動いたけど、きっとコンテナ関連で例えばvrchatで動画が再生できなかったり、デバッグしにくかったからSlackBuildsでnativeで使っていた。
でもnativeも、今度はライブラリーバージョンの違いなどでvrchatやsteamvrが起動しなかったり。それからconty.shという、archのコンテナの中で実行するやり方になっていた。
だけどconty.shだと今度vr環境を構築したとき、steamvrがうまくヘッドセット検知できなかくて、一度nativeのsteamvrで起動してからまた閉じて、次conty.shコンテナ内で再実行という儀式を毎回、、
などいろいろ試している末に次の、slackwareらしいかと聞かれればそうじゃないかもしれないけどとにかく楽なワークフローに辿り着きました。
archをインストールしましたーー(半分だけ嘘笑)
distroboxというツールに出会いました。dockerやpodmanを操作するラッパーで、ホスト環境とホームフォルダー、デバイス、dbusなど緊密に連携するから、異なるディストロのパッケージマネジャーなど同じ環境で使えることになる素晴らしい技術です。
distroboxを使ってarchコンテナを作りました。作って、中でsteam、alvr動かしているんです。そんなときに、コンテナ内で使えるようにffmpegやpipewire{,-alsa,-pulse,-jack}、yt-dlpなどもう一度インストールする必要あるけど、本当によく動いててびっくり。
導入は、SlackBuildあるから簡単。ただ一つあったのは、非ルート・ユーザーで使うためにsubuid/subgid設定しなきゃなくて、READMEには書かれてなかったからバタバタ調べてちょっと苦労したから書き留めておく〜
$ man 5 subuid # usermod --add-subuids 10000-65535 $user # usermod --add-subgids 10000-65535 $user # cat /etc/{subuid,subgid}
したらコンテナ作成
$ distrobox create -n arch \ --image quay.io/toolbx-images/archlinux-toolbox:latest \ --additional-packages "helix" $ distrobox enter arch
中で
$ alias hx=helix $ sudo hx /etc/pacman.conf # multilibレポジトリを有効に $ sudo pacman -Syu fuse2 fuse3 pipewire{,-alsa,-pulse,-jack} \ xdg-utils ffmpeg yt-dlp wine steam $ # 次はarchwikiを参考しながらgpuのドライバ入れましょう
alvrはAppImageで動かしてる。画像の解像度をlowにして(lowでも目ではほぼ気づかない綺麗な画像ですよ)、オーディオ出入力それぞれpipewireにしたら、オーディオはちゃんと通って、vrchatは90fpsで動いてくれた。
通常ならvrchatはprotonで実行されるけど、本来のprotonではvrchat内の動画プレイヤーが動作しないので、「proton-ge」というフォークを導入する。
$ # steam完全に閉じておく $ mkdir -p ~/.steam/root/compatibilitytools.d $ tar zxf ./GE-Proton8-32.tar.gz -C ~/.steam/root/compatibilitytools.d $ # steamアプリ内vrchatの設定開いて、compatibility layerでGE-Protonを選択
ここまで来たら正常に動くはずだと思います