创建支持服务单
关注

Q100455:在Linux上为CaraVR启用VR耳机

摘要

本文提供有关如何在Linux上启用VR耳机的指导。这包括如何配置较新的NVidia驱动程序以使用CaraVR以及如何配置耳机以便工作而无需将Nuke作为sudo / root启动。


更多信息

Linux对HTC Vive和Oculus Rift CV1等耳机的支持需要像OpenHMD第三方库这样的驱动程序,它是作为CaraVR安装过程的一部分安装的。但是,由于NVidia驱动程序发生变化,需要调整NVidia的配置文件,以便允许所有CaraVR版本将耳机用作监视器 输出显示设备。

注意: 在调整配置文件之前,请确保NVidia GPU驱动程序是最新的。要更新它们,请查看下面链接的NVidia网站:

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

配置NVIDIA驱动程序

以下是调整配置文件时需要遵循的步骤:

1)作为sudo或root,在文本编辑器中打开以下文件:

/etc/X11/xorg.conf

2)找到配置文件中显示 “设备”部分的部分

3)将以下行添加到该部分,如下所示:

Option "AllowHMD" "yes"


4)保存更新的文件并插入耳机设备

5)重新启动机器

现在已经调整了NVidia配置文件,您可以通过启动Nuke和CaraVR来测试您的VR耳机是否正常工作。请注意,Nuke必须是 sudo或root,并且使用耳机的选项现在应该出现在Viewer节点的MonitorOutDevice旋钮中

注意:您还可以通过以下链接查看我们的文档,了解有关在CaraVR中使用耳机的更多信息:   检查你的工作

使用HEADSETS而不是以NUKE为根或SUDO

在没有sudo / root的情况下启动Nuke并尝试在Viewer节点中启用耳机时,耳机可能无法正常工作,并且将显示以下消息:



此问题是由于Linux如何管理插入系统的USB设备的权限。解决此问题的最简单方法是以root / sudo身份启动Nuke,因为所有权限都被授予,但是以root / sudo身份运行Nuke会干扰现有管道。

可以使用耳机而无需将Nuke作为sudo或root启动,但这需要额外的设置,详情如下:

使用OCULUS RIFT CV1,无需使用ROO T或 SUDO

以下步骤应将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。

ñOTE:当在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,因此需要将自定义规则添加到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"

在此示例中,添加了以下三行以允许Nuke和CaraVR权限:

 # 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的启用监视器输出旋钮中启用耳机。

其他故障排除

1)安装另一个版本的OpenHMD可能会干扰CaraVR附带的版本。如果您在使用耳机时遇到问题,请尝试卸载计算机上安装的任何其他版本的OpenHMD或其他耳机驱动程序。

2)有时AllowHMD过程不能完全自动运行。在这种情况下,要纠正未在Nuke中检测到的耳机,请打开NVidia设置,其中耳机被检测为第二个监视器但已禁用,然后启用它。这应该可以解决这个问题,当重新启动Nuke时,耳机应该出现在Viewer节点的MonitorOutDevice旋钮中。

3)目前,在耳机上预览查看器时,查看器可能只出现在左上角,显示其背后的桌面背景,因为CaraVR似乎默认情况下不会使查看器全屏。

我们已将此记录为我们开发团队的错误,您可以使用以下链接跟踪错误的状态:

TP 370526 - 在Linux上,耳机不会全屏显示Nuke的输出查看器。

您可以通过将鼠标光标移动到耳机屏幕上并双击视口来解决此问题,该视口应使其在耳机上全屏显示。



进一步阅读

也可以在Linux上使用SteamVR作为耳机驱动程序,而不是OpenHMD,但在撰写本文时,这是正式不支持的,因为Valve不支持CentOS 6/7上的SteamVR,这是CaraVR支持的Linux发行版和核弹。

如果您能够在Centos 6/7以外的Linux发行版上安装CaraVR,Nuke和Steam VR,那么使用以下步骤可能会使耳机工作。

  1. 确保已安装和更新SteamVR,在SteamVR中执行所有必要的配置步骤,直到任何SteamVR应用程序成功运行
  2. 关闭SteamVR,但保持Steam运行
  3. 打开终端并在同一会话中运行下面的两行,根据系统特定安装的需要进行调整:

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

/usr/local/Nuke11.2v5/Nuke11.2

注意:由于CaraVR和SteamVR都没有正式支持的单个Linux发行版,因此使用CaraVR和SteamVR尚未经过全面测试,可能无法按预期工作。但是,它可以在SteamVR支持的耳机而不是OpenHMD的帧速率,失真校正和视野设置方面提供更好的性能。

这篇文章有帮助吗?
/

We're sorry to hear that!

Please tell us why.
0 人中有 0 人觉得有帮助

评论