DisplayLink - Monitor (EN)

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche


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.

Hardware

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.

Sources

DisplayLink Forum: Patching and installing the driver

Arch-Wiki: Set up X-server