SteamVR-for-Linux
SteamVR-for-Linux copied to clipboard
[BUG] SteamVR Error 307 - headset not recognized - Valve Index / Ubuntu 20.04 / nVidia 440.64 / Notebook
Describe the bug
The Valve Index HMD is not recognized. SteamVR shows error 307. Essentially the Headset is not usable. Also enable direct mode in the developer settings as suggested doesn't work.
To Reproduce Steps to reproduce the behavior:
- Open Steam with the everything conencted an turned on.
- Launching SteamVR has an error dialog/message: SteamFail Fail with Error 307 (see screenshot)
- Interestingly all components turn green.
- However, room setup only shows briefly a black window and crashes. Also the settings (normal ones, not developer settings) crash.
- Enabling Direct Mode does not work.
Expected behavior The headset is recognized and works. It does on my older Linux notebook. Sadly the old one is not performing well for VR in general and HL: Alyx
System Information (please complete the following information):
- Distribution: Ubuntu 20.04
- SteamVR version: 1.24.4 (latest beta); also tried the last stable and the old linux_temp beta
- Steam client version: May 28 2020, Latest beta; also tried latest stable
- Opted into Steam client beta?: Yes (but same result with No)
- Graphics driver version: nVidia is 440.64 but
vulkaninfo
also shows Mesa 20.0.4 for the Intel GPU - Gist for SteamVR System Information: SteamVR System Info | Steam System Info | Vulkan Info
Screenshots
Additional context The Index works fine on my other, older notebook with Ubuntu 18.04 installed and an nVidia GeForce 1070. It could be the newer Ubuntu version (missing 32bit libs, new kernel, ..) or any different hardware. Further the notebook causing troubles has no option to disable the intel GPU in the bios. Hopefully the logs contain useful information if that's a problem.
Hello @michael-nischt, I'm no expert in reading SteamVR System Info reports, but it looks like vrcompositor isn't finding the Index on any of the display outputs:
Thu May 28 2020 22:40:33.941042 - Looking for direct display through RandR
Thu May 28 2020 22:40:33.941055 - - Root 0x28b
Thu May 28 2020 22:40:33.945345 - - Output 0x1bd - 0 modes, 0 preferred
Thu May 28 2020 22:40:33.945389 - - Output 0x1be - 0 modes, 0 preferred
Thu May 28 2020 22:40:33.945418 - - Output 0x1bf - 0 modes, 0 preferred
Thu May 28 2020 22:40:33.945445 - - Output 0x1c0 - 0 modes, 0 preferred
Thu May 28 2020 22:40:33.945471 - - Output 0x1c1 - 0 modes, 0 preferred
Thu May 28 2020 22:40:33.945497 - - Output 0x1e4 - 161 modes, 1 preferred
Thu May 28 2020 22:40:33.945508 - - Mode 0 0x1e6 1920x1080 (looking for 2880x1600)
Maybe check if it is listed on one of the outputs in xrandr
? Since this is an optimus laptop, I suspect there's a display output that gets powered down when the nVidia chipset is inactive.
Hi @kisak-valve, thanks for the quick reply!
I ran xrandr
quickly but sadly I'm doubtful it helps.
The output is the same no matter if the Index HMD is connected or not:
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 355mm x 199mm
1920x1080 144.00*+ 60.01 60.02 59.97 59.96 59.93
1680x1050 84.94 74.89 69.88 59.95 59.88
1600x1024 60.17
1400x1050 85.00 74.76 70.00 59.98
1600x900 59.99 59.94 59.95 59.82
1280x1024 85.02 75.02 60.02
1440x900 59.89
1400x900 59.96 59.88
1280x960 85.00 60.00
1440x810 60.00 59.97
1368x768 59.88 59.85
1360x768 59.80 59.96
1280x800 59.99 59.97 59.81 59.91
1152x864 100.00 85.06 85.00 75.00 75.00 70.00 60.00
1280x720 60.00 59.99 59.86 59.74
1024x768 85.00 75.05 60.04 85.00 75.03 70.07 60.00
1024x768i 86.96
960x720 85.00 75.00 60.00
928x696 75.00 60.05
896x672 75.05 60.01
1024x576 59.95 59.96 59.90 59.82
960x600 59.93 60.00
832x624 74.55
960x540 59.96 59.99 59.63 59.82
800x600 85.00 75.00 70.00 65.00 60.00 85.14 72.19 75.00 60.32 56.25
840x525 85.02 74.96 69.88 60.01 59.88
864x486 59.92 59.57
800x512 60.17
700x525 85.08 74.76 70.06 59.98
800x450 59.95 59.82
640x512 85.02 75.02 60.02
720x450 59.89
700x450 59.96 59.88
640x480 85.09 60.00 85.01 72.81 75.00 59.94
720x405 59.51 58.99
720x400 85.04
684x384 59.88 59.85
680x384 59.80 59.96
640x400 59.88 59.98 85.08
576x432 100.11 85.15 85.09 75.00 75.00 70.00 60.06
640x360 59.86 59.83 59.84 59.32
640x350 85.08
512x384 85.00 75.03 70.07 60.00
512x384i 87.06
512x288 60.00 59.92
416x312 74.66
480x270 59.63 59.82
400x300 85.27 72.19 75.12 60.32 56.34
432x243 59.92 59.57
320x240 85.18 72.81 75.00 60.05
360x202 59.51 59.13
360x200 85.04
320x200 85.27
320x180 59.84 59.32
320x175 85.27
At first I thought that might explain the problem. However, I also tried on the notebook the Index works:
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
1920x1080 120.11*+ 60.06
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
To my surprise here it also the same with the Index disconnected and with it running (when I can see the VR Home).
Note sure if relevant but just in case: The linked vukaninfo
just contains the standard output and I noticed those two lines printed to the stderror:
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS32
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
Those are not present on the working notebook with the intel GPU disabled and Ubuntu 18.04 which still support full 32bit libs.
Blind guess, does sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json /usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled
have an effect?
The guess was spot on, thanks so much!
While the ERRORs for vulkaninfo
remain, SteamVR works just fine now. :-)
That said I'm hesitant to close the bug report since it seems like a workaround to me. Please correct me if I'm wrong about anything following and I will.
1.) Vulkan is in principle designed to be able to use more than one device (e.g. Intel GPU + nVidia GPU), right?. My guess is disabling the Intel GPU system-wide prevents other Vulkan apps to do so if they desire.
2). I have/had a similar problem which happens also only on that particular notebook with both GPUs exposed to Vulkan. Specifically it was with the Unity Editor
(not the built players/app) when started with the -force-vulkan
option. I am/was in contact with their enterprise support team and they confirmed it is an issue on the application side. Further, they fixed it in the mainline already. In the latest 2020.1 beta the issue isn't happening to me anymore. There's still in a open ticket to backport the fix to 2019.3/4 LTS. Turned out to be good that it isn't so I could verify that both issue seem to be related. (Let me know If any ticket ids are of any help and I can share them. The details can't be accessed publicly sadly.)
For those two reasons, I assume it's an issue Valve should address in SteamVR eventually. Please let me know if I'm mistaken here and I'll close the ticket.
Thanks again so much. Due to your blind guess I can enjoy HL: Alyx this weekend!
Thanks for testing, that tells us SteamVR was picking the wrong Vulkan implementation needed to bring up the HMD, but personally, I don't know why.
If you want to use the 64 bit Vulkan Intel stack, you could try moving the icd file back, and add VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json" %command%
to SteamVR's launch options, but after that, games may also try to run on the Intel chipset with its relatively weak performance compared to the nVidia chipset. Assuming VK_ICD_FILENAMES is a viable workaround, it could also be applied to the games as well.
Describe the bug
The Valve Index HMD is not recognized. SteamVR shows error 307. Essentially the Headset is not usable. Also enable direct mode in the developer settings as suggested doesn't work.
To Reproduce Steps to reproduce the behavior:
- Open Steam with the everything conencted an turned on.
- Launching SteamVR has an error dialog/message: SteamFail Fail with Error 307 (see screenshot)
- Interestingly all components turn green.
- However, room setup only shows briefly a black window and crashes. Also the settings (normal ones, not developer settings) crash.
- Enabling Direct Mode does not work.
Expected behavior The headset is recognized and works. It does on my older Linux notebook. Sadly the old one is not performing well for VR in general and HL: Alyx
System Information (please complete the following information):
- Distribution: Ubuntu 20.04
- SteamVR version: 1.24.4 (latest beta); also tried the last stable and the old linux_temp beta
- Steam client version: May 28 2020, Latest beta; also tried latest stable
- Opted into Steam client beta?: Yes (but same result with No)
- Graphics driver version: nVidia is 440.64 but
vulkaninfo
also shows Mesa 20.0.4 for the Intel GPU- Gist for SteamVR System Information: SteamVR System Info | Steam System Info | Vulkan Info
Screenshots
Additional context The Index works fine on my other, older notebook with Ubuntu 18.04 installed and an nVidia GeForce 1070. It could be the newer Ubuntu version (missing 32bit libs, new kernel, ..) or any different hardware. Further the notebook causing troubles has no option to disable the intel GPU in the bios. Hopefully the logs contain useful information if that's a problem.
Exactly the same issue on ubuntu 20.04 desktop with a 1080 ti and nvidia 440 drivers installed
I had the same issue, with roughly the same solution, but I'm using two AMD Vega 64s (hopefully the diversity of the graphics cards and settings illuminates the issue more clearly).
Workaround: Moved /usr/share/vulkan/icd.d/amd_icd{32,64}.json to /usr/share/vulkan/icd.d/amd_icd{32,64}.json.disabled, forcing the use of radeon_icd.{i686,x86_64}.json in the same folder.
System Information:
- Distribution: Arch (kernel 5.7.2-arch1-1)
- SteamVR version: 1.12.5 (1590711374); also tried the latest beta and the linux_temp beta
- Steam client version: pacman says it's 1.0.0.63-1
- Opted into Steam client beta?: No
- Graphics driver version: xf86-video-amdgpu 19.1.0, mesa 20.1.1
- Gist for SteamVR System Information: SteamVR System Info | Steam System Info | Vulkan Info
yes same thing resolved for me . Nvidea 1080TI wih multiple screens + onboard Intel mobo GPU sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json /usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled
yes same thing resolved for me . Nvidea 1080TI wih multiple screens + onboard Intel mobo GPU sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json /usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled
it is not the case for me, Notebook, Nvidia 1050 + integrated Intel. Able to run VR on Windows but not on Ubuntu 18.04. Could you share the content of the nvidia_icd.json? For me it is:
{
"file_format_version" : "1.0.0",
"ICD": {
"library_path": "libGLX_nvidia.so.0",
"api_version" : "1.1.119"
}
}
I don't know but is it correct to have libGLX_nvidia.so.0 in the library path instead of the latest driver e.g. libGLX_nvidia.so.440.82?
I also have radeon_icd.x86_64.json in /usr/share/vulkan/icd.d/, is it normal? I've disabled it and it is still the same, 307.
yes same thing resolved for me . Nvidea 1080TI wih multiple screens + onboard Intel mobo GPU sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json /usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled
it is not the case for me, Notebook, Nvidia 1050 + integrated Intel. Able to run VR on Windows but not on Ubuntu 18.04. Could you share the content of the nvidia_icd.json? For me it is:
{ "file_format_version" : "1.0.0", "ICD": { "library_path": "libGLX_nvidia.so.0", "api_version" : "1.1.119" } }
I don't know but is it correct to have libGLX_nvidia.so.0 in the library path instead of the latest driver e.g. libGLX_nvidia.so.440.82?
I also have radeon_icd.x86_64.json in /usr/share/vulkan/icd.d/, is it normal? I've disabled it and it is still the same, 307.
At least for me it's correct as it is a symlink to the other in /usr/lib/x86_64-linux-gnu
: libGLX_nvidia.so.0 -> libGLX_nvidia.so.440.64
At least for me it's correct as it is a symlink to the other in
/usr/lib/x86_64-linux-gnu
:libGLX_nvidia.so.0 -> libGLX_nvidia.so.440.64
Ah, cool, I just learned that now. Yes, it is also the same for me. Is your direct mode also enabled by disabling the intel vulkan?
My workaround for this bug was simply to rename the Intel vulkan drivers libvulkan_intel.disabled. It booted right up after that and works great.
This should be a simple fix on Valve's part, detect if there's both an Intel and either Nvidia or AMD card, and prioritize using the Vulkan drivers for the Nvidia or AMD over the Intel ones whenever possible.
fyi: at least on arch linux vulkan-icd-loader-1.2.146-1 also makes SteamVR fail with Error 307 downgrading to vulkan-icd-loader-1.2.145-1 fixes the problem!
https://github.com/KhronosGroup/Vulkan-Loader/issues/433
On Fedora 36, I had to disable lvp_icd.x86_64.json
by adding a .disabled
extension to the file name, similar to instructions above. I also had to log in with Xorg instead of Wayland.
Hi everyone!
I want to share my experience with this bug. I have two computers with similar configuration: Alienware M15 and Dell G15 5521se. In the former, I was able to solve the bug that displays the images on the desktop instead on the HMD, with the latter I can't. The Alienware M15 R6 has the following setup:
- Alienware M15 R6 BIOS Alienware 1.9.1
- CPU i7-11800H
- GPU Nvidia GeForce RTX 3060
- Dual boot Windows10 and Ubuntu 20.04.3lts
- GNOME version 3.36.8
- X11
- Linux kernel 5.11.0.27-generic
- Nvidia driver 470.57.02
- Steam package 1654574690
- SteamVR beta 1.23.4
With this configuration I can run steamVR with Valve Index. The first time I run the SteamVR, I get error 307, but renaming vulkan file for intel solve the issue. The images are displayed correctly on the lenses, the system crashes rarely during the usage. When it does, if I run SteamVR I usually get the extended mode bug. I can solve the issue simply disconnecting and reconnecting Index power cable. The critical aspects seems the kernel version and installing steamVR via apt. Using another kernel gives the extended mode bug consistenlty. Using apt I can install SteamVR without having problems of dependencies of any type.
I tried to configure a Dell G15 with a similar configuration, but on this machine the images are shown correctly on the desktop and not on the HMD, that is totally black.
- Dell G15 5521 special edition Dell BIOS 1.8
- CPU i7-12700H
- GPU Nvidia GeForce RTX 3060
- Dual boot Windows 11 and Ubuntu 20.04.4lts
- GNOME version 3.36.8
- X11
- Linux kernel 5.18.0-10.2-liquorix-amd64 ( I was forced to use this cause the mainline kernel do not work on this machine )
- Nvidia driver 470.129.06
- Steam package 1654574690
- SteamVR beta 1.23.4
I installed SteamVR using apt as before, I solved the bug given by the wrong vulkan selection ( error 307 ), but I always get the images on the desktop instead of the HMD, in addition SteamVR asks me to pass to the extended mode. The first difference noticeble is that linux kernel is not the same. With the Alienware, I tried more recent kernel versions but none of them works. With Dell G15 i cant find another kernel version that works for all the hardware of my computer ( I get wifi/bluetooth board problems and also problems in recognizing the Nvidia GPU).
I hope these informations can be helpful to find a solution to this problem. If you want I can provide additional informations like steamVR report etc etc.
i had the same problem i have a weak intel gpu and a strong nvidia gpu in my laptop. strange that valve still didn't fix the buck after almost 2 years. the workaround works but isn't optimal.