UDL device cannot get its own screen
Böszörményi Zoltán
zboszor at pr.hu
Tue Oct 22 15:50:21 UTC 2019
Hi,
I have the below configuration for an Intel based POS system that,
while advertises 3 outputs (DP1, VGA1 and HDMI1 with xf86-video-intel),
only two are usable. DP1 for the built-in touchscreen and VGA1 for
the external VGA connector.
I wanted to use an USB DisplayLink device as the 3rd output, with all
three output using its own Screen number, i.e. :0.0 :0.1 and :0.2.
The first observation is that I can't seem to be able to use the Intel
DDX driver in conjunction with the modesetting DDX that the UDL device
uses. The symptom is that two modesetting outputs are initialized,
one for UDL and one for the disconnected HDMI1 Intel output. At least
now the X server don't crash as with Xorg 1.19.x with a similar attempt.
The second is that when the modesetting driver is used, the Intel outputs
are renamed from VGA1 to VGA-1 and so on, i.e. the outputs get an extra
"-" between the output type and the number so it needed extra typing
to port the original config from intel to modesetting.
The third observation is that while I am using this configuration below,
so the UDL device should be assigned to :0.2 (and active!), it is really
assigned to :0[.0] as an inactive output. See that there's no "*" indicator
set for any of the supported modes on DVI-I-1-1.
How can I set up 3 different Screens correctly for 3 separate fullscreen
applications?
I am using Xorg 1.20.4 patched with the "autobind GPUs to the screen"
patch from Dave Airlie that at least wakes up the UDL device and makes
it visible without extra magic with providers/sinks.
# DISPLAY=:0 xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
DP-1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
1024x768 60.00*+
DVI-I-1-1 connected (normal left inverted right x axis y axis)
1024x768 75.03 + 60.00
1920x1080 60.00 +
1680x1050 59.88
1280x1024 75.02 60.02
1440x900 74.98 59.90
1280x720 60.00
800x600 75.00 60.32
640x480 75.00 72.81 66.67 59.94
720x400 70.08
1024x768 (0x4a) 65.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
# cat /etc/X11/xorg.conf.d/videocard.conf
Section "Monitor"
Identifier "Monitor-DP-1"
Option "AutoServerLayout" "on"
Option "Rotate" "normal"
EndSection
Section "Monitor"
Identifier "Monitor-HDMI-1"
Option "AutoServerLayout" "on"
Option "Rotate" "normal"
EndSection
Section "Monitor"
Identifier "Monitor-VGA-1"
Option "AutoServerLayout" "on"
Option "Rotate" "normal"
EndSection
Section "Monitor"
Identifier "DVI-I-1-1"
Option "AutoServerLayout" "on"
Option "Rotate" "normal"
EndSection
Section "Device"
Identifier "Intel0"
Driver "modesetting"
Option "kmsdev" "/dev/dri/card1"
Screen 0
Option "Monitor-DP1" "DP-1"
Option "ZaphodHeads" "DP-1"
EndSection
Section "Device"
Identifier "Intel1"
Driver "modesetting"
Option "kmsdev" "/dev/dri/card1"
Screen 1
Option "Monitor-VGA-1" "VGA-1"
Option "ZaphodHeads" "VGA-1"
EndSection
# Intentionally not referenced in ServerLayout below
Section "Device"
Identifier "Intel2"
Driver "modesetting"
Option "kmsdev" "/dev/dri/card1"
Option "Monitor-HDMI-1" "HDMI-1"
Option "ZaphodHeads" "HDMI-1"
EndSection
Section "Device"
Identifier "UDL"
Driver "modesetting"
Option "kmsdev" "/dev/dri/card0"
Screen 2
Option "Monitor-DVI-I-1-1" "DVI-I-1-1"
EndSection
Section "Screen"
Identifier "SCREEN"
Option "AutoServerLayout" "on"
Device "Intel0"
Monitor "Monitor-DP-1"
SubSection "Display"
Modes "1024x768"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "SCREEN1"
Option "AutoServerLayout" "on"
Device "Intel1"
Monitor "Monitor-VGA-1"
SubSection "Display"
Modes "1024x768"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "SCREEN2"
Option "AutoServerLayout" "on"
Device "UDL"
Monitor "Monitor-DVI-I-1-1"
SubSection "Display"
Modes "1024x768"
Depth 24
EndSubSection
EndSection
Section "ServerLayout"
Identifier "LAYOUT"
Option "AutoServerLayout" "on"
Screen 0 "SCREEN"
Screen 1 "SCREEN1" RightOf "SCREEN"
Screen 2 "SCREEN2" RightOf "SCREEN1"
EndSection
Best regards,
Zoltán Böszörményi
More information about the xorg
mailing list