DisplayLink - Monitor (EN)
Here it is described how to set up the driver for a USB adapter with DisplayLink chipset and how to activate a monitor connected there.
Inhaltsverzeichnis
Hardware
- Adapter i-tec USB 3.0 / USB-C Dual 4K DP Video Adapter
- Monitor is an EIZO EV3895 with a resolution of 3840x1600
- Laptop
System: Host: Tuxedo Kernel: 5.10.3-towo.3-siduction-amd64 x86_64 bits: 64 Desktop: KDE Plasma 5.20.4 Distro: siduction 13.1.0 Firestarter - kde - (201305211844) Machine: Type: Laptop System: Notebook product: W230ST v: N/A serial: <superuser required> Mobo: Notebook model: W230ST serial: <superuser required> BIOS: American Megatrends v: 4.6.5 date: 10/03/2013 CPU: Info: Quad Core model: Intel Core i7-4702MQ bits: 64 type: MT MCP L2 cache: 6 MiB Speed: 1036 MHz min/max: 800/3200 MHz Core speeds (MHz): 1: 1036 2: 1022 3: 1011 4: 1003 5: 1023 6: 1000 7: 1009 8: 1005 Graphics: Device-1: Intel 4th Gen Core Processor Integrated Graphics driver: i915 v: kernel Device-2: NVIDIA GK106M [GeForce GTX 765M] driver: N/A Display: x11 server: X.Org 1.20.10 driver: modesetting unloaded: intel resolution: 1: 1920x1080~60Hz 2: 3840x1600~60Hz OpenGL: renderer: Mesa DRI Intel HD Graphics 4600 (HSW GT2) v: 4.5 Mesa 20.2.6
Preparations
The first thing you need to do is download the driver from DisplayLink. ( Release: 5.3.1 05 May 2020 )
https://www.displaylink.com/downloads/ubuntu
For the driver to work with kernel 5.9 and 5.10, a new version of edvi must be used.
To do this, download the code as a zip file from branch 1.7.x on GitHub. ( Version 1.7.2 )
https://github.com/DisplayLink/evdi/tree/v1.7.x
Patch driver
First, the driver must be unpacked and the files extracted from the run file.
unzip 'DisplayLink USB Graphics Software for Ubuntu 5.3.1.zip' chmod +x displaylink-driver-5.3.1.34.run ./displaylink-driver-5.3.1.34.run --noexec --keep
Then unzip the evdvi-zip and compress the contents (without git files) of the resulting folder as tar.gz
unzip evdi-1.7.x.zip tar --exclude ".travis.yml" --exclude ".git*" -zcvf evdi.tar.gz -C evdi-1.7.x/ .
Then move the file to the driver folder.
mv evdi.tar.gz displaylink-driver-5.3.1.34/
Install driver
If not already present, two packages must be installed.
apt install dkms libdrm-dev
Now the driver can be installed.
cd displaylink-driver-5.3.1.34 sudo ./displaylink-installer.sh install
Set up X-server
Since the Modesetting driver is used, PageFlip must be deactivated. To do this, create a config file with this content.
Section "Device" Identifier "DisplayLink" Driver "modesetting" Option "PageFlip" "false" EndSection
This either goes into the folder
/usr/share/X11/xorg.conf.d/20-evdidevice.conf
or
/etc/X11/xorg.conf.d/20-evdidevice.conf
Possibly nouveau must be blacklisted. See Arch-Wiki in the sources.
Afterwards, it is easiest to perform a restart.
Set up monitor
Now you can test if the connections on the adapter are recognized correctly.
$ xrandr --listproviders Providers: number : 5 Provider 0: id: 0x45 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 3 associated providers: 1 name:modesetting Provider 1: id: 0x146 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting Provider 2: id: 0x124 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting Provider 3: id: 0x102 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting Provider 4: id: 0xd3 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting
The first entry is my laptop screen. The other four belong to the adapter (but it only has two ports).
In my configuration the fourth port is the correct one. This is activated with this:
xrandr --setprovideroutputsource 4 0
The 4 in front of the 0 means that the external monitor should be the primary monitor. Now you can check if the monitor is recognized.
$ xrandr Screen 0: minimum 320 x 200, current 3840 x 1600, maximum 16384 x 16384 eDP-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 282mm x 165mm 1920x1080 60.00*+ 59.97 59.96 59.93 40.00 1680x1050 59.95 59.88 1600x1024 60.17 ... snip ... 320x240 60.05 360x202 59.51 59.13 320x180 59.84 59.32 VGA-1 disconnected (normal left inverted right x axis y axis) HDMI-1 disconnected (normal left inverted right x axis y axis) DVI-I-1-1 connected primary 3840x1600+0+0 (normal left inverted right x axis y axis) 880mm x 367mm 3840x1600 59.99*+ 30.00 2560x1600 59.97 1920x1080 60.00 59.94 1600x1200 60.00 1680x1050 59.95 ... snip ... 800x600 (0x77) 40.000MHz +HSync +VSync h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz v: height 600 start 601 end 605 total 628 clock 60.32Hz 640x480 (0x86) 25.175MHz -HSync -VSync h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz v: height 480 start 490 end 492 total 525 clock 59.94Hz
Now activate the monitor:
xrandr --auto
Since this has to be done after every startup, I created a batch file for it.
#!/bin/sh xrandr --setprovideroutputsource 4 0 sleep 1s xrandr sleep 1s xrandr --auto exit
The monitor settings can now be adjusted via the Normal Settings dialog.
Problems
I can't close the screen of my laptop. Then the computer reacts only extremely delayed. As soon as I open the screen again, everything works normally.
Help is available in the Arch-Wiki
With me the monitor also works after a standby.