概括
本文提供有关如何在 Linux 上启用 VR 耳机的指南。这包括如何配置较新的 Nvidia 驱动程序以与Nuke和CaraVR配合使用,以及如何配置耳机使其工作而无需以 sudo/root 身份启动Nuke 。
更多信息
Linux 上的耳机(例如 HTC Vive 和 Oculus Rift CV1)需要 OpenHMD 第三方库等驱动程序,该驱动程序作为Nuke / CaraVR安装过程的一部分进行安装。但是,由于 Nvidia 驱动程序的默认设置方式,需要调整 Nvidia 的配置文件,才能允许耳机用作 Monitor Out 显示设备。
注意: CaraVR插件现已包含在Nuke版本 12.0+ 中
在调整配置文件之前,请确保Nvidia GPU驱动程序是最新的。要更新它们,请检查下面链接的 Nvidia 网站:
https://www.nvidia.com/Download/index.aspx?lang=en-in
配置 NVIDIA 驱动程序
以下是调整配置文件需要遵循的步骤:
1) 作为 sudo 或 root,在文本编辑器中打开以下文件:
/etc/X11/xorg.conf
注意:如果 xorg.conf 文件不存在,则可以使用以下命令创建它:
sudo nvidia-xconfig
2) 找到配置文件中显示“Device”部分的部分
3) 将以下行添加到该部分,如下例图所示:
Option "AllowHMD" "yes"
4) 保存更新的文件并连接耳机设备。
5) 重新启动机器。
现在 Nvidia 配置文件已调整完毕,您可以通过启动Nuke和CaraVR来测试您的 VR 耳机是否正常工作。请注意, Nuke必须以 sudo 或 root 身份启动,并且使用耳机的选项现在应该出现在“监视器输出”高级设置的“设备”旋钮中。
要打开“Viewer Monitor Out”面板,请右键单击任意窗格并选择“Windows”>“Viewer Monitor Out”以添加它。然后点击齿轮 Viewer Monitor Out面板左侧的 图标可显示属性面板中的高级设置,如下图所示:
注意:您还可以通过以下链接查看我们的文档,了解有关将耳机与CaraVR一起使用的更多信息: 回顾你的工作
使用耳机而不启动NUKE作为 root 或 SUDO
当在没有 sudo/root 的情况下启动Nuke并尝试在 Viewer 节点中启用耳机时,耳机可能无法工作,并且将显示以下消息:
此问题是由于 Linux 如何管理插入系统的 USB 设备的权限造成的。解决此问题的最简单方法是以 root/sudo 身份启动Nuke ,因为所有权限均已授予,但是以 root/sudo 身份运行Nuke可能会干扰现有管道。
无需以 sudo 或 root 身份启动Nuke即可使用耳机,但这需要额外的设置,详细信息如下:
在没有 ROOT或SUDO的情况下使用 OCULUS RIFT CV1
以下步骤应将 Oculus Rift CV1 添加到83-hmd.rules udev 文件,这应防止出现“Rift (CV1)”已在使用消息:
注意:在执行这些步骤之前,请勿插入 CV1 耳机或启动Nuke 。
1) 确保想要使用耳机的用户的用户ID属于组plugdev ,如果需要,创建一个名为plugdev的权限组。请查看 Linux 发行版文档,了解有关如何创建权限组并向组添加用户 ID 的信息。
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 显示黑色,直到在 Monitor Out 高级设置设备旋钮中启用它。
无需 ROOT 或 SUDO 即可使用 HTC VIVE
以下步骤应将 HTC Vive 添加到83-hmd.rules udev 文件,这应防止出现“HTC Vive”已在使用消息:
1) 确保用户ID属于组plugdev ,如果需要,创建一个名为plugdev的组。请查看 Linux 发行版的文档,了解有关如何创建组并向组添加用户 ID 的信息。
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权限:
# 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时,耳机应该出现在“查看器监视器输出”高级设置“设备”旋钮中。
关于 OCULUS RIFT CV1 的附加说明
- Oculus CV1 会显示黑色,直到您在内部将其打开 Nuke的查看器设置。
- CV1 不会出现在 Gnome/Kde 的可用屏幕列表中,它与支持的设备一起显示在 Viewer Monitor Output Device 旋钮中。
- 当您最初打开查看器监视器输出时,随着操作系统调整到新配置,所有可用的监视器都会显示黑色几秒钟。
- CV1 保持打开状态直到您关闭 Nuke ,当操作系统调整到新配置时,这会导致所有可用的显示器显示黑色几秒钟。
延伸阅读
也可以使用 Linux 上的 SteamVR 作为耳机驱动程序,而不是 OpenHMD。然而,Valve 对 CentOS 7 上的 SteamVR 支持有限。此外,运行该软件需要特定的驱动程序版本,可以在下面找到:
英伟达:
- NVIDIA 卡需要430.26 版或更高版本的 NVIDIA 驱动程序才能使用 SteamVR Beta。
超微半导体:
- SteamVR 至少需要使用 vulkan 支持和 Linux 内核 4.13 编译的 Mesa 17.3。
有关驱动程序的更多信息,请参阅适用于 Linux 的 SteamVR 文档。
如果您能够在 Centos 7 以外的 Linux 发行版上安装CaraVR 、 Nuke和 Steam VR,则使用以下步骤可能会让耳机正常工作。
- 确保 SteamVR 已安装并更新,在 SteamVR 中执行所有必要的配置步骤,直到任何 SteamVR 应用程序可以成功运行
- Steam 安装文件可以在这里找到。 - 关闭 SteamVR,但保持 Steam 运行
- 打开终端并在同一会话中运行以下两行,根据系统特定安装的需要调整它们:
/home/username/.steam/steam/ubuntu20_04/steam-runtime/run.sh
/usr/local/ Nuke 14.0v6/ Nuke 14.0
注意:由于Nuke / CaraVR和 SteamVR 没有正式支持单一 Linux 发行版,因此将Nuke与 SteamVR 结合使用尚未经过充分测试,可能无法按预期工作。然而,它可能在帧率、失真校正和视野设置方面为 SteamVR 支持的耳机提供比 OpenHMD 更好的性能。
我们很遗憾听到
请告诉我们