Oculus Rift

提供: ArchWiki
2024年9月3日 (火) 22:40時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (カテゴリを修正)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Oculus Rift は Oculus VR によって開発されているバーチャルリアリティヘッドマウントディスプレイです。

インストール

ハードウェア

Oculus Rift のデバイスは HDMI によってセカンダリディスプレイとしてグラフィックカードに接続します。センサーとして使うには USB でも接続します。oculus-udevAUR パッケージが適当な udev ルールを設定します。

完全に利用するには inputvideo グループにユーザーを追加する必要があります。plugdev グループは必要なくなりました (モードは 0666 に設定されます)。

SDK

公式の Oculus Rift SDK はAUR のパッケージ oculus-rift-sdkAUR[リンク切れ: パッケージが存在しません] からインストールすることができます。CMake ビルドの対応などの修正が加えられたバージョンは oculus-rift-sdk-jherico-gitAUR でインストールすることが可能です。

パッケージは X セッションが起動した時に oculusd デーモンが実行されるように設定します。パッケージをインストールして X を再起動すれば自動的にバックグラウンドで実行されます。

ビデオモード

Rift を適切に機能させるには、特定のビデオモードを使う必要があります。特に、リフレッシュレートが低い通常のモニタと同じビデオモードを使っている場合、ゲームのリフレッシュレートも低くなってしまいます。

Rift をプライマリモニタにしないと、同期が正しく動作しません。

ノート: ディスプレイを回転させると遅延フレームが発生し、Windows における Extended Mode と同じ状態になります。ディスプレイを回転しない場合、遅延がなくなります (Windows の Direct Mode と同等)。残念ながらディスプレイを回転しない状態で動作するアプリケーションは一部に限られています。問題なく動作するかアプリケーションごとにテストする必要があります。

手動で xrandr を使う

プライマリディスプレイが DVI-I-2 で DVI-I-3 が Rift の場合、1152x864 が 75Hz をサポートする最大解像度です。使用するには:

$ xrandr --output DVI-I-3 --primary --rotate left --mode 1080x1920 --rate 75 --auto --output DVI-I-2 --mode 1152x864 --rate 75 --auto --same-as DVI-I-3 --scale-from 1920x1080

Rift SDK ではセカンダリディスプレイの回転を推奨していませんが、回転しないと多くのプログラムで問題が発生します。以下のコマンドはプライマリディスプレイをディスプレイ全体の拡大版として設定します。パンしたい場合、--scale-from--panning に変更してください:

$ xrandr --output DVI-I-3 --primary --rotate left --mode 1080x1920 --rate 60 --auto --output DVI-I-2 --mode 1920x1080 --rate 60 --auto --same-as DVI-I-3 --scale-from 1920x1080

xrandr --auto を使用した場合、ディスプレイが乱れることがあります。以下のコマンドを使ってひとつのモニターに戻してください:

$ xrandr --output DVI-I-2 --primary --auto --rotate normal --panning 1920x1080 --scale 1x1 --output DVI-I-3 --off

動作するアプリケーション

バーチャルリアリティ#対応ソフトウェアを参照。

トラブルシューティング

DK2 カメラによってカーネルログが埋まってしまう

カーネルログに以下のようなメッセージが大量に表示される場合:

xhci_hcd 0000:04:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?

USB 3.0/Hybrid 2.0/3.0 端子で Oculus DK2 Camera に何らかの問題が起こっています。USB 2.0 端子に接続してみてください。

サスペンド/復帰後にカメラの挙動がおかしい

サスペンド・復帰してから Rift を使用すると、カメラが位置トラッキングデータをよこさなくなって、VR プログラムが位置トラッキングできなくなることがあります。`ovrd` プロセスを終了しようとすると、ロックアップして親プロセス (ウィンドウマネージャ) が終了するまでゾンビプロセスになります。復帰後に、DK2 カメラを一度抜いてから再度接続することで問題は解決します。

古いアプリケーションで読み込みが遅延する

何らかの理由で、ovrd の 0.4.4 以下を使用するようにコンパイルされたアプリケーションで ovrd の 0.5.0 以上を使用すると読み込みが遅延します。古いアプリケーションを使用すると、まるで泳いでいるかのような表示になってしまいます。古いバージョンの SDK をインストールすることで解決します。

xrandr 実行時に Oculus DK1 がモニターとして認識されなかったり切断中と表示される

最新の NVIDIA ドライバーではヘッドマウンドディスプレイ (Oculus DK1 など) を標準のモニターとして使用するかどうか指定する AllowHMD オプションが追加されています。NVIDIA はデフォルトで NO に設定しているため、DK1 が切断中と表示されます。以下のコマンドを実行することで解決できます:

# nvidia-xconfig --allow-hmd=yes

もしくは /etc/X11/xorg.conf の Screen セクションに手動で Option "AllowHMD" "yes" を追加してください。

ソース: https://forums.oculus.com/developer/discussion/34407/gnu-linux-plans#Comment_566814