I have been trying to get my second monitor working on a fresh install of Ubuntu 18.04 LTS, though I've experimented with Arch Linux as well. Both my primary and secondary monitor show up in the options menu for Displays, and all correct values for resolutions and refresh rates seem to be correct.
I can move my mouse and software windows over to the other screen as well. It acts like it's functional in pretty much every aspect but doesn't actually display anything.
What's interesting is that the monitor is technically getting a signal, because it doesn't pop up with "Check Signal Cable" (my monitor's "No Signal" warning). However, it's not actually showing anything on-screen, but rather just a black screen.
Computer Specs / Technical Details
I am running a 1920x1080 monitor (primary, working) and 1280x1024 monitor (secondary, not working). I am using an AMD Radeon 380X. Both monitors are directly connected to the graphics card via two DVI ports. The setup works fine in Windows 10, meaning I very much doubt this is a hardware issue.
Diagnostic Information
xrandr output:
Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 16384 x 16384
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-A-0 disconnected (normal left inverted right x axis y axis)
DVI-D-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
1920x1080 60.00*+
1680x1050 59.88
1280x1024 75.02 60.02
1440x900 59.90
1280x960 60.00
1280x800 59.91
1152x864 75.00
1280x720 60.00
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 59.94
720x400 70.08
DVI-D-1 connected 1280x1024+1920+0 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.02*+ 75.02
1280x800 60.02
1152x864 75.00
1280x720 60.02
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 59.94
720x400 70.08
My two screens are hooked up to DVI-D-0, my main, working monitor that is 1920x1080, and DVI-D-1, my "non-working" monitor, which is 1280x1024. xrandr says they are connected, so the xrandr output seems fine and since I can move my mouse and everything over to the second monitor, this seems to all be correct and recognized by Ubuntu and Arch.
Relevant lspci -nnk output:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Tonga XT / Amethyst XT [Radeon R9 380X / R9 M295X] [1002:6938] (rev f1)
Subsystem: Tul Corporation / PowerColor Radeon R9 380X [148c:2350]
Kernel driver in use: amdgpu
Kernel modules: amdgpu
That line is the only VGA or output-related thing that shows up. As you can see, amdgpu is being used, which I'll go a little more in-depth about later in the post.
I have an intel processor as well that could potentially provide graphics, but both monitors are plugged into the graphics card itself and not to the motherboard. No output shows up with lspci for intel graphics, nor do I believe it should.
Xorg.0.log pastebin link: https://pastebin.com/TCkfWjcg
What I've Tried
Just to preface this all, I've looked at all over the internet and tried most fixes that I've seen on a bunch of Stack Exchange websites and on others. The following is a list of everything I've tried that I can remember.
- Changing xrandr Values: I tried changing the values of my monitors via xrandr. My xrandr output seemed to be fine beforehand, but changing them to the correct values (even though xrandr already indicated that the monitors were at the correct values) did not fix my problem.
- Changing xorg.conf: I modified my xorg.conf to try and explicitly define what the screens would do, but this didn't work. I largely followed the instructions on the Arch wiki for this. I only tested this on Arch, but from what I read online this should also apply to Ubuntu.
- Different Distro / Fresh Install: I initially had this issue on Arch, so I changed stuff on there, then did a fresh install to see that the issue still persisted. I've since tried a fresh install of Ubuntu 18.04 and the issue has persisted.
- Updating Drivers: I downloaded the latest amdgpu drivers from AMD's website and installed from there. It didn't break anything after a reboot, and my primary monitor still worked fine, but didn't fix my issue.
- Driver Change amdgpu -> radeon: I tried changing from the amdgpu driver to the radeon driver. I was not able to make my system actually use the radeon driver, despite me installing it via the instructions on the Arch Linux Wiki page. amdgpu was always used, and when I blacklisted it via a .conf file in modprobe.d, my graphical display wouldn't even start up and I was forced to drop back into the terminal and revert everything from there so that it would start again.
- Trying amdgpu-pro: I only tried this on Ubuntu, but this did nothing to fix my issues, Trying this caused me to have to do a fresh install when I tried to switch from amdgpu to amdgpu-pro due to it breaking the graphical Ubuntu interface and not allowing me to easily drop down into a terminal.
- Lowering Resolution on Nonfunctional Monitor: I tried lowering the resolution on my second monitor to something really low (800x600), because apparently if that fixes it, that indicates a probable driver issue. I was never able to get any sort of output on the monitor with any resolution that I tried.
- Changing Monitor Aspect Ratio: I saw somewhere that making both monitors the same aspect ratio could fix this, so I tried changing my secondary monitor to 16:9, the same as my primary monitor, but this didn't fix my issue.
My Suspicions
The monitor setup works fine on Windows, so I'm taking that as proof that no wires or connectors are broken and that it's not a hardware issue.
This probably also isn't an issue specifically with xrandr (or xorg, or x server, or whatever - I'm not super familiar with the differences) because all the output from there seems fine and correct to me.
I believe that this is probably an issue with my driver setup due to it being evidently connected and getting some sort of signal but not actually displaying anything. From what I've read, my graphics card is supported, but I think it might be an issue with amdgpu or my driver setup somehow. I'm not able to make my system use radeon instead of amdgpu, which might be related.
/var/log/Xorg.0.log
to see what the X server thinks it's doing. Thexrandr
output looks like the X server thinks it's properly displaying stuff. Also try changing the resolution of the second monitor withxrandr
, and see what happens. You can also play withxsetroot -solid red
etc. to make sure the framebuffer isn't just black.$HOME/.local/share/xorg/
for me. Nothing looks wrong but I don't know exactly what I'm looking for so maybe you or someone else could take a look. I have already tried changing the resolution of the second monitor via xrandr, which doesn't work.xroot -solid red
appears to do nothing.