Q100455: Linuxで Nuke と CaraVR 用のVRヘッドセットを有効にする

まとめ

この記事では、LinuxでVRヘッドセットを有効にする方法について説明します。これには、 NukeCaraVRで動作するように新しいNvidiaドライバを設定する方法や、 Nuke sudo/root権限で起動せずにヘッドセットを動作させる設定方法が含まれます。

詳細情報

HTC ViveやOculus Rift CV1などのLinux用ヘッドセットには、OpenHMDサードパーティライブラリなどのドライバーが必要です。これらのドライバーは、 Nuke / CaraVRインストールプロセスの一部としてインストールされます。ただし、Nvidiaドライバーのデフォルトの設定により、ヘッドセットをモニター出力ディスプレイデバイスとして使用するには、Nvidiaの設定ファイルを調整する必要があります。

注: CaraVRプラグインはNukeXバージョン12.0以降に含まれています。

VRヘッドセットを有効にする前に、Nvidia GPUドライバーが最新であることをご確認ください。ドライバーを更新するには、以下のリンク先のNvidiaウェブサイトをご確認ください。

https://www.nvidia.com/Download/index.aspx?lang=en-in

Rocky 9でVRヘッドセットを有効にする

NukeおよびCaraVRで VR ヘッドセットを有効にするには、以下の手順に従って、 EPEL リポジトリに加えて、いくつかの追加ライブラリとudevルールをインストールする必要があります。

1) ターミナルウィンドウを開く

2) 次のコマンドを実行してEPEL リポジトリをインストールします: sudo dnf install epel-release

3) 次のコマンドを実行して、 Nukeデバイスとインターフェースできるようにhidapiをインストールします。
sudo dnf install hidapi hidapi-devel

4) sudo dnf install cmake
を実行してcmakeをインストールします。 sudo dnf install cmake

5) 次に、ターミナル ウィンドウでダウンロードフォルダーを参照して次のコマンドを実行し、 OpenHMDをインストールします。
sudo git clone --recursive https://github.com/thaytan/OpenHMD.git

6) ダウンロード フォルダーから、 cd OpenHMDと入力してOpenHMDフォルダーを開き、次のコマンドを実行してOpenHMD をコンパイルしてインストールします。

注: OpenHMD は特定のドライバーを使用してコンパイルできます。使用可能なドライバーの詳細については、公式githubを参照してください。また、検出されたデバイスをインストールするために、 cmakeコマンドの後に「..」を使用することもできます。

a. mkdir build
b. cd build
c. cmake..
d. make
e. sudo make install

7) VRヘッドセットにコントローラーが付属している場合は、 xr-hardwareをインストールすることで、コントローラーを有効にするために必要なudevルールを設定できます。ターミナルセッションでダウンロードフォルダを開き、以下のコマンドを実行することでインストールできます。
sudo git clone --recursive https://gitlab.freedesktop.org/monado/utilities/xr-hardware.git

8) 次に、 cd xr-hardwareと入力してxr-hardwareフォルダーを開き、次のコマンドを実行してxr-hardwareをビルドしてインストールします。

a. make
b. sudo make install

上記のコマンドを実行すると、 Nuke 「デバイス」の「ビューアーモニター出力プロパティ」ドロップダウンに HMD ユニットが表示されます。ただし、ヘッドセットで出力を表示するには、以下の CentOS 7 セクションの説明に従って、 xorg.confファイルで HMD を有効にする必要がある場合があります。

CentOS 7でVRヘッドセットを有効にする

NVIDIA ドライバーの設定

構成ファイルを調整するために必要な手順は次のとおりです。

1) sudo または root として、テキスト エディターで次のファイルを開きます。

/etc/X11/xorg.conf

注: xorg.conf ファイルが存在しない場合は、次のコマンドを使用して作成できます。

sudo nvidia-xconfig

2) 設定ファイルの「デバイス」セクションを見つけます。

3) 以下の例の画像に示すように、セクションに次の行を追加します。

Option "AllowHMD" "yes"


4) 更新したファイルを保存し、ヘッドセットデバイスを接続します。

5) マシンを再起動します。

Nvidiaの設定ファイルを調整したら、 NukeCaraVRを起動してVRヘッドセットの動作をテストできます。Nuke Nuke sudoまたはroot権限で起動する必要があります。また、モニター出力の詳細設定のデバイスノブにヘッドセットを使用するオプションが表示されるはずです。

ビューアモニター出力パネルを開くには、任意のペインを右クリックし、「ウィンドウ」>「ビューアモニター出力」を選択して追加します。次に、歯車アイコンをクリックしますビューアーモニター出力パネルの左側にあるアイコンをクリックする以下の画像に示すように、プロパティ パネルに詳細設定が表示されます。

ビューアモニタ出力.png

mceclip0.png


注:
CaraVRでヘッドセットを使用する方法の詳細については、次のリンクにあるドキュメントも確認してください。
 作業のレビュー

NUKE rootまたはSUDOで起動せずにヘッドセットを使用する

sudo/root なしでNukeを起動し、Viewer ノードでヘッドセットを有効にしようとすると、ヘッドセットが機能せず、以下のメッセージが表示されることがあります。



この問題は、Linuxがシステムに接続されたUSBデバイスの権限を管理する方法に起因しています。この問題を回避する最も簡単な方法は、 Nuke root/sudoで起動することです。これによりすべての権限が付与されますが、 Nuke root/sudoで実行すると既存のパイプラインに干渉する可能性があります。

ヘッドセットは、 Nuke sudo または 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 は黒く表示されることに注意してください。

HTC VIVEをルート化またはSUDOなしで使用する

次の手順で 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ファイルにそれらのIDに対応するカスタムルールを追加する必要があります。これは以下の手順で実行できます。

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"

この例では、 NukeCaraVR権限を許可するために、以下の 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 の詳細設定デバイス ノブで有効にすると、ヘッドセットが使用できるようになります。

追加のトラブルシューティング

1) OpenHMDの別のバージョンをインストールすると、 CaraVRに同梱されているバージョンと干渉する可能性があります。ヘッドセットで問題が発生した場合は、お使いのマシンにインストールされている他のバージョンのOpenHMDまたは他のヘッドセットドライバーをアンインストールしてみてください。

2) まれに、 AllowHMDプロセスが自動的に機能しない場合があります。この場合、 Nukeでヘッドセットが検出されない問題を解決するには、ヘッドセットがセカンドモニターとして検出されているものの無効になっているNVidia設定を開き、有効にしてください。これで問題は解決し、 Nukeを再起動すると、Viewerの「モニター出力」詳細設定の「デバイス」ノブにヘッドセットが表示されるはずです。

Oculus Rift CV1に関する追加情報

  • Oculus CV1は、内部で電源を入れるまで黒く表示されます。 Nukeのビューア設定。
  • CV1 は Gnome/Kde の使用可能な画面のリストには表示されませんが、ビューアー モニターの出力デバイス ノブでサポートされているデバイスとともに表示されます。
  • ビューアー モニター出力を最初にオンにすると、OS が新しい構成に調整される間、使用可能なすべてのモニターが数秒間黒く表示されます。
  • CV1は閉じるまでオンのままです Nukeでは、OS が新しい構成に調整する間、利用可能なすべてのモニターが数秒間黒く表示されます。

さらに詳しく

Linuxでは、OpenHMDではなくSteamVRをヘッドセットドライバーとして使用することも可能です。ただし、ValveはCentOS 7でのSteamVRのサポートを限定的に提供しています。また、ソフトウェアを実行するには、以下の特定のバージョンのドライバーが必要になります。

エヌビディア:

AMD:

    • SteamVR には、Vulkan サポートと Linux カーネル 4.13 でコンパイルされた Mesa 17.3 以上が必要です。

ドライバーに関する追加情報は、SteamVR for Linux のドキュメントに記載されています。

Centos 7 以外の Linux ディストリビューションにCaraVRNuke 、Steam VR をインストールできる場合は、以下の手順を実行するとヘッドセットが動作する可能性があります。

  1. SteamVR がインストールされ、更新されていることを確認し、SteamVR アプリケーションが正常に実行できるようになるまで、SteamVR で必要なすべての構成手順を実行します。
    - Steam インストール ファイルはここにあります。
  2. SteamVRを閉じますが、Steamは実行したままにします
  3. ターミナルを開き、同じセッションで以下の 2 行を実行し、システム固有のインストールに合わせて必要に応じて調整します。

/home/username/.steam/steam/ubuntu20_04/steam-runtime/run.sh

/usr/local/ Nuke 16.0v4/ Nuke 16.0

注: Nuke / CaraVRとSteamVRで公式にサポートされているLinuxディストリビューションは存在しないため、 NukeとSteamVRの併用は完全にはテストされておらず、期待通りに動作しない可能性があります。ただし、SteamVR対応ヘッドセットでは、OpenHMDよりもフレームレート、歪み補正、視野設定の点で優れたパフォーマンスが得られる可能性があります。

    私たちはそれを聞いて申し訳ございません

    理由をお聞かせください