SteamVR-for-Linux icon indicating copy to clipboard operation
SteamVR-for-Linux copied to clipboard

[BUG] SteamVR Error 307 - headset not recognized - Valve Index / Ubuntu 20.04 / nVidia 440.64 / Notebook

Open michael-nischt opened this issue 4 years ago • 17 comments

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:

  1. Open Steam with the everything conencted an turned on.
  2. Launching SteamVR has an error dialog/message: SteamFail Fail with Error 307 (see screenshot)
  3. Interestingly all components turn green.
  4. However, room setup only shows briefly a black window and crashes. Also the settings (normal ones, not developer settings) crash.
  5. 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 Screenshot from 2020-05-28 22-41-00

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.

michael-nischt avatar May 28 '20 23:05 michael-nischt

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.

kisak-valve avatar May 29 '20 00:05 kisak-valve

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).

michael-nischt avatar May 29 '20 00:05 michael-nischt

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.

michael-nischt avatar May 29 '20 08:05 michael-nischt

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?

kisak-valve avatar May 29 '20 11:05 kisak-valve

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!

michael-nischt avatar May 29 '20 13:05 michael-nischt

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.

kisak-valve avatar May 29 '20 13:05 kisak-valve

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:

  1. Open Steam with the everything conencted an turned on.
  2. Launching SteamVR has an error dialog/message: SteamFail Fail with Error 307 (see screenshot)
  3. Interestingly all components turn green.
  4. However, room setup only shows briefly a black window and crashes. Also the settings (normal ones, not developer settings) crash.
  5. 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 Screenshot from 2020-05-28 22-41-00

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

tahussle avatar May 30 '20 19:05 tahussle

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

Gnostiphage avatar Jun 17 '20 20:06 Gnostiphage

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

tahussle avatar Jun 17 '20 22:06 tahussle

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.

fajarnugroho93 avatar Jun 18 '20 12:06 fajarnugroho93

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

michael-nischt avatar Jun 18 '20 12:06 michael-nischt

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?

fajarnugroho93 avatar Jun 18 '20 12:06 fajarnugroho93

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.

vanessakindell avatar Jul 07 '20 23:07 vanessakindell

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!

frostworx avatar Jul 14 '20 09:07 frostworx

https://github.com/KhronosGroup/Vulkan-Loader/issues/433

lordheavy avatar Jul 14 '20 16:07 lordheavy

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.

leaf-node avatar Jun 25 '22 03:06 leaf-node

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.

mariocorsanici avatar Jul 12 '22 14:07 mariocorsanici

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.

Manni1000 avatar Dec 11 '22 06:12 Manni1000