Displaylink/UDL
WARNING: udlfb is fbdev version of this driver and it is a driver for a outdated linux graphical stack(fbdev).It should be disabled on mainline kernel but there are some mainline has udlfb enabled.you can disabled it by setting FB_UDL to off. See aports#16414 |
Unlike the displaylink windows driver,udl dont support 32bit color.It only support 24/16bit color |
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
WARNING: The displaylink may over heat If It is run over spec. |
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) :
gnome has a ton of graphical glitch on certain device (those graphical glitch will appear on those display that connected via displaylink) |
- 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