ValveSoftware / SteamVR-for-Linux

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

Vive has no display on Ubuntu 18.04.2 --RX 580 AMD GPU-- #189

Open ghost opened 5 years ago

ghost commented 5 years ago

Your system information

Here is a Pastebin to my SteamVR System Report https://pastebin.com/Ty3LKmS2

First of all I would like to say nice work to the SteamVR Linux dev team. A few months ago I couldn't get SteamVR to launch at all. I was able to launch SteamVR, the room setup, and the VR Monitor without crashing or serious lag. This is a big step in the right direction.

My current issue I cannot get the display on my HTC Vive headset to turn on (original headset, not the pro) in Ubuntu 18.04.2. The green light is on and there are no errors in steamvr. The headset just appears to be off, even though I can see that it clearly is not due to the fact that the VR Monitor shows what I am supposed to be seeing on my desktop monitor.

In the past I was able to get the display to at least turn on and be recognized in the settings by typing these commands into terminal. However these commands are no longer turning the display on, nor are they making the HTC Vive be recognized in my settings. Any idea on another approach to get my display turned on?

_sudo chmod a+rw /dev/hidraw*

echo KERNEL=="hidraw*", ATTRS{idVendor}=="0bb4", MODE="0666"

echo KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0666"

sudo udevadm control --reload-rules_

What I have tried

  1. Seating the usb to the Vive in different ports
  2. Steam and Steam VR Beta
  3. Rebooting
  4. Switching to lightdm

Any suggestions on a fix for this?

kisak-valve commented 5 years ago

Hello @winsteadworks, can you check if you have /usr/share/vulkan/icd.d/intel_icd.x86_64.json and sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json /usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled if it exists. The common cause of SteamVR throwing error 306 on my test box is because vrcompositor is somehow picking the integrated gpu instead of the AMD card and then falls over.

This workaround currently needs to be done every mesa update.

ghost commented 5 years ago

@kisak-valve I couldn't find that file when I tried to move it. Also somehow I am getting a 308 error now. The only thing I can think of that caused this off the top of my head is maybe installing java or installing lightdm. Other than that I am not sure what else I could have done to make steamvr give this error.

kisak-valve commented 5 years ago

Can you try xrandr --output HDMI-1 --set non-desktop 0 in a terminal, with this set to 0, the desktop environment should be able to see the HMD and extend the desktop onto it. Setting it back to 1 does the opposite.

If this has no effect, there's an issue with the video connection to the HMD or it might be plugged into the wrong port on the back of the computer.

ghost commented 5 years ago

@kisak-valve The Vive works fine when I am on Windows, so I really don't think it is related to the HMD ports but I can definitely try swapping my monitor and headset cords really quick. I tried changing the xrandr outputs with no luck. I had to use HDMI-A1 and HDMI-A2 though because it gave me an error when I tried HDMI-1 and HDMI-2. I have a dual monitor setup by the way.

The reason it took me a few hours to respond to this is because I have reinstalled ubuntu 18.04.2 in hopes that I can retrace my steps to find out what caused the errors. I am officially stumped though. Currently I have SteamVR launched and was able to complete room setup, but keep going in circles with the compositor freezing, the 307 error, and the 108 error. It seems every time I fix one of these issue I get 2 more problems. I took extremely detailed notes of my steps this time because I have tried to do this so many times now and have failed every time. I keep losing track of what I did to get the errors so on this install, I wrote notes after every step just so I could narrow down what the actual problem was.

================================================================================= Below are my notes from this install attempt to get SteamVR working properly in Ubuntu 18.04.2

I started off by making sure I had all the latest updates for Ubuntu 18.04.2

Next I entered these commands: sudo add-apt-repository ppa:kisak/steamvr sudo apt update sudo apt dist-upgrade sudo apt install linux-generic-steamvr-18.04 xserver-xorg-hwe-18.04 mesa-vulkan-drivers mesa-vulkan-drivers:i386

Note I had not installed mesa utils yet

VR headset turned on at encrypt login, and then turned back off once I went to my user login and has remained off ever since.

Am going to try steam vr before doing these steps: https://launchpad.net/~kisak/+archive/ubuntu/steamvr -I have not installed light dm yet -I have not put any of the commands in such as xrandr --output HDMI-A-1 --set non-desktop 0 or any of the steamvr trouble shooting commands in terminal yet either

Installed steam. -have not toggled any settings, will try steamvr first

If steamvr works with no errors, then the issue was either where I moved /usr/share/vulkan/icd.d/intel_icd.x86_64.json, or installing java, mesa utils.

STEAMVR NOTES -First attempt to launch steamvr resulted in 108 error with the option to reset the headset -When I hit reset headset, steamvr never relaunched -I then tried opening vrmonitor, and I still got a 108 error with option to reset headset. Once clicked I got the same results, no relaunch.

Next I am going to install the drivers and reboot

I entered these commands in this order:

  1. sudo apt install linux-generic-steamvr-18.04 --accidently tried to install sudo apt install linux-lowlatency-steamvr-18.04 but caught it and cancled at 28 percent!
  2. sudo apt install xserver-xorg-hwe-18.04
  3. sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386
  4. sudo apt update (all packages up to date, no new installs)
  5. sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json /usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled (I had the file, and the file was moved sucessfully)
  6. sudo reboot

Rebooted, and launched steam/steamvr. Still getting the 108 error, and reset headset did not relaunch steamvr. I am now opening previous troubleshooting notes to try to get steamvr with no errors.

Next I typed: sudo apt install mesa-utils sudo apt-get update sudo add-apt-repository ppa:kisak/steamvr sudo apt-get update apt policy mesa-vulkan-drivers (This check driver version) sudo reboot

=============================================

Output for apt policy mesa-vulkan-drivers --mesa-vulkan-drivers: Installed: 1:19.0.1-steamvr2 Candidate: 1:19.0.1-steamvr2 Version table: *** 1:19.0.1-steamvr2 500 500 http://ppa.launchpad.net/kisak/steamvr/ubuntu bionic/main amd64 Packages 100 /var/lib/dpkg/status 18.2.8-0ubuntu0~18.04.2 500 500 http://us.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages 18.0.0~rc5-1ubuntu1 500 500 http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages

==========================================================================================

Note: At this point, lightdm and java have still not been installed and neither has libgconf2.0! However all of my apps such as atom, unity, discord etc have been installed. I am still unable to see the login for my user, this is usually corrected once I install lightdm. Also at this point mesa-utils had been installed and was not the cause of the previous 308 error I was getting.

On reboot: SteamVR is now recognizing the headset with no errors Steam Room Setup is working VR Compositor launched, but gave an error saying something was wrong and asked me to force quit. Some things froze but this did not freeze my entire desktop, nor did it require a reboot. I was able to force quit the compositor. Steam room setup and SteamVR did not crash with the compostior, they both appear to be functioning normally.

HTC Vive display is off

Tried relaunched SteamVR via vrmonitor button on dock and this resulted in a full crash that required a hard reboot. Was unable to click anything, and couldn't exit graphic interface via ctrl alt f2.

On reboot headset lit up temporarily during user login, and then turned back off once on my desktop.

This time I launched steam via dock and proceeded to launch steam vr through library.

I got an error starting SteamVR: SteamVR failed to initialized for unkown reasons. (Error: Shared IPC Compositor Invalid COnnect Response (307)).

Desktop has not froze but compositor is giving me a force quit/wait alternative. I pressed wait but nothing happened. I ended up force quitting both the vrmonitor and the room setup.

Am getting a 307 error on steamvr after the reboot, but the headset, trackers, etc.. are all lit green in steamvr. Room setup launched after trying to open it again, but when I tried to setup standing only mode it showed that the headset was currently off and that I needed to establish tracking.

Note: I went to settings after this and change the arrangement of my acer and AOC display and made it to where when I move my mouse to the left I can enter my AOC desktop.

===================================================================================================

Toggling xrandr settings What I am going to try next is changing the xranr output and then installing lightdm

  1. I got the usual error from xrandr --output HDMI-1 --set non-desktop 0 warning: output HDMI-1 not found; ignoring X Error of failed request: BadRROutput (invalid Output parameter) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 15 (RRGetOutputProperty) Serial number of failed request: 196 Current serial number in output stream: 196

  2. xrandr --output HDMI-A-2 --set non-desktop 0 --This did not make anything visual happen, and the Vive was still not an option to set as a display in my settings. Headset display still off.

  3. xrandr --output HDMI-A-1 --set non-desktop 0 --There was a visual re-allignment but there was no changes as far as quality. Vive display is still off and is still not an option in my display settings.

After doing this I restarted SteamVR and launched it from the vrmonitor icon on my dock. I was able to get the vrcompositor load this time and the headset was responsive with my movements. Display is still off. I got the menu on the compositor that asked me to take off my headset and follow on screen instructions to set up the headset. Shortly after, the compositor froze. Note: when compositor first launches, everything freezes for a second, but then after a few seconds everything goes back to normal. I restarted steamvr via vrmonitor icon on dock again, and this time the room setup recognized my headset. When trying to click next on the room setup though, the setup became unresponsive and so did the compositor. I quit both the compositor and the setup but left steamvr running. I relaunched the room setup after that, but this this time the setup was saying that the headset was off. It appears that the compositor has to be running in order to complete the setup.

Next I quit all steam related sofware, and launched steam through terminal and opened steamvr through the library. This gave me a 108 error again and gave me the option to reset the headset. After clicking that button, I got a status: failed error on the restarting SteamVR menu. SteamVR proceeded to shut down but did not relaunch on its own.

I clicked vrmonitor from dock icon to relaunch this time, and got the 108 error again.

Next I quit steam and steamvr, and relaunched via vrmonitor again and still got the 108 error.

Here are the commands I tried after the 108 error:

  1. sudo apt install lightdm (switched to lightdm)
  2. sudo reboot

After the reboot, I launched vrmonitor icon. The compositor did not launch correctly, I had to force quit everything but did not have to reboot from the crash. Everything was frozen on 2nd launch attempt, had to force quit steamvr.

Next I changed the xrandr outputs xrandr --output HDMI-A-1 --set non-desktop 0
xrandr --output HDMI-A-2 --set non-desktop 0 When I launched steamvr from vrmonitor on dock it did not load the compositor. So next I launched steam from terminal and then launched steamvr from steam library, the compositor loaded briefly but encountered errors that resulted in a force quit. Steam VR is running but has a 203 error. The headset, trackers and controllers are all detected. The 203 error had a restart SteamVR button, and since the room setup had an error when I tried to launch it I ended up click that restart button.

SteamVR was not launching anymore from the terminal launch in the Steam library or from the vrmonitor in the dock.

Next I pasted these four lines in terminal:

sudo chmod a+rw /dev/hidraw*

echo KERNEL=="hidraw*", ATTRS{idVendor}=="0bb4", MODE="0666"

echo KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0666"

sudo udevadm control --reload-rules

The Vive is still not showing up in the Display Arrangment in my settings as a monitor. S

I quit Steam (terminal launch) and SteamVR. I tried to launch vrmonitor one more time but still had no luck.

Next I gave my rig a hard reboot. I started off by launching vrmonitor from my dock and was able to get the compositor, SteamVR, and the room setup to launch without crashing. The compositor appears to be frozen, as it is not showing a live feed of my HTC Vive. I was able to complete the room setup this time though, even though the compostior seems frozen. I briefly had a 102 error but was able to get this to go away.

I now have no errors on SteamVR --display is still not on inside my headset --I have a notice above SteamVR that is recommending I enable Direct Display Mode

I enabled the direct display mode next. SteamVR did not restart on it's own, so I relaunched it from vrmonitor icon. Once SteamVR relaunched, I got a 307 error and the compositor was frozen again. Last time the compostior was just a black screen with a frozen frame of the goggles, but this time it was completely invisible on launch. I had to force quit the compositor. I tried to relaunch this way 1 more time and got the same compostior issue. However, this time I was notified that my headset needed a firmware update so I proceeded with updating the headset. SteamVR was required to restart. It gave me a notification that it had failed to restart, so I quit SteamVR and restarted it via vrmonitor icon myself. This time I got a 108 error and was not able to see the headset, controllers, or trackers on the SteamVR menu.

Now no matter which way I restart SteamVR, I get a 108 error.

Next I pasted these four lines in terminal again:

sudo chmod a+rw /dev/hidraw*

echo KERNEL=="hidraw*", ATTRS{idVendor}=="0bb4", MODE="0666"

echo KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0666"

sudo udevadm control --reload-rules

I also changed the xrandr outputs again xrandr --output HDMI-A-1 --set non-desktop 0 xrandr --output HDMI-A-2 --set non-desktop 0

I shut down Steam/SteamVR after that and tried to relaunch and still got the exact same error no matter which way I launched SteamVR. The headset is still not display anything at this point and is also not showing up in my display settings either.

I proceeded to do a hard reboot again. Once I was back up and running, I launched vrmonitor from my dock. SteamVR launched with a 307 error, but the headset, controllers, and trackers were being recognized again. This launch made my entire desktop freeze and forced me to do another hard reboot.

Once rebooted I tried to launch SteamVR via Steam app. Compostior was frozen and I had to do a force quit for everything.

I changed the xrandr outputs again xrandr --output HDMI-A-1 --set non-desktop 0 xrandr --output HDMI-A-2 --set non-desktop 0

Next I tried launch SteamVR again, but when I did I got a 108 error. I was unable to get SteamVR to launch at all.

Afterwards, I pasted these four lines in terminal again:

sudo chmod a+rw /dev/hidraw*

echo KERNEL=="hidraw*", ATTRS{idVendor}=="0bb4", MODE="0666"

echo KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0666"

sudo udevadm control --reload-rules

SteamVR still wouldn't launch I ran sudo reboot in terminal and then relaunched steam from terminal after reboot. This made the 108 error go away, but gave then gave me a 307 error. The compositor was frozen and I had to force quit it.

I began to wonder if maybe I could fix it by just pasting the four commands in terminal without altering xrandr outputs. So I ran the four commands above ^ alone. This gave the same 307 error and the compostior was frozen again.

I decided to run the xrand outputs after pasting the four commands first, in hopes that reversing the order might render better results.

After I changed the xrandr outputs and restarted SteamVR, the compositor remained frozen and SteamVR remained in the same state it was in before with the 307 error. Reversing the order of inputing the commands appears to have eliminated the 108 error from reappearing, but it still did not give me the results I was hoping for.

At this point I am honestly fresh out of ideas on what to do to get this headset working. (9:24 PM on April 4th)

kisak-valve commented 5 years ago

So, pondering this a bit:

xrandr --output HDMI-A-1 --set non-desktop 0
--There was a visual re-allignment but there was no changes as far as quality. Vive display is still off and is still not an option in my display settings.

With non-desktop set to 0, it takes SteamVR out of the diagnosis by allowing the HMD to be used like any other monitor. Maybe the breakout box had gotten confused somehow and power cycling it would have an effect?

Ideally, we should want the HMD set to non-desktop 1, and let X hand the drm-lease over to vrcompositor to directly drive the display. I suggested setting it to 0 so that you could test it without SteamVR involved at all.

Semi-related, noted in the readme, "The VR status window isn't currently aware of direct mode being enabled or not, so the "enable direct mode" and "disable direct mode" buttons should not be used; direct mode is automatically enabled where supported"


I'm also running out of ideas to suggest as I'm not able to reproduce this issue on my test box.

With the error 307, is the desktop interactive? If it is, please collect another SteamVR system report. If not, are you able to ssh into the box and check dmesg if there's any relevant messages?

Csardelacal commented 5 years ago

Hey there! I seem to have the exact same issue here. I am running a R9 270X, elementary OS Juno (which is directly based on Ubuntu 18.04), and have the kisak PPA, as well as mainline 5.0.10.

Yesterday I plugged in the Vive and was getting Error 307 (the one about the compositor - seems it was due to the 4.xx kernel not supporting Vulkan on my GPU), and after upgrading to the mainline 5.0.7 I finally managed to start Steam VR and enter the room.

So far so good, today I tried starting again and I am constantly getting a "108 Headset not detected", and the ting does basically nothing.

I'm at a total loss about what I should do, I know it must be possible to get it to work. But I'm simply not sure what to do or what I should try.

lostgoat commented 5 years ago

@Csardelacal please attach a SteamVR system report. There are instructions on how to collect one when creating a new issue (might be good to start a new issue separate from this one as well)