Make DisplayLink installer compatible with Ubuntu 21.04 (Hirsute Hippo)
I'm testing the prerelease version of the next Ubuntu release, 21.04 (Hirsute Hippo). There are incompatibilities between 21.04 and the current Ubuntu DisplayLink release, and I wanted to bring them to your attention, in case you weren't already aware, ask whether you are aware of any workarounds, and ask what your timeline is for supporting 21.04.
1) The evdi kernel module that ships with your DisplayLink installer does not compile under 21.04. I had to use the evdi module included with Ubuntu rather than the version that comes with your DisplayLink installer.
2) It appears that if my DisplayLink hub isn't plugged into my computer when it boots, the DisplayLink displays aren't detected when I subsequently plug in the hub.
3) If I unplug my DisplayLink hum from my computer and then plug it back in, the DisplayLink displays go away and there doesn't appear to be anything I can do to get them back, short of rebooting.
Things I have tried:
1) Invoking /opt/displaylink/DisplayLinkManager by hand as root after plugging in the DisplayLink hub makes no difference.
2) I've tried both Xorg and Wayland: same behavior on both.
3) I've tried both the Ubuntu version of libevdi and the version that you ship in your installer; same behavior with both.
4) I've tried both with a non-DisplayLink display plugged directly into the computer and without, i.e., with just displays plugged into my DisplayLink hub; same behavior for both.
Are you aware of these issues? Do you know of any workarounds, short of rebooting? Do you have a timeline for when you will release a new version of your installer that is compatible with 21.04?
Thank you,
Jonathan Kamens

-
Francesco Lodolo commented
Latest Linux Kernel Linux 5.15.0-18-generic seems to break DisplayLink beta drivers on Ubuntu 21.04.
It works fine with Linux 5.15.0-17-generic though. -
Thomas Anders commented
Meanwhile Ubuntu 21.10 has been released with Linux kernel 5.13. Will you make it possible to use the display-link driver on Ubuntu 21.10?
-
Simon Delhaye commented
Hello,
Is there a working solution so far? I tried several methods on pop OS 21.04 (similar to ubuntu), the only result is a poor performance with lags and high CPU consumption.
It worked on 20.04 until mesa was incompatible with this driver.
Sincerely,
-
Raina153 Bhai commented
Hiiiii
-
Jeremy Beremy commented
Hi,
I wanted to second some of what Luca Capra is experiencing with DisplayLink and 21.04. Namely, I am having the pc freeze any time any of the display settings change. If I try to change resolution, refresh rate, ordering, or if I disconnect a monitor, the pc will freeze, and I'll have to reboot.
-
Vivian Gervais commented
I have installed the modified driver from Jonathan Kamens on Ubuntu Budgie 21.04, but had no luck. No display on VGA or HDMI on J5 Create USB 3.0 Mini Dock. This device works perfectly on Windoze 10.
-
Luca Capra commented
Hi,
I want to add my experience with ubuntu 21.04 (+nvidia driver) and display link driver.Some specs
- Linux vin 5.11.0-18-generic #19-Ubuntu SMP Fri May 7 14:22:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
- Nvidia Driver Version: 460.80 CUDA Version: 11.2
- Display link 5.4.0-55.153.1. after clean boot or after wake up from sleep, while loading the UI, the pc freeze if the display link port is connected. No terminal, no responses.
2. setting properties for the displays (moving, ordering etc) also freeze the pc
3. I can use the display link device if connected after login but it shows some mouse flickeringGlad to provide more feedback if needed
update 1: uninstalling nvidia driver made the pc work again
update 2: in kern.log I also found this trace
Jun 21 08:49:36 vin kernel: [ 55.291787] RIP: 0010:dma_buf_vunmap+0x82/0x90
Jun 21 08:49:36 vin kernel: [ 55.291793] Code: e6 48 89 df e8 ff c2 7c 00 80 7b 58 00 48 c7 43 50 00 00 00 00 74 04 c6 43 58 00 4c 89 ef e8 55 d4 40 00 5b 41 5c 41 5d 5d c3 <0f> 0b 0f 0b c3 0f 0b 0f 0b 0f 1f 44 00 00 0f 1f 44 00 00 55 48 89
Jun 21 08:49:36 vin kernel: [ 55.291795] RSP: 0018:ffffa69c41c2fca0 EFLAGS: 00010202
Jun 21 08:49:36 vin kernel: [ 55.291799] RAX: ffffa69c45001000 RBX: ffff9b7a51483600 RCX: 0000000000000000
Jun 21 08:49:36 vin kernel: [ 55.291801] RDX: 0000000000000000 RSI: ffffa69c41c2fcc8 RDI: ffff9b7a51483600
Jun 21 08:49:36 vin kernel: [ 55.291803] RBP: ffffa69c41c2fcb8 R08: 0000000000000001 R09: 0000000000000000
Jun 21 08:49:36 vin kernel: [ 55.291805] R10: 0000000000000001 R11: ffff9b7a5611ef00 R12: ffffa69c41c2fcc8
Jun 21 08:49:36 vin kernel: [ 55.291807] R13: ffff9b7a58d59dd8 R14: ffff9b7a52fa5f28 R15: ffff9b7a52fa5e38
Jun 21 08:49:36 vin kernel: [ 55.291809] FS: 00007f71c4056a40(0000) GS:ffff9b7daed00000(0000) knlGS:0000000000000000
Jun 21 08:49:36 vin kernel: [ 55.291812] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jun 21 08:49:36 vin kernel: [ 55.291814] CR2: 000055e0dca40370 CR3: 00000001074ae004 CR4: 00000000003706e0
Jun 21 08:49:36 vin kernel: [ 55.291816] Call Trace:
Jun 21 08:49:36 vin kernel: [ 55.291820] evdi_gem_vunmap+0xb0/0xd0 [evdi]
Jun 21 08:49:36 vin kernel: [ 55.291828] evdi_gem_free_object+0x1c/0xc0 [evdi]
Jun 21 08:49:36 vin kernel: [ 55.291834] drm_gem_object_free+0x1d/0x30 [drm]
Jun 21 08:49:36 vin kernel: [ 55.291861] drm_gem_object_handle_put_unlocked+0xc5/0xe0 [drm]
Jun 21 08:49:36 vin kernel: [ 55.291882] drm_gem_object_release_handle+0x71/0x80 [drm]
Jun 21 08:49:36 vin kernel: [ 55.291903] drm_gem_handle_delete+0x59/0xa0 [drm]
Jun 21 08:49:36 vin kernel: [ 55.291925] ? drm_mode_destroy_dumb+0x50/0x50 [drm]
Jun 21 08:49:36 vin kernel: [ 55.291953] drm_gem_dumb_destroy+0x10/0x20 [drm]
Jun 21 08:49:36 vin kernel: [ 55.291974] drm_mode_destroy_dumb_ioctl+0x33/0x50 [drm]
Jun 21 08:49:36 vin kernel: [ 55.292001] drm_ioctl_kernel+0xae/0xf0 [drm]
Jun 21 08:49:36 vin kernel: [ 55.292024] drm_ioctl+0x245/0x400 [drm]
Jun 21 08:49:36 vin kernel: [ 55.292047] ? drm_mode_destroy_dumb+0x50/0x50 [drm]
Jun 21 08:49:36 vin kernel: [ 55.292075] ? __do_munmap+0x329/0x520
Jun 21 08:49:36 vin kernel: [ 55.292080] __x64_sys_ioctl+0x91/0xc0
Jun 21 08:49:36 vin kernel: [ 55.292084] do_syscall_64+0x38/0x90
Jun 21 08:49:36 vin kernel: [ 55.292087] entry_SYSCALL_64_after_hwframe+0x44/0xa9
Jun 21 08:49:36 vin kernel: [ 55.292091] RIP: 0033:0x7f71c44d8ecb -
82UN0 commented
I don’t know if that would be helpful, but it don't work for me with HDMI (USB & sound is Ok) : Linux 5.10.0-6-amd64 bullseye/sid Noyau : #1 SMP Debian 5.10.28-1 2021-04-09) I-Tec USB 3.0/USB-C Dual HDMI on ThinkPad P14S 8-Core AMD Ryzen 7 PRO 4750U with Radeon Graphics
-
Dominik Zogg commented
The version 5.4 works with some issue: Any shutdown or reboot will immediately crash (system is not usable even with a terminal instead of Xorg.
-
Vincent Heald commented
I support this suggestion as a display-link driver dependent, and preferring the non LTS version's of Kubuntu. I like others, prefer the more recent version of KDE, and not the older LTS Xubuntu base which comes with the likes of KDE Neon.
Please make the official display-link driver compatible with 21.04.
Many thanks to Jonathan Kamens for making it possible to use Displaylink 20.04 with 21.04 even if it means some sacrifices like lower Kernel version etc. Hence why we still need official compatibility with 21.04!
-
Thank you very much, Jonathan. Feedback has been shared with the engineering team. We tend to only support LTS. Once sizing is done, we will have the elements to decide if we can schedule support for 21.04.
-
Jonathan Kamens commented
I've put together a modified installer that works in Ubuntu 21.04. You can read more about it and download it at https://blog.kamens.us/2021/02/21/using-displaylink-with-ubuntu-21-04-hirsute-hippo/ .
-
Jonathan Kamens commented
I've identified a regression in udev in Ubuntu 21.04 that is causing problems 2 and 3 enumerated above, and I've found a workaround.
The regression is documented here:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1916418
The workaround is to change the first two ACTION lines in /etc/udev/rules.d/99-displaylink.rules so that they read as follows:
ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTR{idVendor}=="17e9", IMPORT{builtin}="usb_id", ENV{DISPLAYLINK_DEVNAME}="$env{DEVNAME}", ENV{DISPLAYLINK_DEVICE_ID}="$env{ID_BUS}-$env{BUSNUM}-$env{DEVNUM}-$env{ID_SERIAL}", ENV{REMOVE_CMD}="/opt/displaylink/udev.sh $root $env{DISPLAYLINK_DEVICE_ID} $env{DISPLAYLINK_DEVNAME}"
ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="17e9", ATTR{bInterfaceClass}=="ff", ATTR{bInterfaceProtocol}=="03", IMPORT{parent}="ID_BUS", IMPORT{parent}="BUSNUM", IMPORT{parent}="DEVNUM", IMPORT{parent}="ID_SERIAL", IMPORT{parent}="DEVNAME", RUN+="/opt/displaylink/udev.sh $root $env{ID_BUS}-$env{BUSNUM}-$env{DEVNUM}-$env{ID_SERIAL} $env{DEVNAME}"