protonscr

[BUG] Valve Index camera not working

steamvropen bug
ValveSoftware/SteamVR-for-Linux#231 · opened 2019-08-12 by Zamundaaa · updated 2025-02-28 · 82 comments · github
2 matching comments, n / p to jump
ZZamundaaa 2019-08-12 github
  • Distribution: [Arch/Manjaro/Ubuntu/etc.] Manjaro KDE
  • SteamVR version: [E.g. 1.7.2] 1.7.3
  • Steam client version: [build number or date] 1565473496
  • Opted into Steam client beta?: [Yes/No] Yes
  • Graphics driver version: Mesa 19.2.0-devel (git-34dd1ddde6) (LLVM 8.0.1) ACO from the AUR
  • Gist for SteamVR System Information: https://gist.github.com/Zamundaaa/11861124cd7b111b6dafe7bcace6ecfe

As the title says. I have tried my USB 3.1 ports on the computer as well as the 3.0 ones. No working camera with either ones.
Screenshot_20190812_220058

GGoofybud16 2019-08-13 github

I've seen the same issue. When my Index is functioning on the USB 3 ports, the cameras don't appear to show up. I believe they do show up in dmesg, though so they are detected.

?ghost 2019-08-15 github

Same for me.

Eebbit1q 2019-08-20 github

Same on pop os (ubuntu) 19.04, steamvr report: https://gist.github.com/ebbit1q/18f1de3192d8ae4b64e5c5b015c8b81d

GGoofybud16 2019-08-30 github

After switching to USB 3 again, I've noticed that SteamVR still can't seem to find the cameras.

Here's the dmesg log when I plug in the headset at the Trident cable:

[24773.428780] usb 5-3: new high-speed USB device number 23 using xhci_hcd
[24773.582033] usb 5-3: New USB device found, idVendor=28de, idProduct=2613, bcdDevice= 1.82
[24773.582035] usb 5-3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[24773.633821] hub 5-3:1.0: USB hub found
[24773.634007] hub 5-3:1.0: 3 ports detected
[24776.620729] usb 5-3.3: new high-speed USB device number 24 using xhci_hcd
[24776.731135] usb 5-3.3: New USB device found, idVendor=0424, idProduct=2744, bcdDevice= 2.21
[24776.731138] usb 5-3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[24776.731139] usb 5-3.3: Product: USB2744
[24776.731140] usb 5-3.3: Manufacturer: Microchip Tech
[24776.769796] hub 5-3.3:1.0: USB hub found
[24776.770010] hub 5-3.3:1.0: 5 ports detected
[24776.856758] usb 6-3: new SuperSpeed Gen 1 USB device number 10 using xhci_hcd
[24776.881061] usb 6-3: New USB device found, idVendor=0424, idProduct=5744, bcdDevice= 2.21
[24776.881063] usb 6-3: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[24776.881064] usb 6-3: Product: USB5744
[24776.881065] usb 6-3: Manufacturer: Microchip Tech
[24776.897709] hub 6-3:1.0: USB hub found
[24776.897731] hub 6-3:1.0: 4 ports detected
[24777.132728] usb 5-3.3.1: new full-speed USB device number 25 using xhci_hcd
[24777.261657] usb 5-3.3.1: New USB device found, idVendor=28de, idProduct=2300, bcdDevice= 2.00
[24777.261659] usb 5-3.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[24777.261660] usb 5-3.3.1: Product: Index HMD
[24777.261661] usb 5-3.3.1: Manufacturer: Valve
[24777.261662] usb 5-3.3.1: SerialNumber: LHR-11BF2815
[24777.457435] hid-generic 0003:28DE:2300.001D: hiddev5,hidraw9: USB HID v1.11 Device [Valve Index HMD] on usb-0000:2b:00.3-3.3.1/input0
[24777.467892] hid-generic 0003:28DE:2300.001E: hiddev6,hidraw10: USB HID v1.11 Device [Valve Index HMD] on usb-0000:2b:00.3-3.3.1/input1
[24777.478881] hid-generic 0003:28DE:2300.001F: hiddev7,hidraw11: USB HID v1.11 Device [Valve Index HMD] on usb-0000:2b:00.3-3.3.1/input2
[24777.560721] usb 5-3.3.5: new high-speed USB device number 26 using xhci_hcd
[24777.671175] usb 5-3.3.5: New USB device found, idVendor=0424, idProduct=2740, bcdDevice= 2.00
[24777.671176] usb 5-3.3.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[24777.671177] usb 5-3.3.5: Product: Hub Controller
[24777.671177] usb 5-3.3.5: Manufacturer: Microchip Tech
[24778.028708] usb 5-3.3.2: new full-speed USB device number 27 using xhci_hcd
[24778.159656] usb 5-3.3.2: New USB device found, idVendor=28de, idProduct=2102, bcdDevice= 1.00
[24778.159658] usb 5-3.3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[24778.159659] usb 5-3.3.2: Product: Valve VR Radio
[24778.159660] usb 5-3.3.2: Manufacturer: Valve Corporation
[24778.159661] usb 5-3.3.2: SerialNumber: C030191C6C-RYB
[24778.290233] hid-generic 0003:28DE:2102.0020: hiddev8,hidraw12: USB HID v1.11 Device [Valve Corporation Valve VR Radio] on usb-0000:2b:00.3-3.3.2/input0
[24778.290316] cdc_acm 5-3.3.2:1.1: ttyACM0: USB ACM device
[24778.512704] usb 5-3.3.3: new full-speed USB device number 28 using xhci_hcd
[24778.635654] usb 5-3.3.3: New USB device found, idVendor=28de, idProduct=2102, bcdDevice= 1.00
[24778.635657] usb 5-3.3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[24778.635658] usb 5-3.3.3: Product: Valve VR Radio & HMD Mic
[24778.635659] usb 5-3.3.3: Manufacturer: Valve Corporation
[24778.635660] usb 5-3.3.3: SerialNumber: 8B37344787-LYM
[24778.739078] hid-generic 0003:28DE:2102.0021: hiddev11,hidraw15: USB HID v1.11 Device [Valve Corporation Valve VR Radio & HMD Mic] on usb-0000:2b:00.3-3.3.3/input0
[24779.388830] usb 6-3.1: new SuperSpeed Gen 1 USB device number 11 using xhci_hcd
[24779.638454] usb 6-3.1: New USB device found, idVendor=28de, idProduct=2400, bcdDevice= 0.04
[24779.638456] usb 6-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[24779.638457] usb 6-3.1: Product: 3D Camera
[24779.638458] usb 6-3.1: Manufacturer: Etron Technology, Inc.
[24779.638459] usb 6-3.1: SerialNumber: 00000001
[24779.691086] uvcvideo: Found UVC 1.00 device 3D Camera (28de:2400)
[24779.762943] uvcvideo 6-3.1:1.0: Entity type for entity Extension 4 was not initialized!
[24779.762945] uvcvideo 6-3.1:1.0: Entity type for entity Processing 3 was not initialized!
[24779.762947] uvcvideo 6-3.1:1.0: Entity type for entity Camera 1 was not initialized!
[24779.763018] input: 3D Camera: eTronVideo as /devices/pci0000:00/0000:00:08.1/0000:2b:00.3/usb6/6-3/6-3.1/6-3.1:1.0/input/input37

This also results in the addition of the /dev/video0 and /dev/video1 devices, however VLC doesn't seem to know what to do with them (and completely fails to open /dev/video1).

GGrayBoltWolf 2019-08-31 github

Same issue here, all headset functions work but Steam says camera is disconnected.

CChristophHaag 2019-09-12 github

SteamVR says camera not available for me too.

The cameras work fine with guvcview (take ~2 seconds to initialize though).

GGoofybud16 2019-09-18 github

I've also confirmed that the cameras work fine in Chromium.

Mmaxaudron 2019-09-24 github

i've found that the camera isn't added to the steam-vr udev rules yet.
Try adding the line

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2400", MODE="0660", TAG+="uaccess"

to the end of /lib/udev/rules.d/60-steam-vr.rules

ZZamundaaa 2019-09-24 github

Added it, rebooted and doesn't change anything. SteamVR says "camera not available" as always. Does it work for you?

Ccodingcatgirl 2019-09-29 github

Same problem here on Arch Linux. Cameras are "not available" on any USB ports, but guvcview can load them up just fine.

UUeflaVR 2019-10-14 github

Same problem. Do you guys have installed openvr Input emulator?

Edit. Removing openvr Input emulator fixed for me. But I need that program, so no cam for now.

ZZamundaaa 2019-10-17 github

No I haven't. Interesting that removing it fixes the camera for you though

GGoofybud16 2019-10-20 github

AFAIK Input Emulator is a Windows only application, and it's known to break the camera functionality in SteamVR. It breaks it on the Vive too from what I'd read.

GGoofybud16 2019-10-26 github

Tried a different udev rule, didn't really accomplish much, but maybe useful to someone else:

KERNEL=="6-4.1", SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2400", MODE="0660", TAG+="uaccess"

Still get

Sat Oct 26 2019 14:04:48.309281 - lighthouse: TrackedCamera: OnWorkThread_OpenCamera()
Sat Oct 26 2019 14:04:48.309451 - lighthouse: TrackedCamera: Couldn't find Dual Cameras at USB VID:28DE, USB PID:2400
Sat Oct 26 2019 14:04:48.324364 - lighthouse: TrackedCamera: Worker thread OpenCamera result: NotFound.
Sat Oct 26 2019 14:04:48.324441 - lighthouse: InitTrackedCamera(): Failed to open expected camera on (LHR-11BF2815): NotFound. Camera services not available.
Sat Oct 26 2019 14:04:48.324462 - lighthouse: TrackedCamera: Stopping Video Stream For Camera Shutdown.
Sat Oct 26 2019 14:04:48.339593 - lighthouse: TrackedCamera: OnWorkThread_CloseCamera()

In the logs.

Kkedodrill 2019-12-05 github

The camera is also not working for me on a basic install of Fedora 31 with XFCE.

Jjcc10 2019-12-05 github

@kedodrill It would be more surprising if it did work as I don't think it works for anyone currently.

Kkedodrill 2019-12-06 github

@jcc10 Figured as much, this post hasn't been updated in over a month so I figured I'd just throw that out there. The camera isn't super useful for me or a core component IMO but it would be nice for all of the hardware to work. I would much rather have Bluetooth work first so I can update my base stations.

Jjcc10 2019-12-06 github

@kedodrill While updating & putting the stations to sleep would be nice, chaperone has a feature where when you are near the border you can see outlines of objects. Which in my room would help stop me from hitting lamps & monitors.

TBH, I think that base stations should be the easier one of the two to implement, but both are the only real features I feel I'm missing by being on Linux.

Kkedodrill 2019-12-06 github

@jcc10 Oh, I didn't know that about chaperone. That sounds super useful.

And that sums it up quite nicely. If both of these features were implemented it would be so much more feature complete. Fingers crossed we get some good news soon!

Kkedodrill 2019-12-10 github

I've noticed that the new UI in SteamVR Beta has some more options for the camera to enable / disable it and also includes chaperone options. However, when switching the camera to enabled, it still does not work. I haven't played around with chaperone settings much but I'm guessing that it still doesn't work either. Still...progress? I'm hopeful...

Eebbit1q 2019-12-10 github

I'd rather have the ui admit that the valve index camera on linux isn't working in steamvr (it works separately, why it doesn't work like the vive camera baffles me)

Kkedodrill 2019-12-10 github

@ebbit1q I would as well, but it is a beta and an entirely new UI so I'm guessing that they are still testing, adding, and removing things.

MManyHatsOfLinux 2019-12-12 github

Has anyone played with permissions on the appropriate /dev/video[0..9] devices?

Getting the hardware soon and ill do what i can.

Ffarmboy0 2019-12-12 github

I havent played with permissions per se but I used guvcview to watch the video feed from the cameras as user which worked fine. So this doesnt seem to be a permission issue.

MManyHatsOfLinux 2019-12-12 github

It could also be apparmor or selinux simillar. Really looking forward to
getting hardware in soon.

On Thu, Dec 12, 2019, 9:16 AM Farmboy0 [email protected] wrote:

I havent played with permissions per se but I used guvcview to watch the
video feed from the cameras as user which worked fine. So this doesnt seem
to be a permission issue.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/SteamVR-for-Linux/issues/231?email_source=notifications&email_token=AJHHO2QPMUUOWIMZU35A4YTQYJBVFA5CNFSM4ILERZGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGWZNWA#issuecomment-565024472,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJHHO2USTQJDCYJP2U64NBLQYJBVFANCNFSM4ILERZGA
.

Ffrostworx 2020-04-16 github

this doesn't seem to be on any priority list, does it?

Hhelifax 2020-04-23 github

Valve doesn't seem to care about the camera.
Issues with the camera are being reported on Windows as well (not only on Index, but on Vives as well).

Ffrostworx 2020-04-23 github

would be nice to have at least basic functionality of an advertised feature though.
I personally don't care so much about the camera, but it should work at least.

Jjpalpant 2020-04-23 github

Not sure if it's better to just 👍 the issue or comment "Me too", but... me too. Same symptom and logs, Ubuntu 19.10, SteamVR 1.11.

ZZamundaaa 2020-04-28 github

would be nice to have at least basic functionality of an advertised feature though.
I personally don't care so much about the camera, but it should work at least.

Well, I would really love if the passthrough finally worked... it was already quite nice on the Vive and that was without depth.
I'd also personally like to use it for some 3d vision projects (for example some sort of advanced chaperone that also warns you when people walk into your play space). There's quite a few possibilities with the tracking + dual camera setup.

PPatola 2020-05-08 github

Not only guvcview works with the camera, but cheese too.

BBillGR17 2020-05-08 github

Not only guvcview works with the camera, but cheese too.

it works everywhere... i can even use it on firefox video calls (it takes a few secs to start tho)

Sslackerbob 2020-06-10 github

Also confirming this issue on ArchLinux (btw)

MManyHatsOfLinux 2020-06-11 github

That Linux Support needs a few asterisks at least at this point.

On Wed, Jun 10, 2020 at 8:17 AM slackerbob [email protected] wrote:

Also confirming this issue on ArchLinux (btw)


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/SteamVR-for-Linux/issues/231#issuecomment-641964676,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJHHO2Q4RYBB6XHRSL7T4QTRV52T3ANCNFSM4ILERZGA
.

--
Sincerely Dale,
Linux Admin for the Future

Ffrostworx 2020-06-19 github
Eebbit1q 2020-06-20 github

Yeah, no room view 3d for us.....

SSemperverus 2020-07-30 github

So it is a year later now since this bug was filed and I am still seeing it.

Cheese (webcam app) can see the cameras from the index just fine on Linux. I booted into Windows to test and the camera mostly works there. Somehow the Linux SteamVR implementation can't see them. Very strange.

Mmimattr 2020-07-31 github

So it is a year later now since this bug was filed and I am still seeing it.

@Semperverus Agreed, Valve Index has now been available for the past 12+ months and still missing basic functional parity, despite stating Linux as an officially supported platform!

@kisak-valve @JoeLudwig While we truly appreciate all the hard work and effort to date Valve really needs to step up given this would be an unacceptable situation for any product failing to work as advertized.

Positive news in 2020 is always welcome. :crossed_fingers:

GGoofybud16 2020-08-03 github

I recently acquired a Vive Pro, and I can confirm that the cameras work in SteamVR on Linux.

The camera is very glitchy-- this is true in the preview as well. See here:

image

This could be specific to my Vive Pro, as it is used, and I have not personally tested it under Windows.

However, the stereo room view does work. So it isn't that the cameras [or Stereo cameras] are broken entirely in SteamVR-- it's just the Index that doesn't work.

Ffred-aero 2021-02-01 github

Any updates for how to fix this? It's been almost 5 months since the last comment. The cameras still don't work for me in SteamVR for Ubuntu 20.04.1 despite being recognized by cheese and other programs.

BBillGR17 2021-02-01 github

Any updates for how to fix this? It's been almost 5 months since the last comment. The cameras still don't work for me in SteamVR for Ubuntu 20.04.1 despite being recognized by cheese and other programs.

They havent said anything since 2019 so nope

SSkylerFur 2021-02-07 github

So if you really want to use your VR headset Camera, just go back to the ancient Linux Beta, as it work fine every time I load it up. However it's very buggy. Best option would be to try to figure out what code used to run the Cameras, and then put in a pull request to bring it into the MainBranch

Ffred-aero 2021-02-28 github

Do you know the beta number? I tried the Linux beta that shows up in the steam client but that didn't work for me either. Also, does anyone know how to isolate the logs specific to the "test camera and performance" subroutine? I'm down to try to spend some time debugging, but I just need to know where to look.

Ffrostworx 2021-03-21 github

IIRC Valve Index camera support was never implemented in any previous SteamVR build.
Doesn't make any sense, but streaming the guvcview camera window to the HMD using vr-video-player (and playing with the command line options) is fun for some minutes (view is distorted with every mode though).

Issues like this seemingly being completely ignored for such a long time probably do not contribute to a broader interest in VR gaming (on linux). Sure - Valve-time, but leaving the few users completely alone with it without any updates is not too great.

CClearlyClaire 2021-03-25 github

I have the same issue, Camera settings are accessible, but the camera isn't properly detected by vrserver so it cannot be used at all within SteamVR.

It's very frustrating not knowing whether that's simply unimplemented, or buggy, as it's not listed in the known issues.

Apart from @SkylerFur's comment I have seen no sign of it ever working on linux, though, but I really can't see much info about it.

I tried the latest release, old beta (linux_v1.14) and the current beta, with no result.

Since the logs mention vrserver trying to access the camera (“TrackedCamera: Couldn't find Dual Cameras at USB VID:28DE, USB PID:2400”), I wanted to strace it to have a sense of how whether it really tried accessing it and failed for some reason, but I couldn't find out how to launch it properly yet.

Ffrostworx 2021-03-25 github

renaming vrserver to vrserver.bin and creating a vrserver script with

#!/bin/bash
strace -f -t -e trace=file  -o /tmp/vrserver.log bin/linux64/vrserver.bin "$@"

creates a valid strace log (including several video references - haven't looked at it too closely and maybe not only logging file access makes more sense here(?))
I only tried it with absolute path to vrserver.bin, but pwd is the SteamVR dir (so usually ~/.steam/steam/steamapps/common/SteamVR), so I assume above relative path does work.

Edit:
A little snip from the log:

163696 15:18:03 openat(AT_FDCWD, "/sys/class/video4linux/video1/device/../idVendor", O_RDONLY) = 183
163696 15:18:03 openat(AT_FDCWD, "/sys/class/video4linux/video1/device/../idProduct", O_RDONLY) = 183
163696 15:18:03 openat(AT_FDCWD, "/sys/class/video4linux/video1/index", O_RDONLY) = 183
163696 15:18:03 openat(AT_FDCWD, "/sys/class/video4linux/video0/device/../idVendor", O_RDONLY) = 183
163696 15:18:03 openat(AT_FDCWD, "/sys/class/video4linux/video0/device/../idProduct", O_RDONLY) = 183
163696 15:18:03 openat(AT_FDCWD, "/sys/class/video4linux/video0/index", O_RDONLY) = 183
163696 15:18:03 openat(AT_FDCWD, "/dev/video0", O_RDWR <unfinished ...>

the O_RDWR <unfinished ...> part doesn't really look correct I guess :)

CClearlyClaire 2021-03-25 github

For some reason, wrapping vrserver with a shell script stops it from working correctly. The logs do contain the same file access attempts than in your case, though, without the “unfinished” part:

136250 15:28:20 openat(AT_FDCWD, "/sys/class/video4linux", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 215
136250 15:28:20 openat(AT_FDCWD, "/sys/class/video4linux/video1/device/../idVendor", O_RDONLY) = 216
136250 15:28:20 openat(AT_FDCWD, "/sys/class/video4linux/video1/device/../idProduct", O_RDONLY) = 216
136250 15:28:20 openat(AT_FDCWD, "/sys/class/video4linux/video1/index", O_RDONLY) = 216
136250 15:28:20 openat(AT_FDCWD, "/sys/class/video4linux/video0/device/../idVendor", O_RDONLY) = 216
136250 15:28:20 openat(AT_FDCWD, "/sys/class/video4linux/video0/device/../idProduct", O_RDONLY) = 216
136250 15:28:20 openat(AT_FDCWD, "/sys/class/video4linux/video0/index", O_RDONLY) = 216
136250 15:28:20 openat(AT_FDCWD, "/dev/video0", O_RDWR) = 216

So it does seem to open it, and for some reason purely within its application code, decide it doesn't like it… I should have checked earlier, but while vrserver is running properly, it seems to hold a reference on the v4l2 device:

$ lsof /dev/video0
COMMAND      PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
Web\x20Th 150605 claire  200u   CHR   81,0      0t0  904 /dev/video0
steamtour 150774 claire  200u   CHR   81,0      0t0  904 /dev/video0
steamtour 150778 claire  200u   CHR   81,0      0t0  904 /dev/video0
Ffrostworx 2021-03-25 github

I'm just messing around a bit with the broken VR variables as well and thought it didn't work correctly, because of my other changes. Sorry that I didn't mention it.

CClearlyClaire 2021-04-04 github

I've got a hold of Steam Support, and they stated the following:

Certain features of the Index headset are not supported on Linux. This includes Bluetooth features, base station power management features, firmware updates, microphone, and camera passthrough functionality, among other things. The Room View/camera passthrough feature hasn't been implemented on Linux yet, and the other features require a special type of device driver only available on Windows 10 to expose additional hardware functionality.

Steam Support has no information regarding patches or future updates, so I'd recommend adding your voice to the bug report you found if you have not already.

So it appears it's just not implemented yet, and it's not a hardware or software configuration issue.

HHadetTheUndying 2021-06-06 github

I feel like we're really get back burnered here with 1.17 having the overlay draw ordering issues that got introduced in 1.15 still present and no desktop capture anymore.

Yyshui 2021-10-11 github

Hmm, the camera V4L device has just stopped showing up for me recently. Is it just me?

PPatola 2021-10-11 github

Hmm, the camera V4L device has just stopped showing up for me recently. Is it just me?
Sort of, that sometimes happens to me. Try unplugging it from the electrical outlet and plugging it in again. Then it should reappear in the systems (just tested that with cheese and guvcview, and doing find /dev/v4l before and after replugging).

Yyshui 2021-11-05 github

I found out I was using a USB port that can't support the number of USB devices on the Index. Changing to another USB port fixed the problem.

Aalikureishy 2021-11-05 github

Could you elaborate on what the difference was in the spec of the port you
were on , and the one you moved over to?

On Thu, Nov 4, 2021, 8:27 PM yshui @.***> wrote:

I found out I was using a USB port that can't support the number of USB
devices on the Index. Changing to another USB port fixed the problem.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/SteamVR-for-Linux/issues/231#issuecomment-961600254,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJDKA67KL7AL6CFURDKKRTUKNFJVANCNFSM4ILERZGA
.

Yyshui 2021-11-11 github

Since Valve has been inactive on this for so long, I decided to put something together: https://github.com/yshui/index_camera_passthrough

It is still incomplete, but I wanted to share so people know there is progress being made. Currently it just shows your camera in the VR space at a fixed location.

Ffrostworx 2021-11-11 github

Thanks for your work on this, @yshui!

Yyshui 2021-11-15 github

Update: I think I've got this program into a usable state, it does pretty sure everything I wanted it to do now. If someone can give it a go and tell me if it works for them, that will be appreciated!

CClearlyClaire 2021-11-17 github

@yshui works for me after adding a blank 1920×960 splash.png. The stereo view looks odd especially for close objects but I suppose it's due to how far apart the cameras are on the Index and not much can be done to improve that (I have never experienced the official camera passthrough features so I can't compare).

Yyshui 2021-11-17 github

@ClearlyClaire Ah sorry I forgot to commit that file. Fixed now!

The official stereo view is definitely better than mine, but close objects looks weird (double vision is what I experience) in it too.

AAtemu 2021-11-18 github

Is there a way to hack this work into SteamVR's room view somehow?

Yyshui 2021-11-18 github

It might be possible to write a custom openvr driver that exposes the camera stream. But I am happy with what this can do so I won't spend time on that.

Cc-mahn 2022-07-27 github

I'm just here writing a comment to remind Valve, that this issue still exists. I would love to use the camera outline-view for better orientation. As Valve is heavily into making everything Linux-playable. I don't get why they want all VR-players to get a Windows install. I don't have Windows and I don't want it.

PPatola 2022-07-27 github

Valve is heavily committed into making everything Steam Deck-playable, and the Deck doesn't officially supports VR. It's different. (BTW, it can run VR on Quest2 via ALVR, but it can't do VR with the Valve Index, something about direct mode not working)

But I have to say that I too would love this to be resolved, of course. VR is in kind of a low profile right now, although there are new, deep titles appearing on the store (RFVR, Soul Scathe, Barbaria, Green Hell VR, etc.). I hope VR gets on the spotlight again so Valve can justify investing on it for the tiny amount of us linux users.

VVRcontrib 2023-08-10 github

Just a reminder, this is still an issue.

SSkylerFur 2023-09-27 github

Just a reminder, this is still an issue.

SteamVR 2.0.x has complicated this as an issue, I can in HMD in the settings run the test Camera(s) and it works fully. It's an odd warped view, but it totally works. However no other aspect of SteamVR acknowledges a working HMD camera

?ghost 2023-09-28 github

Good to see them working on it, at least.

Hheadassbtw 2023-11-06 github

2.x has not seemed to fix this on my end

Screenshot_20231105_202007

66661620a 2024-02-03 github

The issue still persists

Jjohnblommers 2024-02-20 github

February 2024. My Valve Index cameras don't respond either.

AArnavion 2024-05-29 github

Since the camera shows up as a V4L2 device, vr-video-player (Arch, OpenSUSE TW) is also an option if you already have it. Eg vr-video-player --flat --no-stretch --video 'av://v4l2:/dev/video0' --mpv-profile low-latency . (vr-video-player uses libmpv so mpv's av://v4l2:/ URI syntax works with it too.)

The result is very cross-eyed though and I didn't figure out a way to adjust it to work.

TTwoD 2024-06-09 github

The result is very cross-eyed though and I didn't figure out a way to adjust it to work.

You can fix that by recompiling vr-video-player after editing src/main.cpp and changing float offset = 0.0f; on line 2802 to float offset = -0.5f;.
Note that this program leaves a config file in ~/.config/vr-video-player/config in case you wonder why things like zoom values aren't restored when leaving them out of the command.
I prefer --sphere instead of --flat unless combined with --overlay.

AArnavion 2024-06-11 github

Thanks, that fixed it.

I made up a quick and dirty patch to add a --eye-left-offset -0.5 CLI option so that I don't have to recompile it for every video. (Added to the OpenSUSE package already.)

0001-Add-eye-left-offset-to-support-overriding-left-eye-o.patch
From 92e96a15ac06f9da5a90ee61e94357c0b82e5053 Mon Sep 17 00:00:00 2001
From: Arnav Singh <[email protected]>
Date: Tue, 11 Jun 2024 02:26:07 -0700
Subject: [PATCH] Add `--eye-left-offset` to support overriding left eye
 offset.

Ref: https://github.com/ValveSoftware/SteamVR-for-Linux/issues/231#issuecomment-2156754932
---
 src/main.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/main.cpp b/src/main.cpp
index 7e13ec9..d4a9871 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -394,6 +394,7 @@ private: // X compositor
 	double zoom = 0.0;
 	float cursor_scale = 2.0f;
 	ViewMode view_mode = ViewMode::LEFT_RIGHT;
+	double eye_left_offset = 0.0f;
 	bool stretch = true;
 	bool cursor_wrap = true;
 	bool free_camera = false;
@@ -637,6 +638,9 @@ CMainApplication::CMainApplication( int argc, char *argv[] )
 			zoom = atof(argv[i + 1]);
 			++i;
 			zoom_set = true;
+		} else if(strcmp(argv[i], "--eye-left-offset") == 0 && i < argc - 1) {
+			eye_left_offset = atof(argv[i + 1]);
+			++i;
 		} else if(strcmp(argv[i], "--cursor-scale") == 0 && i < argc - 1) {
 			cursor_scale = atof(argv[i + 1]);
 			++i;
@@ -2783,7 +2787,7 @@ void CMainApplication::RenderScene( vr::Hmd_Eye nEye )
 
 	if( nEye == vr::Eye_Left )
 	{
-		float offset = 0.0f;
+		float offset = eye_left_offset;
 		float scale = 0.5f;
 		if(view_mode == ViewMode::RIGHT_LEFT) {
 			offset = 0.5f;
-- 
2.45.2
Ttechnobaboo 2024-06-14 github

I'm having a related issue where the camera shows up under /dev/video0 and /dev/video1 but the UVC device has clearly incorrect settings:

v4l2-ctl --all
Driver Info:
	Driver name      : uvcvideo
	Card type        : PC Camera: eTronVideo_BootLoade
	Bus info         : usb-0000:0d:00.3-1.1
	Driver version   : 6.8.10
	Capabilities     : 0x84a00001
		Video Capture
		Metadata Capture
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps      : 0x04200001
		Video Capture
		Streaming
		Extended Pix Format
Media Driver Info:
	Driver name      : uvcvideo
	Model            : PC Camera: eTronVideo_BootLoade
	Serial           : 00000001
	Bus info         : usb-0000:0d:00.3-1.1
	Media version    : 6.8.10
	Hardware revision: 0x00000000 (0)
	Driver version   : 6.8.10
Interface Info:
	ID               : 0x03000002
	Type             : V4L Video
Entity Info:
	ID               : 0x00000001 (1)
	Name             : PC Camera: eTronVideo_BootLoade
	Function         : V4L2 I/O
	Flags            : default
	Pad 0x01000007   : 0: Sink
	  Link 0x0200000d: from remote pad 0x100000a of entity 'Extension 4' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
	Width/Height      : 160/120
	Pixel Format      : 'YUYV' (YUYV 4:2:2)
	Field             : None
	Bytes per Line    : 320
	Size Image        : 38400
	Colorspace        : sRGB
	Transfer Function : Rec. 709
	YCbCr/HSV Encoding: ITU-R 601
	Quantization      : Default (maps to Limited Range)
	Flags             :
Crop Capability Video Capture:
	Bounds      : Left 0, Top 0, Width 160, Height 120
	Default     : Left 0, Top 0, Width 160, Height 120
	Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 160, Height 120, Flags:
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 160, Height 120, Flags:
Streaming Parameters Video Capture:
	Capabilities     : timeperframe
	Frames per second: invalid (1/0)
	Read buffers     : 0

and guvc gets no frames from it, it's a pure black tiny square

AArnavion 2024-06-14 github

I didn't try guvc, but v4l2-ctl --all for me says Card type: 3D Camera: eTronVideo and has the correct dimensions, so your Card type: PC Camera: eTronVideo_BootLoade may be the problem. Headset hasn't finished booting yet?

Click here
Driver Info:
	Driver name      : uvcvideo
	Card type        : 3D Camera: eTronVideo
	Bus info         : usb-0000:13:00.4-1.3.1
	Driver version   : 6.9.3
	Capabilities     : 0x84a00001
		Video Capture
		Metadata Capture
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps      : 0x04200001
		Video Capture
		Streaming
		Extended Pix Format
Media Driver Info:
	Driver name      : uvcvideo
	Model            : 3D Camera: eTronVideo
	Serial           : 00000001
	Bus info         : usb-0000:13:00.4-1.3.1
	Media version    : 6.9.3
	Hardware revision: 0x00000004 (4)
	Driver version   : 6.9.3
Interface Info:
	ID               : 0x03000002
	Type             : V4L Video
Entity Info:
	ID               : 0x00000001 (1)
	Name             : 3D Camera: eTronVideo
	Function         : V4L2 I/O
	Flags            : default
	Pad 0x01000007   : 0: Sink
	 Link 0x02000010: from remote pad 0x100000a of entity 'Extension 4' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
	Width/Height      : 1920/960
	Pixel Format      : 'YUYV' (YUYV 4:2:2)
	Field             : None
	Bytes per Line    : 3840
	Size Image        : 3686400
	Colorspace        : sRGB
	Transfer Function : Rec. 709
	YCbCr/HSV Encoding: ITU-R 601
	Quantization      : Default (maps to Limited Range)
	Flags             : 
Crop Capability Video Capture:
	Bounds      : Left 0, Top 0, Width 1920, Height 960
	Default     : Left 0, Top 0, Width 1920, Height 960
	Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 960, Flags: 
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 960, Flags: 
Streaming Parameters Video Capture:
	Capabilities     : timeperframe
	Frames per second: 54.000 (54/1)
	Read buffers     : 0

User Controls

        white_balance_automatic 0x0098090c (bool)   : default=1 value=1
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=2 value=2 (60 Hz)
				0: Disabled
				1: 50 Hz
				2: 60 Hz
      white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=1 default=5500 value=5500 flags=inactive

Camera Controls

                  auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=3 (Aperture Priority Mode)
				1: Manual Mode
				3: Aperture Priority Mode
         exposure_time_absolute 0x009a0902 (int)    : min=1 max=2147483647 step=1 default=1 value=1 flags=inactive
     exposure_dynamic_framerate 0x009a0903 (bool)   : default=0 value=0
Ttechnobaboo 2024-06-14 github

if it hasn't finished booting then i guess it never finishes booting, because after being plugged in for hours this doesn't change and steamvr can't see the camera either... what's next to test to figure this out? can i do a firmware reflash and if so how?

HHi-Angel 2024-06-23 · hidden on GitHub github

FTR, I stumbled upon this thread while pondering whether to buy the newer Meta Quest 3 or the older Valve Index. Was considering Valve Index because it was supposed to have ideal compatibility with Linux, whereas for MQ3 am not so sure (I see posts of people using it though). Well, seeing this 5 years old thread for Valve Index you can guess what decision I came to.

SSpookySkeletons 2024-07-09 github

eTronVideo_BootLoader suggests the headset's camera firmware is in some kind of inconsistent state after an update, I presume running a firmware update while missing the USB resources to access the camera results in this situation.

There must be some good method to force re-flash the whole firmware lineup for the headset to solve this issue.

Aada-af 2025-02-28 github

@SpookySkeletons there's a method to do so.

  1. Connect HMD to PC
  2. Make sure camera shows as "eTronVideo_BootLoader" in devmgmt.msc
  3. Switch SteamVR to beta branch "oculus_win7and8"
  4. Launch SteamVR, it must have popup window saying that Camera firmware needs to be restored
Ffrostworx 2025-02-28 github

you might want to try https://github.com/yshui/index_camera_passthrough

(recently found it, haven't tested it, but likely better than waiting for an official integration)

HHi-Angel 2025-02-28 github

@ada-af there isn't devmgmt.msc on OP's Manjaro or on any Linux distro for that matter. But I presume you're referring to the list of devices, so looking at lspci would do… However, you're saying to switch to a branch that has "win7 and 8" in the name, which I'm not sure why would help here.

Aada-af 2025-02-28 github

@Hi-Angel My bad, haven't noticed this is Linux discussion.

Still, can confirm that when there's firmware issue, dmesg mentions "eTron_Video_BootLoader"

SSpookySkeletons 2025-02-28 github

@ada-af that's somewhat workable! I did not expect any sort of fix even on windows.

Error codes