ValveSoftware / SteamVR-for-Linux

Issue tracker for the Linux port of SteamVR
932 stars 45 forks source link

Cannot start VR by pressing button on Vive HMD #138

Open ryao opened 6 years ago

ryao commented 6 years ago

Your system information

Please describe your issue in as much detail as possible:

On Windows, if you press the button on the side of the HMD, SteamVR starts with the Steam Home. On Linux, this button does nothing.

Steps for reproducing this issue:

  1. Start Linux machine.
  2. Optionally start Steam.
  3. Press button on side of VR headset.
Plagman commented 6 years ago

This used to work; could have regressed. Do you have all the needed udev rules installed and active? Do all the event device nodes that show up from USB when plugging in the Vive link box end up writable for the active seat?

ryao commented 6 years ago

I am physically miles away from my Vive at present and will be fairly worn out by the time I am able to check this today. I should have that information for you tomorrow though. Feel free to ping me in discord if I don’t provide it for some reason.

Also, Gentoo uses consolekit by default, so there is only 1 seat.

kisak-valve commented 6 years ago

This works on my Gentoo test box with steam running.

ryao commented 6 years ago

@Plagman

Do you have all the needed udev rules installed and active?

I have /lib/udev/rules.d/60-steam-input.rules and /lib/udev/rules.d/60-steam-vr.rules from this tarball:

http://repo.steampowered.com/steam/pool/steam/s/steam/steam_1.0.0.56.tar.gz

I have done udevadm trigger to ensure that they are parsed by udev, but pressing that button doesn't launch SteamVR, even if Steam is open.

I also had 60-HTC-Vive-perms.rules there from the main page, but I removed it and reran udevadm trigger to see if it would make a difference:

https://github.com/ValveSoftware/SteamVR-for-Linux

Removing it made no difference.

Do all the event device nodes that show up from USB when plugging in the Vive link box end up writable for the active seat?

Not originally, but my current user now has permissions to all of these and I restarted X. No change.

If it matters, I am using libinput. I could switch back to evdev if that is a problem.

By the way, how is SteamVR supposed to hook into the system such that the button press launches it?

@kisak-valve Is your Gentoo testbox using systemd or OpenRC? Also, how old is it? My install was done in the past few weeks.

kisak-valve commented 6 years ago

That gentoo install has been around for a fair while, setup with the 1.0.0.54-r3 steam-overlay ebuild. It uses openrc.

h1z1 commented 6 years ago

Funny, had this happen a few days ago. Light on the HMD was red, tried rebooting it without luck. At some point it went green but I still couldn't operate it. Found these in the logs (may not be related):

Mon Oct 08 2018 04:16:39.839789 - Processing message VRMsg_Connect from vrstartup (4198) took 0.278 seconds
Mon Oct 08 2018 04:16:39.908102 - lighthouse: LHR-2E711234 H: tdm sync acquired
Mon Oct 08 2018 04:16:40.029876 - New Connect message from /zvol/vm1/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor (VRApplication_Background) (Args: ) 4232 
Mon Oct 08 2018 04:16:40.030087 - Setting app openvr.component.vrcompositor PID to 4232
Mon Oct 08 2018 04:16:40.031099 - App openvr.component.vrcompositor (vive) loaded default binding file:///zvol/vm1/Steam/steamapps/common/SteamVR/resources/config/vrcompositor_bindings_vive.json
Mon Oct 08 2018 04:16:40.031122 - Using existing HMD lighthouse.LHR-2E711234
Mon Oct 08 2018 04:16:40.065007 - [Steam] Steam INIT.
Mon Oct 08 2018 04:16:40.068491 - Invalid input type click for controller (/user/head/input/system)
Mon Oct 08 2018 04:16:40.068530 - Invalid input type double for controller (/user/head/input/system)
Mon Oct 08 2018 04:16:40.068549 - Invalid input type long for controller (/user/head/input/system)
Mon Oct 08 2018 04:16:40.687311 - [Settings] Save Json Settings to /zvol/steam/config/steamvr.vrsettings

?

beniwtv commented 6 years ago

I'm using Manjaro and I am opted into the Steam and SteamVR betas.

For me, when Steam is open, pressing the button works, SteamVR starts.

If Steam is not started, nothing happens, but I guess that is normal as I am not aware you can launch something into the user session with udev.

Perhaps a small .desktop file in the XDG-autostart folder that runs a small app that listens to the button and launches Steam + SteamVR when it is pressed could solve that.

@ryao I have some rules in my udev (I never installed any udev rules myself, must be installed by Manjaro) that aren't listed on https://github.com/ValveSoftware/SteamVR-for-Linux


KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2c87", TAG+="uaccess"

+++++++
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0306", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0309", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030a", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030b", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030c", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030e", TAG+="uaccess"
+++++++

/usr/lib/udev/rules.d/71-Valve-Controllers.rules:

# Valve USB devices
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0660", TAG+="uaccess"
# Steam Controller udev write access
KERNEL=="uinput", SUBSYSTEM=="misc", MODE="0660", TAG+="uaccess"

# Valve HID devices; USB
KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0660", TAG+="uaccess"

# Valve HID devices; bluetooth
KERNEL=="hidraw*", KERNELS=="*28DE:*", MODE="0660", TAG+="uaccess"

/usr/lib/udev/rules.d/71-Valve-SteamVR.rules:

# Valve
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2101", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2000", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2050", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1043", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2011", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2012", TAG+="uaccess"

+++++++
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1142", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2010", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2021", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2022", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2150", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2300", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2301", TAG+="uaccess"
+++++++

/usr/lib/udev/rules.d/71-AlphaImagingTechnologyCo-SteamVR.rules:

# Alpha Imaging Technology Corp.
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8a12", TAG+="uaccess"