DisplayLink and openSuSE Tumbleweed (never ending story??!!)

My new laptop (DELL XPS 13) don’t have a vga or hdmi outupt anymore. I have to use the Dell “USB-Dockingstation”. The laptop was delivered with an ready installed ubuntu, but due to my very old tradition, I installed openSuSE instead of it. What I didn’t know was, that ubuntu has native uspport for the DisplayLink Adapters, openSuSE not. I can’t understand why openSuSE ignores this new technology. It becomes more and more state of the art with the new utra books, and it is possible to get it running (see ubuntu).
I have meanwhile spent at least one whole day trying to adapt the ubuntu package to my newly installed openSuSE tumbleweed. All packages I could find didn’t really fit for my system, and threw errors during compilation of the evdi modules.
Eventually I managed to compile the evdi module (thanks to this link https://github.com/konserw/evdi/commit/7e071c58b12969d50a3b9898d9fb5c016e60d915)and adapt the displaylink-installer.sh to my system by adding the patches from displaylink-evdi-opensuse-master.zip->displaylink-installer.sh.opensuse.patch in hand work, because the patch utility threw some errors.
Now the evdi module gets loaded, and the displaylink.service starts. But I still my external monitor stays dark and I can’t see it in any configuration ustility (xrandr, system settings->setup of monitors and displays).
Does somebody have any hint, how to go on? I’m really desperate, as I need the external monitor for my work.

Hi
Just a clarification, maybe you might want to head over to the DisplayLink folks and ask them why they only support Ub* and not openSUSE and other distributions for their prioprietary stuff? Their license is restrictive that it can’t be distributed except by them for the binary blob…

If you run ldd DisplayLinkManager nothing missing?

Hi
I took the liberty of updating the evdi kmp I have on OBS, builds for 4.13.4 kernel, you might want to download, else you need to rebuild your module for every kernel update;
https://build.opensuse.org/package/show/home:malcolmlewis:TESTING/evdi

Hi Malcom

sorry for my huffy words. I was really angry spending hours after hours, trying to get my system running. I’ll follow your suggestion and write to DisplayLink. I didn’t really understand the background of the difficulty (and still don’t understand fully, why openSuSE can’t do the work, you are doing now, in the standard distribution)

Thank’s for your new evdi package I’ll try it and let you know whether it works.

The output of ldd DisplayLinkManager looks quite normal:


        linux-vdso.so.1 (0x00007ffd465af000)
        libuuid.so.1 => /usr/lib64/libuuid.so.1 (0x00007f4e44a4f000)
        libusb-1.0.so.0 => /usr/lib64/libusb-1.0.so.0 (0x00007f4e44836000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f4e4462e000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f4e4442a000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4e440a1000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f4e43d56000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f4e43b3f000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4e43921000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f4e43567000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f4e44c54000)
        libudev.so.1 => /usr/lib64/libudev.so.1 (0x00007f4e43345000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f4e4312e000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4e42f07000)
        libcap.so.2 => /usr/lib64/libcap.so.2 (0x00007f4e42d02000)
        libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007f4e42a75000)

Hi
It’s not the driver that is open source (hopefully they will push to the kernel?), it’s the binary blob above (which seems ok?), so as long as that file is in eg /usr/sbin/ that’s the only file that is needed nothing else.

You do see the display connected via lsub, or lspci, or dmesg commands to see the driver is working?

Hi

eventually I managed to install the newest driver from DisplayLink and your newest evdi kernel driver.
Sometimes I get hard crashes of the system when starting the service, but since I’ve installed the newest driver, it didn’t happen any more (hopefully it will hod).
But I still don’t see the Display in any configuration tools and the display stays dark.

Here is the output of the displaylink service:

service displaylink status
● displaylink.service - DisplayLink Manager Service
   Loaded: loaded (/etc/systemd/system/displaylink.service; static; vendor preset: disabled)
   Active: active (running) since Tue 2017-10-10 22:14:40 CEST; 2min 49s ago
  Process: 13462 ExecStartPre=/bin/sh -c modprobe evdi || (dkms install evdi/1.4.210 && modprobe evdi) (code=exited, status=0/SUCCESS)
 Main PID: 13466 (DisplayLinkMana)
    Tasks: 11 (limit: 4915)
   CGroup: /system.slice/displaylink.service
           └─13466 /opt/displaylink/DisplayLinkManager

Oct 10 22:14:40 thilosxps13 systemd[1]: Starting DisplayLink Manager Service...
Oct 10 22:14:40 thilosxps13 systemd[1]: Started DisplayLink Manager Service. 

and here from dmesg after starting the service and connecting the DisplayLink Adapter:

  790.146432] evdi: loading out-of-tree module taints kernel.
  790.159395] evdi: * Initialising logging on level 5
  812.712122] usb 1-2: new high-speed USB device number 4 using xhci_hcd
  813.001727] usb 1-2: New USB device found, idVendor=2109, idProduct=2210
  813.001733] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
  813.001736] usb 1-2: Product: USB2.0 Hub             
  813.001738] usb 1-2: Manufacturer: VIA Labs, Inc.         
  813.003060] hub 1-2:1.0: USB hub found
  813.006052] hub 1-2:1.0: 4 ports detected
  813.120310] usb 2-2: new SuperSpeed USB device number 2 using xhci_hcd
  813.141514] usb 2-2: New USB device found, idVendor=2109, idProduct=0210
  813.141519] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
  813.141521] usb 2-2: Product: USB3.0 Hub             
  813.141523] usb 2-2: Manufacturer: VIA Labs, Inc.         
  813.143109] hub 2-2:1.0: USB hub found
  813.143511] hub 2-2:1.0: 1 port detected
  814.500388] usb 2-2.1: new SuperSpeed USB device number 3 using xhci_hcd
  814.520995] usb 2-2.1: New USB device found, idVendor=17e9, idProduct=436f
  814.521000] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  814.521003] usb 2-2.1: Product: Dell 4-in-1 Adapter
  814.521005] usb 2-2.1: Manufacturer: DisplayLink
  814.521008] usb 2-2.1: SerialNumber: 1706020009
  815.160970] cdc_ncm 2-2.1:1.5: MAC-Address: 9c:eb:e8:51:1c:51
  815.160976] cdc_ncm 2-2.1:1.5: setting rx_max = 16384
  815.161168] cdc_ncm 2-2.1:1.5: setting tx_max = 16384
  815.161694] cdc_ncm 2-2.1:1.5 usb0: register 'cdc_ncm' at usb-0000:00:14.0-2.1, CDC NCM, 9c:eb:e8:51:1c:51
  815.162295] usbcore: registered new interface driver cdc_ncm
  815.166442] usbcore: registered new interface driver cdc_wdm
  815.171228] usb 2-2.1: Warning! Unlikely big volume range (=511), cval->res is probably wrong.
  815.171236] usb 2-2.1: [13] FU [Dell USB Audio Playback Volume] ch = 6, val = -8176/0/16
  815.171754] usbcore: registered new interface driver snd-usb-audio
  815.182499] usbcore: registered new interface driver cdc_mbim
  815.205578] cdc_ncm 2-2.1:1.5 enp0s20f0u2u1i5: renamed from usb0
  815.261755] IPv6: ADDRCONF(NETDEV_UP): enp0s20f0u2u1i5: link is not ready
  815.261964] IPv6: ADDRCONF(NETDEV_UP): enp0s20f0u2u1i5: link is not ready
  818.276866] cdc_ncm 2-2.1:1.5 enp0s20f0u2u1i5: network connection: disconnected

Hi
It could be the evdi driver needs to be up and running before running the service… also is the display a USB 3.0 device, if so is it plugged into a USB 3.0 port?


lsusb -t

Could be a conflict with the openSUSE systemd. So you get the system screen to run ok if you disable the systemd service? If yes, if you manually modprobe the evdi module and then just run /opt/displaylink/DisplayLinkManager all as root user what happens?

I realized, that I was missing the firmware files (I have no idea why). I tried one more times

./displaylink-driver-1.4.210.run --keep --noexec

and surprise, three firmware files (*.spkg) were extracted. Now I get dmesg lines from evdi kernel module (see below). But the connected display still does not show up in xrandr :frowning:


Oct 11 00:17:45 thilosxps13 kernel: evdi: loading out-of-tree module taints kernel.
Oct 11 00:17:45 thilosxps13 kernel: evdi: * Initialising logging on level 5
Oct 11 00:19:23 thilosxps13 kernel: evdi: [D] add_store:235 Increasing device count to 1
Oct 11 00:19:23 thilosxps13 kernel: evdi: [D] evdi_crtc_init:328 drm_crtc_init: 0
Oct 11 00:19:23 thilosxps13 kernel: evdi: [W] evdi_painter_crtc_state_notify:362 Painter does not exist!
Oct 11 00:19:23 thilosxps13 kernel: evdi: [D] evdi_detect:78 Painter is disconnected
Oct 11 00:19:23 thilosxps13 kernel: evdi evdi.0: fb1: evdidrmfb frame buffer device
Oct 11 00:19:23 thilosxps13 kernel: [drm] Initialized evdi 1.4.1 20170417 for evdi.0 on minor 1
Oct 11 00:19:23 thilosxps13 kernel: [drm] evdi: evdi_stats_init
Oct 11 00:19:23 thilosxps13 kernel: evdi: [D] evdi_detect:78 Painter is disconnected
Oct 11 00:19:23 thilosxps13 kernel: evdi: [D] evdi_detect:78 Painter is disconnected
Oct 11 00:19:23 thilosxps13 kernel: evdi: [D] evdi_painter_crtc_state_notify:359 (dev=0) Notifying crtc state: 3
Oct 11 00:19:23 thilosxps13 kernel: evdi: [W] evdi_painter_send_crtc_state:265 Painter is not connected!
Oct 11 00:19:23 thilosxps13 kernel: evdi: [D] evdi_painter_crtc_state_notify:359 (dev=0) Notifying crtc state: 3
Oct 11 00:19:23 thilosxps13 kernel: evdi: [W] evdi_painter_send_crtc_state:265 Painter is not connected!
Oct 11 00:19:24 thilosxps13 kernel: evdi: [D] evdi_detect:78 Painter is disconnected

Hi
What about the lsusb -t output?

Have a read here;
https://github.com/AdnanHodzic/displaylink-debian/blob/master/post-install-guide.md

Is the system UEFI boot?

Here is the lsusb -t output:

 lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/1p, 5000M
        |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=usbfs, 5000M
        |__ Port 1: Dev 3, If 1, Class=Application Specific Interface, Driver=, 5000M
        |__ Port 1: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 5000M
        |__ Port 1: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 5000M
        |__ Port 1: Dev 3, If 4, Class=Audio, Driver=snd-usb-audio, 5000M
        |__ Port 1: Dev 3, If 5, Class=Communications, Driver=cdc_ncm, 5000M
        |__ Port 1: Dev 3, If 6, Class=CDC Data, Driver=cdc_ncm, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 2: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 3: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 3: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 5: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 5: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
 

The BIOS settings are UEFI on and secure boot on.

Thanks to your link to the displaylink post install guide, I meanwhile managed to see a new provider with the xrandr --listproviders:


xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x47; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 3; outputs: 5; associated providers: 1; name: modesetting
    output eDP-1
    output DP-1
    output HDMI-1
    output DP-2
    output HDMI-2
Provider 1: id: 0x178; cap: 0x2 (Sink Output); crtcs: 1; outputs: 1; associated providers: 1; name: modesetting
    output DVI-I-1-1

and I connected the new Provider to Provider 0 with


xrandr --setprovideroutputsource 1 0
xrandr --output DVI-I-1-1 --auto --right-of eDP1
 

But I still don’t see anything on the connected monitor. I’m also surprised about the name of the new output of Provider 1: DVI-I-1-1. There is no DVI connector on the dell adapter, just one VGA and one HDMI. So I still asume, there is something going wrong.

I still have the problem, that the graphical system freezes from time to time, when I plug in the displaylink adapter.

On Tue 17 Oct 2017 08:46:01 AM CDT, triessner wrote:

Here is the lsusb -t output:

Code:

lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
|__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/1p, 5000M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=usbfs,
5000M |__ Port 1: Dev 3, If 1, Class=Application Specific Interface,
Driver=, 5000M |__ Port 1: Dev 3, If 2, Class=Audio,
Driver=snd-usb-audio, 5000M |__ Port 1: Dev 3, If 3, Class=Audio,
Driver=snd-usb-audio, 5000M |__ Port 1: Dev 3, If 4, Class=Audio,
Driver=snd-usb-audio, 5000M |__ Port 1: Dev 3, If 5,
Class=Communications, Driver=cdc_ncm, 5000M |__ Port 1: Dev 3, If 6,
Class=CDC Data, Driver=cdc_ncm, 5000M /: Bus 01.Port 1: Dev 1,
Class=root_hub, Driver=xhci_hcd/12p, 480M |__ Port 2: Dev 4, If 0,
Class=Hub, Driver=hub/4p, 480M |__ Port 3: Dev 2, If 0, Class=Wireless,
Driver=btusb, 12M |__ Port 3: Dev 2, If 1, Class=Wireless,
Driver=btusb, 12M |__ Port 5: Dev 3, If 0, Class=Video,
Driver=uvcvideo, 480M |__ Port 5: Dev 3, If 1, Class=Video,
Driver=uvcvideo, 480M

The BIOS settings are UEFI on and secure boot on.

Thanks to your link to the displaylink post install guide, I meanwhile
managed to see a new provider with the xrandr --listproviders:

Code:

xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x47; cap: 0xf (Source Output, Sink Output, Source
Offload, Sink Offload); crtcs: 3; outputs: 5; associated providers: 1;
name: modesetting output eDP-1 output DP-1
output HDMI-1
output DP-2
output HDMI-2
Provider 1: id: 0x178; cap: 0x2 (Sink Output); crtcs: 1; outputs: 1;
associated providers: 1; name: modesetting output DVI-I-1-1


and I connected the new Provider to Provider 0 with

Code:

xrandr --setprovideroutputsource 1 0
xrandr --output DVI-I-1-1 --auto --right-of eDP1


But I still don’t see anything on the connected monitor. I’m also
surprised about the name of the new output of Provider 1: DVI-I-1-1.
There is no DVI connector on the dell adapter, just one VGA and one
HDMI. So I still asume, there is something going wrong.

I still have the problem, that the graphical system freezes from time to
time, when I plug in the displaylink adapter.

Hi
Maybe look in the logs (Xorg, journalctl) I’m not sure how to proceed
since I don’t have any displaylink hardware esp not your setup :frowning:

I could order a display link DVI dongle, but knowing my luck I won’t be
able to duplicate…


Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
openSUSE Leap 42.2|GNOME 3.20.2|4.4.87-18.29-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

There seems to be an other problem too, Sometimes the usb system stops at all, when I connect the DisplayLink adapter. Here are the corresponding messages from journalctl:


systemd[1]: Starting DisplayLink Manager Service...
Oct 23 15:56:03 thilosxps13 kernel: evdi: loading out-of-tree module taints kernel.
Oct 23 15:56:03 thilosxps13 kernel: evdi: * Initialising logging on level 5
Oct 23 15:56:03 thilosxps13 systemd[1]: Started DisplayLink Manager Service.
Oct 23 15:56:33 thilosxps13 kernel: usb 1-2: new high-speed USB device number 4 using xhci_hcd
Oct 23 15:56:33 thilosxps13 kernel: usb 1-2: New USB device found, idVendor=2109, idProduct=2210
Oct 23 15:56:33 thilosxps13 kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Oct 23 15:56:33 thilosxps13 kernel: usb 1-2: Product: USB2.0 Hub             
Oct 23 15:56:33 thilosxps13 kernel: usb 1-2: Manufacturer: VIA Labs, Inc.         
Oct 23 15:56:33 thilosxps13 kernel: hub 1-2:1.0: USB hub found
Oct 23 15:56:33 thilosxps13 kernel: hub 1-2:1.0: 4 ports detected
Oct 23 15:56:33 thilosxps13 kernel: usb 2-2: new SuperSpeed USB device number 2 using xhci_hcd
Oct 23 15:56:33 thilosxps13 kernel: usb 2-2: New USB device found, idVendor=2109, idProduct=0210
Oct 23 15:56:33 thilosxps13 kernel: usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Oct 23 15:56:33 thilosxps13 kernel: usb 2-2: Product: USB3.0 Hub             
Oct 23 15:56:33 thilosxps13 kernel: usb 2-2: Manufacturer: VIA Labs, Inc.         
Oct 23 15:56:33 thilosxps13 kernel: hub 2-2:1.0: USB hub found
Oct 23 15:56:33 thilosxps13 kernel: hub 2-2:1.0: 1 port detected
Oct 23 15:56:34 thilosxps13 kernel: xhci_hcd 0000:00:14.0: xHC is not running.
Oct 23 15:57:38 thilosxps13 kernel: xhci_hcd 0000:00:14.0: xHCI host controller not responding, assume dead
Oct 23 15:57:38 thilosxps13 kernel: xhci_hcd 0000:00:14.0: HC died; cleaning up
Oct 23 15:57:38 thilosxps13 kernel: usb 1-2: USB disconnect, device number 4
Oct 23 15:57:38 thilosxps13 bluetoothd[1622]: Endpoint unregistered: sender=:1.37 path=/MediaEndpoint/A2DPSource
Oct 23 15:57:38 thilosxps13 kernel: usb 2-2: USB disconnect, device number 2
Oct 23 15:57:38 thilosxps13 kernel: usb 1-3: USB disconnect, device number 2
Oct 23 15:57:38 thilosxps13 bluetoothd[1622]: Endpoint unregistered: sender=:1.37 path=/MediaEndpoint/A2DPSink
Oct 23 15:57:38 thilosxps13 systemd[1]: Starting Load/Save RF Kill Switch Status...
Oct 23 15:57:38 thilosxps13 kernel: usb 1-5: USB disconnect, device number 3
Oct 23 15:57:38 thilosxps13 systemd[1]: bluetooth.target: Unit not needed anymore. Stopping.
Oct 23 15:57:38 thilosxps13 systemd[1]: Stopped target Bluetooth.
Oct 23 15:57:38 thilosxps13 dbus[1177]: [system] Rejected send message, 1 matched rules; type="error", sender=":1.37" (uid=1000 pid=1947 comm="/usr/bin/pulseaudio --start --log-target=syslog ") interface="(unset)" member="(unset)" error name="org.bluez.MediaEndpoint1.Error.NotImplemented" requested_reply="0" destination=":1.14" (uid=0 pid=1622 comm="/usr/lib/bluetooth/bluetoothd ")
Oct 23 15:57:38 thilosxps13 dbus[1177]: [system] Rejected send message, 1 matched rules; type="error", sender=":1.37" (uid=1000 pid=1947 comm="/usr/bin/pulseaudio --start --log-target=syslog ") interface="(unset)" member="(unset)" error name="org.bluez.MediaEndpoint1.Error.NotImplemented" requested_reply="0" destination=":1.14" (uid=0 pid=1622 comm="/usr/lib/bluetooth/bluetoothd ")
Oct 23 15:57:38 thilosxps13 dbus[1177]: [system] Rejected send message, 1 matched rules; type="error", sender=":1.37" (uid=1000 pid=1947 comm="/usr/bin/pulseaudio --start --log-target=syslog ") interface="(unset)" member="(unset)" error name="org.bluez.MediaEndpoint1.Error.NotImplemented" requested_reply="0" destination=":1.14" (uid=0 pid=1622 comm="/usr/lib/bluetooth/bluetoothd ")
Oct 23 15:57:38 thilosxps13 dbus[1177]: [system] Rejected send message, 1 matched rules; type="error", sender=":1.37" (uid=1000 pid=1947 comm="/usr/bin/pulseaudio --start --log-target=syslog ") interface="(unset)" member="(unset)" error name="org.bluez.MediaEndpoint1.Error.NotImplemented" requested_reply="0" destination=":1.14" (uid=0 pid=1622 comm="/usr/lib/bluetooth/bluetoothd ")
Oct 23 15:57:38 thilosxps13 systemd[1]: Started Load/Save RF Kill Switch Status.

As you can see, the displaylink adapter is not even seen. But sometimes it works, at least so far, that I see my display with xrandr --listproviders. And sometimes the system freezes :-(*

I followed the procedure

installed the tumbleweed repository and the evdi rpm plus the displaylink.run file and ended up, that my notebook could only use one monitor, the external VGA didn’t work any more and the resolution left me with 1024x768 on VGA and 1152 on the internal monitor.
Displaylink 3.0 didn’t work. So I uninstalled it.

However out of the box I can use the internal and external VGA Monitor. The via USB2.0 connected monitor works too, but only at 1024x768.

@ malcolmlewis I have seen you built repos upto 42.2 can you do one for 42.3? https://codeholics.com/2017/12/20/displaylink-dk1522-issue-after-opensuse-leap-42-3-upgrade/ this appears to work

Hi
I only build the evdi module (open source), the installer has proprietary blobs, can’t build on OBS, you would need to patch yourself as per the link. Just grabbed the latest evdi release but still needs some patching to get it to build. It’s Spring Break here so may not get around to look at patching until next week…

Hi
Done for openSUSE Leap 42.3 and Tumbleweed;

After a recent update within the last week, mine has stopped working. I have OpenSUSE 15.0, and I tried to run the installation manually, but I was getting a number of errors when it was trying to “make”, and I am nowhere near enough versed in this to fix it on that level.

Can you update your repo for OpenSUSE 15.0, or is there anything I can do to help to fix that for everyone?

Hi
It’s already done, you need the update repository;
https://download.opensuse.org/repositories/home:/malcolmlewis:/TESTING/openSUSE_Leap_15.0_Update/

Thank you, I did not have that repository. I had to uninstall and reinstall, but it seems to be working now, though I may need to manually start the service and then restart X after each boot, but I think I am okay with that as long as I have my multi-monitor setup. Thank you so much!!

Hey guys,
I have a HP USB-C universal dock and a HP zbook 15u, and while the network and chariging work out of the box with the USB-C, the screen connected via display port does not. Can’t find the packages on the link above. Are they still around? What exactly is necessary?