Displaylink/UDL

From postmarketOS Wiki
Icon 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 by setting FB_UDL to off. See aports#16414
Note 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 : 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
Icon 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 spec from the descriptor and set the cap on how many pixel the displaylink can output acc to the spec if the displaylink's spec has setted a cap by the vendor and udl has successfully read the spec.if not, udl wont set the cap on the displaylink thus some displaylink might able to run overspec.

For reason some usb2 displaylink(All early usb2 displaylink 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 spec. 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 to work by removing the check.However due to the overspec issue it now can output 1920x1080 but with a bit of overheat.The hottest spot is 50c

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) :

Note 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

See Also