Displaylink/UDL

udl is kernel module for USB 2.0 DisplayLink devices.It is in the mainline.Not all postmarket OS's kernel dont have udl kernel module so you need to enable it in the kernel config (DRM_UDL) and recompile the kernel on those kernel that dont have it. .Also it is quite finicky. Only Some usb 2 displaylink work with it, some dont.(Only HP NL571AA,Lenovo LT1421 wide is tested to work.)
If your USB 2.0 DisplayLink devices with udl isnt work with udl (For example : Diamond BVU165,EVGA UV PLUS+16), your will get this error from dmesg.
[ 228.747008] [drm] vendor descriptor length:e0 data:00 00 00 00 00 00 00 00 00 00 00
[ 228.747032] [drm:udl_init [udl]] *ERROR* Unrecognized vendor firmware descriptor
[ 228.749618] [drm] Initialized udl 0.0.1 20120220 for 1-1.3:1.0 on minor 1
[ 228.749637] [drm] Initialized udl on minor 1
[ 228.885058] udl 1-1.3:1.0: [drm] fb1: udldrmfb frame buffer device
[ 228.885358] usbcore: registered new interface driver udl
===== Theory about the vendor firmware descriptor issue=====
User:exkc has digged into the driver for investigating the issue and here is the theory: UDL will check the usb descriptor 0x5f to check certain criteria of the descriptor when a usb2 displaylink is pluged in. If it failed to check the criteria, It will error out with a message of "Unrecognized vendor firmware descriptor".
After doing checking, UDL will read the limitation of the displaylink from the descriptor and set the cap on how many pixel the displaylink can output acc to the limitation if the displaylink has limitation and udl has successfully read the limitation.if not, udl wont set the cap on the displaylink thus some displaylink might able to run overspec.
 
For reason some usb2 displaylink(All DL-1x0 are behaved like that it seem?) 's vendor descriptor 0x5f is filled with 0 thus caused the check failed and udl failed to read the limitation. It is possible to force udl to work on those device by removing check in the udl driver via this patch. 
In exkc case, they managed to get EVGA UV PLUS+16/EVGA UV PLUS+12/Gefen EXT-USB-2-DVI-CO to work by removing the check.However due to the overspec issue they all now can output 1920x1080 but with a bit of overheat.
==UI==
===UDL===
====Sway/Phosh====
* Cant dual display with internal display of the device 
* Hot plug isnt work 
* If the displaylink is plugged before running sway, sway will only display on the external display. It also will be quite laggy (especially in 3d acceleration).
* If the displaylink is plugged after running sway, sway will only display on the internal display.
====Gnome====
44.3 (Wayland) :
Work well (except for small graphics glitch)
45.0 (Wayland) :
Ghosting
Setting system variable CLUTTER_PAINT to disable-clipped-redraws:disable-culling resort this problem
In some case gnome 45 always crashed with udl.(some investigation is needed)
46.0 (Wayland) :
* Cant dual display with internal display of the device 
* Hot plug work
* Can dual display with multiple displaylink
====Plasma====
6.1.4(wayland):
Work well (except for 1. A bit laggy 2. cant triple monitor with internal display, 2xdisplaylink 3.hot plug work but u might need wait abit for the shell to restart if it has crashed )
====Xorg====
* Cant dual display with internal display of the device ( it seem to able to do that on other distro)
* Crashed on device that has build in gpu. (Only work on device that dont have any kind of gpu)
* Cant dual display with multiple displaylink
==See Also==
* UDL test on oneplus 6t with postmarket os