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 dri-devel mailing list