まとめ
この記事では、Linux で VR ヘッドセットを有効にする方法について説明します。これには、 NukeおよびCaraVRで動作するように新しい Nvidia ドライバを設定する方法と、 Nuke sudo/root として起動しなくても動作するようにヘッドセットを設定する方法が含まれます。
詳しくは
HTC Vive や Oculus Rift CV1 などの Linux 上のヘッドセットには、 Nuke / CaraVRインストール プロセスの一部としてインストールされる OpenHMD サードパーティ ライブラリなどのドライバーが必要です。ただし、Nvidia ドライバーのデフォルトの設定方法により、ヘッドセットを Monitor Out ディスプレイ デバイスとして使用できるようにするには、Nvidia の構成ファイルを調整する必要があります。
注: CaraVRプラグインは現在、 Nukeバージョン 12.0 以降に含まれています。
構成ファイルを調整する前に、Nvidia GPU ドライバーが最新であることを確認してください。更新するには、以下のリンク先の Nvidia Web サイトを確認してください。
https://www.nvidia.com/Download/index.aspx?lang=en-in
NVIDIA ドライバーの構成
構成ファイルを調整するために必要な手順は次のとおりです。
1) sudo または root として、テキスト エディタで次のファイルを開きます。
/etc/X11/xorg.conf
注: xorg.conf ファイルが存在しない場合は、次のコマンドを使用して作成できます。
sudo nvidia-xconfig
2) 構成ファイルの「Section "Device"」というセクションを見つけます。
3) 以下のサンプル画像に示すように、セクションに次の行を追加します。
Option "AllowHMD" "yes"
4) 更新したファイルを保存し、ヘッドセット デバイスを接続します。
5) マシンを再起動します。
Nvidia 構成ファイルが調整されたので、 NukeとCaraVRを起動して VR ヘッドセットが動作することをテストできます。 Nuke sudo または root として起動する必要があり、ヘッドセットを使用するオプションが Monitor Out 詳細設定の Device ノブに表示されるはずであることに注意してください。
Viewer Monitor Out パネルを開くには、任意のペインを右クリックし、Windows > Viewer Monitor Out を選択して追加します。次に、歯車をクリックします Viewer Monitor Out パネルの左側にある アイコンをクリックすると、以下の画像に示すように、 Propertiesパネルに詳細設定が表示されます。
注: CaraVRでのヘッドセットの使用の詳細については、次のリンクでドキュメントを確認することもできます。 自分の作品をレビューする
root または Sudo としてNUKEを起動せずにヘッドセットを使用する
sudo/root を使用せずにNukeを起動し、Viewer ノードでヘッドセットを有効にしようとすると、ヘッドセットが機能しない可能性があり、次のメッセージが表示されます。
この問題は、Linux がシステムに接続されている USB デバイスのアクセス許可を管理する方法が原因で発生します。この問題を解決する最も簡単な方法は、すべての権限が付与されているため、 Nukeを root/sudo として起動することです。ただし、 Nukeを root/sudo として実行すると、既存のパイプラインに干渉する可能性があります。
ヘッドセットは、 Nuke sudo または root として起動する必要がなくても使用できますが、これには追加のセットアップが必要です。詳細については、以下で説明します。
ROOTまたはSUDOを使用せずに Oculus RIFT CV1 を使用する
次の手順では、Oculus Rift CV1 を83-hmd.rules udev ファイルに追加します。これにより、「Rift (CV1)」はすでに使用されていますというメッセージが表示されなくなります。
注: これらの手順を実行する前に、CV1 ヘッドセットを接続したり、 Nukeを起動したりしないでください。
1) ヘッドセットを使用したいユーザーのユーザー ID がグループplugdevに属していることを確認し、必要に応じて plugdev という権限グループを作成します。権限グループを作成し、そのグループにユーザー ID を追加する方法については、Linux ディストリビューションのドキュメントを参照してください。
2) sudo または root として、テキストエディタで/etc/udev/rules.d/83-hmd.rules を開くか作成して開きます。
3) 次の行をファイルに追加します。
SUBSYSTEM=="usb", ATTR{idVendor}=="2833", MODE="0666", GROUP="plugdev"
4)ファイルを保存します
5) sudo または Root として、以下のコマンドを実行します。
sudo udevadm control --reload-rules
6) マシンを再起動します。
7) CV1 ヘッドセットを接続し、 Nukeを起動します。
注: Linux で CV1 ヘッドセットを使用する場合、モニター出力詳細設定のデバイス ノブで有効になるまで CV1 が黒で表示されることに注意してください。
root または Sudo を使用せずに HTC Vive を使用する
次の手順により、HTC Vive が83-hmd.rules udev ファイルに追加され、「HTC Vive」はすでに使用されていますというメッセージが表示されなくなります。
1) ユーザー ID がグループplugdevに属していることを確認し、必要に応じて plugdev というグループを作成します。グループの作成方法とグループへのユーザー ID の追加方法については、Linux ディストリビューションのドキュメントを参照してください。
2) sudo または root として、テキストエディターで/etc/udev/rules.d/83-hmd.rules を開くか作成して開きます。
3) 以下のコード行をファイルに追加します。これらは SteamVR GitHub ページ ( https://github.com/ValveSoftware/SteamVR-for-Linux#usb-device-requirements ) から派生したものです。
# HTC Vive HID Sensor naming and permissioning
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2c87", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2101", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2000", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1043", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2050", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2011", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2012", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2c87", MODE="0666", GROUP="plugdev"
# HTC Camera USB Node
SUBSYSTEM=="usb", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8328", MODE="0666", GROUP="plugdev"
# HTC Mass Storage Node
SUBSYSTEM=="usb", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8200", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8a12", MODE="0666", GROUP="plugdev"
4) ファイルを保存します
5) sudo または Root として、以下のコマンドを実行します。
sudo udevadm control --reload-rules
6) マシンを再起動します。
7) ヘッドセットを接続します。すでに接続されている場合は、ヘッドセットにデスクトップの背景が表示されるように再接続する必要がある場合があります。
8) Nukeを起動し、「HTC Vive」はすでに使用されているというメッセージが表示されずにヘッドセットが使用できるかどうかをテストします。
「HTC Vive」はすでに使用されているというメッセージが引き続き表示される場合は、ヘッドセットのデバイス/ベンダー ID が異なる可能性があるため、これらの ID のカスタム ルールを83-hmd.rulesファイルに追加する必要があります。これは以下の手順で実行できます。
1) ターミナルを開いて以下を実行します。
lsusb
2) これにより、次のような結果が得られます。
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0bda:0181 Realtek Semiconductor Corp.
Bus 002 Device 055: ID 0bb4 : 2744 HTC (High Tech Computer Corp.)
Bus 002 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 002 Device 056: ID 0bb4 : 0306 HTC (High Tech Computer Corp.)
Bus 002 Device 057: ID 0424:274d Standard Microsystems Corp.
Bus 002 Device 058: ID 0bb4 : 2134 HTC (High Tech Computer Corp.)
Bus 002 Device 007: ID 0d3d:0040 Tangtop Technology Co., Ltd PS/2 Adapter
Bus 002 Device 059: ID 0bb4:2c87 HTC (High Tech Computer Corp.)
Bus 002 Device 060: ID 28de:2101
Bus 002 Device 061: ID 28de:2101
Bus 002 Device 062: ID 28de:2000
Bus 002 Device 063: ID 0bb4:2c87 HTC (High Tech Computer Corp.)
Bus 002 Device 036: ID 0c45:6340 Microdia Camera
ID セクションはidVendor:idProductとして読み取ることができ、これらの値を使用して/etc/udev/rules.d/83-hmd.rulesファイルの追加ルールを作成できます。
3) sudo または root として、テキストエディタで/etc/udev/rules.d/83-hmd.rulesを開きます。
4) 以下の行を追加し、<missingVendor> と <missingProduct> を、 lsusbの結果にリストされている、 83-hmd.rulesファイルにまだ存在しないデバイスに置き換えます。
SUBSYSTEM=="usb", ATTRS{idVendor}=="<missingVendor>", ATTRS{idProduct}=="<missingProduct>", MODE="0666", GROUP="plugdev"
この例では、 NukeおよびCaraVR権限を許可するために、以下の 3 行が追加されました。
# Extra rules
SUBSYSTEM=="usb", ATTRS{idVendor}==" 0bb4 ", ATTRS{idProduct}==" 0306 ", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}==" 0bb4 ", ATTRS{idProduct}==" 2134 ", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}==" 0bb4 ", ATTRS{idProduct}==" 2744 ", MODE="0666", GROUP="plugdev"
5) ファイルを保存します
6) sudo または Root として、以下のコマンドを実行します。
sudo udevadm control --reload-rules
7) マシンを再起動します。
8) ヘッドセットを接続します。すでに接続されている場合は、ヘッドセットにデスクトップの背景が表示されるように再接続する必要がある場合があります。
9) Nukeを起動すると、Viewer Monitor Out の詳細設定の Device ノブでヘッドセットを有効にすると、ヘッドセットが使用できるようになります。
追加のトラブルシューティング
1) 別のバージョンの OpenHMD をインストールすると、 CaraVRに同梱されているバージョンと干渉する可能性があります。ヘッドセットで問題が発生した場合は、マシンにインストールされている他のバージョンの OpenHMD または他のヘッドセット ドライバーをアンインストールしてみてください。
2) 場合によっては、 AllowHMDプロセスが自動的に機能しないことがあります。この場合、 Nukeでヘッドセットが検出されないことを修正するには、ヘッドセットが 2 番目のモニターとして検出されているものの無効になっている NVidia 設定を開き、それを有効にします。これにより、この問題は修正され、 Nukeを再起動すると、ヘッドセットが Viewer Monitor Out の詳細設定の Device ノブに表示されるはずです。
Oculus RIFT CV1に関する追加の注意事項
- Oculus CV1 は内部で電源を入れるまで黒く表示されます Nukeのビューア設定。
- CV1 は Gnome/Kde の使用可能な画面のリストには表示されません。Viewer Monitor Output Device ノブにサポートされているデバイスとともに表示されます。
- 最初にビューアー モニター出力をオンにすると、OS が新しい構成に適応するため、使用可能なすべてのモニターが数秒間黒く表示されます。
- CV1 は閉じるまでオンのままです Nuke 。OS が新しい構成に適応するまで、使用可能なすべてのモニターが数秒間黒く表示されます。
参考文献
OpenHMD ではなく、Linux 上の SteamVR をヘッドセット ドライバーとして使用することもできます。ただし、Valve はCentOS 7 での SteamVR のサポートを制限しています。さらに、ソフトウェアを実行するには特定のドライバー バージョンが必要です。ドライバーのバージョンは以下で確認できます。
エヌビディア:
- NVIDIA カードには、NVIDIA ドライバーのバージョン 430.26以降が必要であり、SteamVR ベータ版を使用する必要があります。
AMD:
- SteamVR には、vulkan サポートでコンパイルされた Mesa 17.3 以降と Linux カーネル 4.13 が必要です。
ドライバーの追加情報は、 SteamVR for Linux のドキュメントに記載されています。
Centos 7 以外の Linux ディストリビューションにCaraVR 、 Nukeおよび Steam VR をインストールできる場合は、以下の手順を使用するとヘッドセットが動作できる可能性があります。
- SteamVR がインストールおよび更新されていることを確認し、SteamVR アプリケーションが正常に実行できるようになるまで、SteamVR で必要な設定手順をすべて実行します。
- Steam インストール ファイルはここにあります。 - SteamVR を閉じますが、Steam は実行したままにしてください
- ターミナルを開き、同じセッションで以下の 2 行を実行し、システム固有のインストールに必要に応じて調整します。
/home/username/.steam/steam/ubuntu20_04/steam-runtime/run.sh
/usr/local/ Nuke 14.0v6/ Nuke 14.0
注: Nuke / CaraVRおよび SteamVR で正式にサポートされている単一の Linux ディストリビューションは存在しないため、SteamVR でのNukeの使用は完全にテストされておらず、期待どおりに動作しない可能性があります。ただし、OpenHMD よりも SteamVR 対応ヘッドセットの方が、フレームレート、歪み補正、視野設定の点で優れたパフォーマンスを提供する可能性があります。
私たちはそれを聞いて申し訳ございません
理由をお聞かせください