Monitor not detected after boot, sees no signal, not showing in xrandr output

Greetings. I need urgent help with an issue regarding a new monitor I bought. My old monitor keeps turning itself off when powered on and I had to replace it… likely a bulged transistor which I don’t have the time nor tools to replace myself, still works after a few tries but I don’t know how much longer it will last. My issue is that the new one simply isn’t working! My OS is Linux openSUSE Tumbleweed x64 (always up to date with ‘zypper dup’) and the new monitor is a ViewSonic vx2758-c-mhd (the 23.6 inch version, not the 27 inch one), my video card is an AMD Radeon xfx r9 390 for which I’m using the amdgpu module:

https://viewsonic.com/us/vx2758-c-mh.html

This monitor supports three inputs: DisplayPort, HDMI, DVI. I tried the HDMI cable that arrived with the monitor, followed by an older HDMI cable that works fine with the other monitor, then the DVI cable which is also confirmed to work flawlessly: Same issue with all 3 cables, definitely not the cable that’s at fault. I don’t have a DisplayPort cable so I couldn’t test that interface too, but it would most likely do the same thing.

This seems to be a software and / or Linux related issue: I’m able to see the pre-boot screens just fine on the new monitor, including GRUB2 where I can pick which kernel to boot. Even the Plymouth splash screen shows up fine! But the moment I reach the login screen, the display goes black and says “no signal” without ever turning back on again. Once more the result is identical on both HDMI and DVI, I now have it plugged in through both cables and it refuses to see the device over either connection.

With both the new and old monitors connected, I booted up my system again. I ran the xrandr command in the console. I was shocked to notice the new monitor is not listed as a device at all! Its port appears as disconnected, X11 is seeing absolutely nothing there although the monitor is clearly powered on but complaining there’s no signal. In the past I had a similar issue with a VR headset not being detected in the same way, however in its case it appeared in the xrandr output… with this monitor I’m not getting even that.

I looked everywhere for answers. Many people reported this problem but nearly no one had a working solution. I was only able to find one piece of advice that seems to have done something: Someone said to disable CSM (Compatibility Support Module) in the BIOS. I did so and it made the POST screen show up as well, before that only the GRUB2 screen would display. However it did not solve the screen refusing to turn on after the system has booted.

Could this be a missing driver package or disabled kernel module? Clearly it’s not a hardware failure or it wouldn’t display POST / BIOS / GRUB2 either. There must be something Linux related that’s causing it to not be detected. If I can’t find a solution I’ll have to return the monitor soon… I really don’t want this, as I couldn’t find anything half as good near the same price and with the Corona Virus situation the last thing I want is to travel around carrying a huge monitor. I’ll await your suggestions for what to try next, thank you.

As someone suggested this on IRC, here’s the output of ‘modinfo amdgpu’: https://pastebin.com/UYBPpJ0H

Here’s /var/log/Xorg.0.log, ~/.xsession-errors doesn’t seem to have been modified in two years so skipping that one: https://pastebin.com/8kmZA9Pk

Great news… sort of. I managed to get it working for now! The issue seems to be specific to the amdgpu module, the monitor will work perfectly on the old radeon one. Normally I always boot with these lines, removing them gets the new monitor working:

radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1

I don’t want to use this as a permanent solution however: IIRC the radeon module is deprecated, and most importantly amdgpu gives better performance in games! What could be making amdgpu refuse to detect this specific monitor but not the old one?

I don’t have this hardware or any definitive answer, but just in case this thread is of interest.

Hi
Can you show the output from;


/sbin/lspci -nnk | egrep -A3 "VGA|Display|3D"

You only need ‘one’ option enabled, I think you have a Southern Island card, so the amdgpu.si_support=1 is needed, the rest should be 0. Is xf86-video-amdgpu installed?

What about your ~./local/share/xorg/Xorg.0.log file? You also have the kernel-firmware installed?

Thank you: That suggestion solved it! The monitor works perfectly on amdgpu once I add to the command line:

amdgpu.dc=0

What does amdgpu.dc do? Is disabling it a regression? Does certain monitors not working with it represent a known bug, and is there an estimated time for when it might be fixed if so?

Hi
It disables/enables the Display Core driver for debugging…
https://www.kernel.org/doc/html/latest/gpu/amdgpu.html

Aha… so it uses a different driver within amdgpu? I thought amdgpu was the driver itself. Any disadvantage to disabling DC while this is necessary? In any case it seems this is a Display Core specific issue then.

I would recommend searching for related bug reports and if necessary raise another perhaps.

https://bugzilla.opensuse.org/index.cgi

Hi
Well you haven’t posted the lspci output, but suspect your card is GCN 1.0 which is on it’s way out… https://en.wikipedia.org/wiki/Graphics_Core_Next and https://lists.freedesktop.org/archives/amd-gfx/2019-December/043586.html

Not sure if the Kernel 5.6 update or changing cable type from HDMI to DP fixed it, but amdgpu now recognizes the monitor correctly without needing the amdgpu.dc=0 hack any longer. So this seems to be fully resolved now whatever it was.

That’s good to know.