見出し画像

【SteamVRの代替, FOSS VRでVRChatをプレイ。】 Linux(EndeavourOS)をインストールして最速でQuest2でVRChatにログインする方法(WiVRn経由)(Nvidia User)

▼前置き
Steamのゲームが特定の状況下でうまく動かない場合こちらを参照してください

VRChat - Completely stutter-free VR reprojection on Linux WITHOUT SteamVR!
https://www.reddit.com/r/virtualreality_linux/comments/19esdwo/vrchat_completely_stutterfree_vr_reprojection_on/?rdt=34560

こんにちは、私は最近LinuxにはまっていてメインマシンにLinuxを入れるほど入れ込んでいるのですが、一応身内向けのものと、忘れないためにも自分メモみたいにFOSS VRコンポーネントをLinux上で動かしてSteamVRなしで動作するVRChatを動かすまでのガイドを書こうと思います。
OSの選択を色々誤ってしまってPopOS>Manjaro KDE OSと流れ着いて難儀して、色々試行錯誤してみたのですが、バグの少なさの関係でEndeavourOSを採用してます。よろしくお願いします。

いつものように自己責任でお願いします。何かトラブルがあっても私は一切責任を負いません。

◆前提の話。
まずLinuxにするメリットとデメリットの話をします。
メリット:
よくWindowsで何らかのゲームをプレイしているときにStutter(カクつき)、lag spike(ラグ)などが発生していくらTweak(調整)してもそれが直らない理由がWindowsにはあったりします。(テレメトリ、Exploit Protection, ウィルス対策ソフト、セキュリティ関係の競合、その他)
Linuxマシンに変えると、それがまったくない状態になるのでゲームが文字通りバターのように滑らかに動作するようになります。
(私のノートPCも、とあるゲームを動かすとWindowsでは30FPS前後でカクつきが酷かったんですが、Linuxでそれを動かすとほとんど60FPS張り付いてました。ストレスフリー)

最近はProtonGEやWineのおかげでWindowsゲームもLinux上で互換性を保ちながら動作するようになりました。凄いですね。

デメリット:
競技系の対戦ゲーム(FPSなど)はチート検出ツールの関係でWindowsじゃないと誤検出してアカウントがbanされてしまうリスクが少なからずあるので、オンラインゲームなどで、特に対戦系のゲーム。Linuxから接続するときはよくフォーラムやredditなどで公式回答を探してLinuxでも大丈夫か調べてみてください。(例 検索ワード: Linux Ban diablo4 など)

そしてLinux VRの話。
まずMeta Questで必要なOculus Softwareはインストール出来ません。つまりOculus Linkが使えないのです。そしてLinuxではVirtual Desktopもソフトウェアが存在してません。なんならQuestのSteam LinkでSteamVRに直接つなぐことも無理です。
代替のALVRを動かすときはALVR ServerがSteamVRにHookさせるため、SteamVRがないと動きませんが、WiVRnはMonado(FOSS VR)を使うのでSteamVRを必要としていません、なのでWiVRnクライアントとサーバーが立ち上がったらVRChatをSteamVRモードで起動するだけなんです。(これに気づくまでまる二日かかりました…サンクスLVRAコミュニティ)

情報ソース:


◆EndeavourOSをインストールする


デスクトップはPlasma KDEを選択します。
理由:

OSインストールに関しては結構記事書いている方がいらっしゃるので端折ります。
分からない人は「EndeavourOS」をググってください。そしたらOS配布ページに着きます。WiVRnで問題が解消されているNvidiaのBeta Driverをインストールするので、Nvidia関連のドライバーは省略してください。AMDや他のグラボの方はとにかくググって…!
初期設定を済ませたら、一度ログアウトして…

左下に注目。Display Session Plasmaをクリックして…
Plasma(X11)にセットしてください。
こうなったらおkです。ログインしてください。

◆NvidiaのBeta Driverをインストールする (nvidia-all経由)

WiVRnを動かすために問題が修正された565.77ドライバーをLinuxマシンにインストールします。普通にbetaドライバーをインストールしようとするとクソほど難儀するのですが、インターネットの仏様がめっちゃ簡単なdistributionを用意してくれていたのでこれを使います。

Terminalを呼び出して以下のコマンドをコピペ。三行まとめても大丈夫です。

git clone https://github.com/Frogging-Family/nvidia-all.git
cd nvidia-all
makepkg -si
かちゃかちゃかちゃ、ターン!

Terminalに入力してEnterを押すとカエルのアスキーアートが現れますが何も心配しないでください。

2番の565 series: 565.77(beta  driver)を選択するために「2」と入力してEnter
次に現れる選択肢は基本的にdkms(推奨)を選んでいたら大丈夫なので「1」を入力してEnter
「y」で大丈夫です。
だばーーーっと洪水のように処理が始まります。そのまま放置してください。

途中、選択肢で、YesかNoか聞かれますが、Yを入力してEnter パスワードを入力して、Enter、そのまま放っておいたら -> exit cleanup done とTerminalが使える状態になるのでこれでドライバーのインストールは完了です。PCを再起動しましょう。


sudo reboot

◆Nvidiaドライバーのバージョンの確認


Terminalで以下のコマンドを打ち込むと確認できます。

nvidia-smi

Driver Version:  565.77 と表示されていたら大丈夫です。

◆Steamをインストールする

Terminalを呼び出して以下のコマンドを打ち込みます。

sudo pacman -S steam

インストール完了後、メニューを呼び出してSteamと検索をかけるともうそこにSteamがあります。起動してログインしましょう。

SteamのSettingsからCompatibility(互換性)タブを選びます。
| Enable Steam Play for all other titles | のトグルを有効にしてSteamを再起動します。それでVRChatはインストールできるようになります。

VRChatをインストールします。

次にこのガイドを頼りにFOSS VRをインストールします。

◆WIVRnをインストール(Envision)

Envision内にWIVRnがあるので、まずパッケージをビルドするのに必要なものをpacmanコマンドを使ってインストールします。

以下のコマンドを入力

sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

yayをインストールできたら次はビルドが失敗しないようにmakeコマンドとcmakeコマンドとgccコマンドをインストールします。

sudo pacman -S gcc
sudo pacman -S make
sudo pacman -S cmake

envision本体をダウンロードするために以下のコマンドを打ちます。(flatpak版はパフォーマンスがダウンするため推奨されていない)

yay -S envision-xr-git

選択肢は「n」、「n」でおk、あとは指示通りに。

次にWiVNrを使う上で(もしかしたら必要ないのかもしれないけど)Nvidia Vulkan Layerをインストールしておきます。
以下のコマンドを入力してインストール。

yay -S monado-vulkan-layers
選択肢が現れた場合、n(なし), n(なし)で大丈夫です。

OSのメニューからEnvisionをクリックして起動。
▼を押してWiVRn - Envision Defaultを選択してBuild Proflesを押して
出てきたコマンドをコピペしてTerminalに貼り付けて実行します。

Envisionを閉じて、もう一度メニューから立ち上げなおしてBuild ProfileをするとEnvision内で処理が実行されます、これでサーバーがビルドされます。

しばらく待つ。

ビルドが完了して前の画面に戻るとStartボタンができているので押すとサーバーが実行されます。そのままペアリングモードに入りますが、その前にQuestストアでWiVRnをダウンロードしてインストールしてきてください、無料です。これがないとペアリングできないのでよろしくお願いします。

さて、このままサーバーを立ち上げてもデフォルトではファイアーウォールがあって接続がうまくいかないので、WiVRnのgithubをガイドを参照してudpとtcpのポート番号を三つほど開けます。ルーターではなくて、PC内のファイアーウォールをいじるだけで大丈夫です。
5353/udpと9757/tcp,udpをファイアーウォールの設定で開けます。
設定: 実行時のタブを永続に変更してPublicを選択した状態でポートタブを開き、+追加(A)からポート番号を入力します。

これで大丈夫なはずです。

さて、念のため電源管理か「非アクティブの場合、デフォルトではスリープになっていますが、何もしない」に設定してください。スクリーンロックはしないようにしてください。OSメニューの設定>KDE システム設定で、下部から行えます。

また、以下のコマンドからスリープを強制的に無効化します

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Envisionを起動します。
ペアリングが正常にできると思うのでペアリングします。
ペアリングできたら正常に接続できていると思うのでQuest側でVRアプリを起動してください、と指示があります。
ここで注意すべきなのは、VRアプリはSteamVRじゃないです。これは必要ないのでアンインストールして大丈夫。
そのままVRChatをSteamVRモードで起動すると…

処理が色々済んだらQuest2のWiVRn経由でVRChatができると思います。
おつかれさまでした。快適なLinuxの世界を楽しんでみてください。

※QuestからPCVRの音が鳴らない場合は、タスクバーの音量アイコンから、このようにチェックしてみてください。

VRChatでマイクが機能しないときは、VRChatの設定からAudio & VoiceのMicrophoneのCurrent Deviceで、Change Deviceを押してWiVRn(Microphone) (WiVRn(microphone))を選択してあげれば正常に機能するはずです!


最近お気に入りのホームワールド。

補足:
Linux(EndevourOS)でフルトラVRChatをする方法! (WiVRn(FOSS VR)+Haritora App+HaritoraX Wireless via OSC
https://note.com/yueplushgame/n/nd4f214e0d3ab?sub_rt=share_pw

いいなと思ったら応援しよう!