Oculus Rift
Oculus Rift は Oculus VR によって開発されているバーチャルリアリティヘッドマウントディスプレイです。
目次
インストール
ハードウェア
Oculus Rift のデバイスは HDMI によってセカンダリディスプレイとしてグラフィックカードに接続します。センサーとして使うには USB でも接続します。oculus-udevAUR パッケージが適当な udev ルールを設定します。
完全に利用するには input
と video
グループにユーザーを追加する必要があります。plugdev
グループは必要なくなりました (モードは 0666 に設定されます)。
SDK
公式の Oculus Rift SDK はAUR のパッケージ oculus-rift-sdkAUR からインストールすることができます。CMake ビルドの対応などの修正が加えられたバージョンは oculus-rift-sdk-jherico-gitAUR でインストールすることが可能です。
パッケージは X セッションが起動した時に oculusd
デーモンが実行されるように設定します。パッケージをインストールして X を再起動すれば自動的にバックグラウンドで実行されます。
ビデオモード
Rift を適切に機能させるには、特定のビデオモードを使う必要があります。特に、リフレッシュレートが低い通常のモニタと同じビデオモードを使っている場合、ゲームのリフレッシュレートも低くなってしまいます。
Rift をプライマリモニタにしないと、同期が正しく動作しません。
手動で 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