Dual head: Second monitor no longer recognized

After installing Tumbleweed, I was first able to connect a monitor to my notebook – as expected and as usual.

However, now, after fiddling around here and there to setup my system to suit my needs, it doesn’t work any longer. The system doesn’t recognize the monitor, period. The xrandr -q command only shows the laptop monitor, and that’s it. I double-checked by also trying a different monitor (didn’t work) and by trying both monitors with an openSUSE 42.3 notebook (did work).

I am not sure what might have caused dual head to stop working. Any suggestions where I should take a deeper look? /var/log/messages didn’t show anything obvious (to me).

Thanks
Rainer

What fiddling?
Did you ‘zypper dup’ to upgrade?
Did you try journalctl ?

What fiddling?

Installing and deinstalling various packages, configuring services, e.g., Cyrus IMAP, OpenLDAP, etc. Nothing dealing with external monitors in particular, as far as I am aware of. Most of the time, I didn’t have the external monitor connected to my notebook, however, so I don’t know at which point the problem was actually introduced.

Did you ‘zypper dup’ to upgrade?

Yes, sure.

Did you try journalctl ?

No, I only looked at /var/log/messages, so journalctl was a good hint! However, I didn’t spot anything obvious. But it is hard to find something if you don’t know exactly what you are looking for or where.

Currently, the system behaves as if the second monitor isn’t there. If I pull the Display Port plug, journalctl doesn’t show anything, the same when plugging it back it – no reaction at all.

Oh, I also ran an openSUSE 15.0 Leap KDE Live system, which could successfully address the external monitor, so the problem is definitely not hardware-related.

Can you share your graphics hardware details please? It may be a driver-related issue.

inxi -Gxx

Sure. Here you go:

Graphics:  Device-1: Intel HD Graphics P530 vendor: Lenovo driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:191d 
           Device-2: NVIDIA GM107GLM [Quadro M2000M] vendor: Lenovo driver: nvidia v: 418.49.04 bus ID: 01:00.0 
           chip ID: 10de:13b0 
           Display: server: X.Org 1.20.4 driver: modesetting,nouveau,nvidia unloaded: fbdev,vesa alternate: intel,nv 
           compositor: kwin_x11 resolution: 3840x2160~60Hz 
           OpenGL: renderer: Mesa DRI Intel HD Graphics P530 (Skylake GT2) v: 4.5 Mesa 19.0.1 compat-v: 3.0 direct render: Yes 

Also, which desktop?

echo $XDG_CURRENT_DESKTOP
echo $XDG_SESSION_TYPE

Ok, so you have a hybrid graphics system? Likely impacting here.

xrandr --listproviders

It’s late here, so I’ll let others advise further, but if using Optimus graphics there are specific steps needed to cope with Intel/NVIDIA hardware. Review the following guide
https://en.opensuse.org/SDB:NVIDIA_Bumblebee#Tumbleweed
and there are a number of existing threads on the topic if you care to search.

I am somewhat skeptical whether these special steps are really needed, because everything works fine with the 15.0 KDE Live system.

Anyway, here are the pieces of information you requested:

user@machine:~> echo $XDG_CURRENT_DESKTOP
KDE
user@machine:~> echo $XDG_SESSION_TYPE
x11
user@machine:~> xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x43; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 3; outputs: 1; associated providers: 0; name: modesetting
    output eDP-1

Here’s an additional observation:

I just tried to run the Tumbleweed Live system from a USB stick, which worked fine, and I could use both monitors.

After that, I rebooted from harddisk. Now I can use the laptop monitor only. Surprisingly (at least to me), the Plymoth shutdown screen from the previous live system execution still remains on the external monitor.

Post:

zypper lr -d
zypper se -s bumble nvidia
cat /var/log/Xorg.0.log

Fixed it!

Eventually I narrowed it down by comparing log messages, installed drivers and active kernel modules between my work system and the live system and configuring the former to match the latter as close as possible. Turned out that I don’t need any Nvidia stuff and the Nouveau driver is sufficient.

Thanks for your questions, folks, which inspired me to look at the right places!

Rainer

Another inxi -Gxx would tell googlers what this means. There are two “Nouveau” drivers, one kernel, the other DDX.

Yes, sure:

Graphics:  Device-1: Intel HD Graphics P530 vendor: Lenovo driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:191d 
           Device-2: NVIDIA GM107GLM [Quadro M2000M] vendor: Lenovo driver: nouveau v: kernel bus ID: 01:00.0 
           chip ID: 10de:13b0 
           Display: x11 server: X.Org 1.20.4 driver: modesetting,nouveau unloaded: fbdev,nv,vesa alternate: intel,nvidia 
           compositor: kwin_x11 resolution: 3840x2160~60Hz, 1920x1080~60Hz 
           OpenGL: renderer: Mesa DRI Intel HD Graphics P530 (Skylake GT2) v: 4.5 Mesa 19.0.1 compat-v: 3.0 direct render: Yes 

Apparently I was wrong about what inxi would report. It seems to say both modesetting and nouveau are in use. What version does inxi -V report? If not 3.0.33 or newer, try updating to see if it indicates only one. This can usually be done with its -U switch if you create /etc/inxi.conf containing B_ALLOW_UPDATE=true.

Which DDX does Xorg.0.log report in use?

Unfortunately, in Tumbleweed inxi is still at version 3.0.32-00 (2019-02-07), so I am afraid I can’t help here.

How can I find out reliably? The string “DDX” does not occur in the file.

DDX are those (non-kernel) driver names inxi reports on the “line” (which may wrap in a narrow window) showing the server version, following the string “driver:”.

egrep -i 'modeset|nouveau' /var/log/Xorg.0.log

normally will report which is in use via a flood that is equally obvious by simply viewing Xorg.0.log.

egrep -i 'modeset|nouveau' /var/log/Xorg.0.log | wc -l

here currently produces 183.

Okay, I grepped for “modeline” in /var/log/Xorg.0.log (egrep -i ‘modeline’ /var/log/Xorg.0.log) and got a bunch of lines with “modeset(0)” and another bunch with “NOUVEAU(G0)”, if that answers your question.

Let’s try simpler:

grep -i onnect /var/log/Xorg.0.log

This doesn’t work for Intel DDX users, and thus may mislead Optimus users.

Hm, that lists only the notebook monitor:

    31.129] (II) modeset(0): Output eDP-1 connected

So, for simplicity, I uploaded the whole file to my Google drive: https://drive.google.com/open?id=12pTiMH4XxvY3p9t2k0-pNWd4eqvrVBRs