One screen not working for multiple X-Screen with external dock as VGA video output

I have two screens (eDP-1 and DP-2-3). The first is build into my laptop and the second is an external screen. I want Psychtoolbox only be running on one of the two screens and MATLAB on the other screen. Therefore, I used XOrgConfCreator to create two XScreens. You can find the created file etc/X11/xorg.conf.d/90-ptbxorg.conf below. However, after restarting the computer only the built-in screen worked, the other screen remained black. When checking the display settings, the external screen wasn’t recognized anymore.
but screen 2 doesn’t work after restart. It remains black and is not recognized by the laptop anymore.
The file /etc/X11/xorg.conf.d/90-ptbxorg.conf was created with the XOrgConfCreator to define two separate XScreens.

  • Output of >> PsychtoolboxVersion

ans =
'3.0.17 - Flavor: Debian package - psychtoolbox-3 (3.0.17.6.dfsg1-1~nd100+1)

  • Which platform (Mac OS X, Windows XP/Vista/7, Linux, …) AND which MATLAB/Octave version you are using?

MATLAB version R2020b on Debian 10 (Buster) using Xfce desktop environment.

File /etc/X11/xorg.conf.d/90-ptbxorg.conf generated with XOrgConfCreator

# Auto generated xorg.conf - Created by Psychtoolbox XOrgConfCreator.

Section "ServerLayout"
  Identifier    "PTB-Hydra"
  Screen 0      "Screen0" 0 0
  Screen 1      "Screen1" RightOf "Screen0"
EndSection

Section "Monitor"
  Identifier    "eDP-1"
EndSection

Section "Monitor"
  Identifier    "DP-2-3"
EndSection

Section "Device"
  Identifier  "Card0"
  Driver      "modesetting"
  Option      "ZaphodHeads" "eDP-1"
  Option      "Monitor-eDP-1" "eDP-1"
  Screen 0
EndSection

Section "Device"
  Identifier  "Card1"
  Driver      "modesetting"
  Option      "ZaphodHeads" "DP-2-3"
  Option      "Monitor-DP-2-3" "DP-2-3"
  Screen 1
EndSection

Section "Screen"
  Identifier    "Screen0"
  Device        "Card0"
  Monitor       "eDP-1"
EndSection

Section "Screen"
  Identifier    "Screen1"
  Device        "Card1"
  Monitor       "DP-2-3"
EndSection
  • Hardware setup (GPU etc.) and relevant driver versions.

Graphics
VGA compatible controller [0300]: Intel Corporation HD Graphics 5500 [8086:1616] (rev 09)
Subsystem: Lenovo HD Graphics 5500 [17aa:5034]
Kernel driver in use: i915

The created xorg.conf file is correct for that setup. However, “DP-2-3” sounds suspicious for the given setup. Is this really a single graphics card machine, which XOrgConfCreator can handle, or a dual-graphics laptop with a 2nd higher performance gpu from Nvidia or AMD? XOrgConfCreator can’t create proper config for that atm. What laptop or PC model is this? How is the external display connected?

-mario

Hey Mario,
thank you for your answer. There is only one graphics card.

This is the laptop:

System Information
Manufacturer: LENOVO
Product Name: 20BV003SGE
Version: ThinkPad T450

The external display is connected via VGA.

And the only graphics card is this:

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09) (prog-if 00 [VGA controller])
Subsystem: Lenovo HD Graphics 5500
Flags: bus master, fast devsel, latency 0, IRQ 44
Memory at f0000000 (64-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
I/O ports at 3000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities:
Kernel driver in use: i915
Kernel modules: i915

Let me know, if you need any more information.

So it is a physical VGA output connector which is exposed as Displayport instead of VGA? Maybe they use a 3rd party onboard DP to VGA converter, and that’s why the naming is odd. I wonder if XOrgConfCreator is prepared for that.

What’s the output of ls /sys/class/drm/ ?
Also full output of the Xorg.0.log (maybe in /var/log/, maybe in ~/.local/share/xorg/ - i don’t know if and how Debian 10 deviates here from Ubuntu).
Also output of dmesg?

This is approaching the point where i’d ask you to buy priority support, unless we come to a resolution very soon, or you are prepared for a long wait time.
-mario

[Time spent: More than 30 minutes]

The problem is resolved: I disconnected the laptop from the docking station and connected the external display directly via VGA. Then I ran XOrgConfCreator again, where the external display now was recognized as “DP-2”, not “DP-2-3”. Now it works.

Are you still interested in the outputs you requested in your last message? If yes, do you want me to check while connected to the docking station or detached from it?

Thank you for your support!

A docking station! That was the critical piece of information I’d have needed to save me over half an hour of my Sunday! I’d ask you to ask your lab to consider buying priority support if possible, if you appreciate this help.

Yes. From now on you can switch via XOrgConfSelector between the dual-X-Screen setup and standard setup (selecting option 0 to remove the conf file).

I’d like to have all the info with the dock connected, but also then additionally in the standard setup with the dock connected. Maybe something can be learned about the case with the dock and how to handle it in the future.

How is the dock connected to the Laptop? PCIe? Some special connector? What model of dock is this - some link to a product page or technical description / model numbers etc.?

Maybe all the most verbose output from sudo lspci -vvv with the dock connected.

This could be some reliability issue with the connection to the dock, depending on how they implement that, and how well VGA load detection works with the dock. It could also be that the dock itself contains a secondary graphics card instead of just some active Displayport to VGA converter. That would effectively turn your laptop into a dual-graphics machine while connected to the dock, and also explain the problems with the auto-generated xorg.conf.

-mario

Docking-Station
Lenovo Pro Dock 40 A1
SD20F82751

external display directly connected to laptop:
ls /sys/class/drm/
card0
card0-DP-1
card0-DP-2
card0-eDP-1
card0-HDMI-A-1
card0-HDMI-A-2
renderD128
version

laptop and external display connected via docking station:
ls /sys/class/drm/
card0
card0-DP-1
card0-DP-2
card0-DP-3
card0-DP-4
card0-DP-5
card0-eDP-1
card0-HDMI-A-1
card0-HDMI-A-2
renderD128
version

Ok, so the dock uses a proprietary connector, but no separate 2nd gpu.

The Xorg.0.log i mentioned would maybe help if you can post that for the different configurations. But looking at the server code, it could be that dynamic connectors like the dock, which can appear/disappear, are handled differently for single-X-Screen vs. multi-X-Screen, and especially the dynamic ones may always get assigned to X-Screen 0. Also naming conventions change.

I think one thing you could try for a docked configuration is your original xorg.conf file that you posted, but replacing all text strings DP-2-3 with DP-3. Or DP-4 or DP-5. The right choice would be the one which is reported as connected, e.g.,

cat /sys/class/drm/card0-DP-3/status would report “connected” if anything would be connected to DP-3 because that’d be the VGA connector, “disconnected” otherwise.

The rule here is basically to remove the first number in the output name, assuming my hunch is correct.

XOrgConfCreator wasn’t designed or ever tested on hardware setups where video outputs or gpu’s can dynamically appear or disappear after system boot, so things could be amiss. I don’t have any hardware like docks or external gpu’s. Similar, DisplayPort Multistream-Transport was not ever tested due to lack of hardware…

-mario

[Work time spent: Way more than one hour.]

Hi Mario,
thanks for your answer. I don’t need any support anymore, since I can work without the docking station. But I can do the things your requested above, in case you are interested.

Yes please. Maybe XOrgconfCreator can be improved.