Public bug reported: DisplayLink (a Synaptics technology) is a USB graphics transport, not a GPU. A DisplayLink device is a remote display controller: the host captures a virtual framebuffer, compresses it, and streams it over USB to a DL-series ASIC inside a dock or adapter. That ASIC decodes the stream and drives its own physical DisplayPort and HDMI outputs. The transport works over USB 2.0, USB 3.x, USB4 and Thunderbolt.
This is the technology behind most "universal docking stations" - the ones that behave the same way on any host over a single cable, with no dependency on the host's DP Alt Mode support or GPU vendor. A wide range of docks and adapters from many manufacturers ship DL-3xxx, DL-41xx, DL-5xxx, DL-6xxx and DL-7xxx silicon. Because the video path is not a PCIe display controller, it cannot be driven by a conventional DRM/KMS driver alone. The stack is split in two: 1. EVDI (Extensible Virtual Display Interface) - an open-source Linux kernel module plus a userspace wrapper library, libevdi. EVDI registers a virtual DRM/KMS connector so that Mutter, KWin, Xorg and wlroots see an ordinary display, and hands the rendered framebuffer (with damage regions) out to userspace. EVDI is GPL-2.0 / LGPL-2.1, developed in the open at https://github.com/DisplayLink/evdi , and is already in the Ubuntu archive as the community-maintained evdi source package (evdi-dkms, libevdi1). 2. DisplayLinkManager - the userspace service that consumes EVDI output, performs the DisplayLink compression, handles device enumeration, EDID and mode negotiation, and device firmware updates, then pushes frames to the USB device through libusb. This component is proprietary and binary-only, and is what this request is about. == What we are requesting == Synaptics would like the displaylink-driver source and binary package to be included in the Ubuntu multiverse archive, starting with version 6.4.0. We are the upstream vendor. We are requesting sponsorship for the initial upload, and we commit to maintaining the package and shipping updates for the supported Ubuntu series. == Target series == We are filing after the 26.10 Feature Freeze (20 August 2026), so we are not asking for 26.10 through the NEW queue and we are not requesting a Feature Freeze Exception. We are aiming at the next development series instead. * 27.04 - primary target; new package via the NEW queue, once the archive opens. * 26.10 - requested via ubuntu-backports once 27.04 is accepted. * 26.04 LTS - requested via ubuntu-backports once 27.04 is accepted. * 24.04 LTS - requested via ubuntu-backports once 27.04 is accepted. We understand that a brand-new package cannot be introduced directly into a released stable series, and that a package must land in the development release before it can be backported to earlier ones. Hence the ordering above: 27.04 first through NEW, then backport requests for the three stable series, rather than SRUs. We are filing now, well ahead of the 27.04 Feature Freeze, so that the licence review and any packaging feedback can be worked through without deadline pressure. Please tell us if you would prefer the backport requests filed up front alongside this bug, or only after the package clears NEW. The package already builds and is tested on 24.04, 26.04 and 26.10; see the PPA below. We will add a 27.04 build to the PPA as soon as that series opens. == Why this is an Ubuntu-only submission == We are aware that routing new packages through Debian first is normally preferred, and we have considered it. It does not fit this package. The payload is non-free, so the Debian route would be an RFP against non-free rather than an ITP. non-free is not enabled by default on Debian installs, so a package there would not reach the users this driver exists for. The dependencies are Ubuntu-specific. The package depends on the Ubuntu-packaged evdi-dkms / libevdi1 and, where available, on the Ubuntu OEM kernel EVDI modules (linux-modules-evdi-oem-26.04, linux-modules-evdi-oem-24.04). Those OEM kernel packages have no Debian equivalent, so the dependency structure would have to be rewritten for a Debian submission and then diverge again for Ubuntu. Our validation, support matrix and release cadence are defined in terms of Ubuntu series. We test and support the series listed above; we are not in a position to commit to Debian's release cycle or to support the package there. == Where to get it == Source and binary packages are published by us in our Launchpad PPA: https://launchpad.net/~synaptics- displaylink/+archive/ubuntu/displaylink-driver sudo add-apt-repository ppa:synaptics-displaylink/displaylink-driver sudo apt update sudo apt install displaylink-driver The PPA already contains the 6.4.0 source package built for 24.04, 26.04 and 26.10, so the packaging is ready to review as-is. * Upstream homepage and downloads: https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu * Open-source component (EVDI): https://github.com/DisplayLink/evdi * Support knowledge base: https://support.displaylink.com/knowledgebase/articles/615714 == License == This package is NOT DFSG-free, which is why multiverse is the correct component. No Main Inclusion Review is required. * DisplayLinkManager - proprietary, binary-only, no source available. Licensed under the DisplayLink Software End User Licence Agreement. * DisplayLink device firmware images (*.spkg) - proprietary, redistributable binary blobs for DL-7xxx/6xxx/5xxx/41xx/3xxx devices, covered by the same EULA. These cannot be split out into firmware-* / linux-firmware or handed to fwupd: they are not host-loaded firmware on a kernel-visible bus, and there is no in-kernel driver to request them. The device is flashed over a vendor USB protocol by DisplayLinkManager itself, which enumerates the device, reads its current firmware revision, decides whether an update is required, and writes it as part of bringing the device up. The blobs are only meaningful to the matching DisplayLinkManager version and are versioned and validated together with it, so separating them would produce a package that cannot be used on its own and a version-skew failure mode with no benefit to the archive. * EVDI (GPL-2.0) and libevdi (LGPL-2.1) - NOT shipped by this package. We depend on the existing archive packages instead; see the notes below. The redistribution grant the archive team will want to check is clause 1.4 of the EULA as shipped in debian/copyright: 1.4. You may distribute the Software (other than the Open Source Elements) only (i) without modification, (ii) in an unobfuscated form which allows the Software to be identified, and (iii) subject to the terms and conditions of this EULA, a copy of which shall be included with any such distribution. You may use, copy, modify and distribute the Open Source Elements in accordance with the terms and conditions applicable to them. The package satisfies all three conditions: the binary is shipped unmodified and unobfuscated, and the complete EULA text is included verbatim in debian/copyright. debian/copyright is machine-readable DEP-5 with the full EULA inlined as the DisplayLink-EULA licence stanza, followed by the licence texts of the open source elements linked into DisplayLinkManager. It is generated from a single source of truth at package build time, so it cannot drift from the licence we actually ship. You can read it directly in the source package in the PPA. == Notes for the reviewer / archive admin == Relationship to the existing evdi source package ------------------------------------------------ displaylink-driver does NOT vendor, fork or ship EVDI. The bundled EVDI tarball is deliberately removed from the upstream repack. Since 6.2.0 we are compatible with the community-packaged evdi-dkms / libevdi1 in the Ubuntu archive, and 6.4.0 depends on them. This removes the duplicate and conflicting DKMS tree that the old .run installer used to create, which was a recurring source of user breakage on kernel upgrades. Debian packaging policy ------------------------ The packaging was reworked for 6.4.0 specifically to conform to Debian policy: debhelper-compat (= 13) with the dh sequencer, Standards-Version 4.7.3, Rules-Requires-Root: no, a proper systemd unit, udev rules, a debian/watch file, debian/README.source documenting the tarball repack, and XSBC-Original-Maintainer set with Maintainer pointing at ubuntu-devel-discuss. It is lintian-clean apart from the expected non-free and binary-without-source tags, which are documented in debian/displaylink-driver.lintian-overrides. Previous releases were only ever distributed as a self-extracting .run installer; that is no longer the case. debian/control summary ----------------------- Source: displaylink-driver Section: video Priority: optional Build-Depends: debhelper-compat (= 13), libusb-1.0-0 Standards-Version: 4.7.3 Rules-Requires-Root: no XS-Autobuild: yes Package: displaylink-driver Architecture: amd64 armhf arm64 Depends: ${shlibs:Depends}, ${misc:Depends}, linux-modules-evdi-oem-26.04 | linux-modules-evdi-oem-24.04 | evdi (>= 1.12.0) | evdi-dkms (>= 1.12.0), evdi (>= 1.12.0) | libevdi1 (>= 1.12.0), libusb-1.0-0 (>= 1.0.16) Suggests: update-notifier-common, xmlstarlet, weston The alternation on the EVDI kernel module lets the package use the OEM-kernel EVDI module where one is available and fall back to DKMS otherwise. libusb-1.0-0 appears in Build-Depends even though nothing is linked at build time; it is there so dpkg-shlibdeps can resolve the SONAME DisplayLinkManager was built against. 6.4.0 links against the system libusb rather than a bundled copy. XS-Autobuild: yes is set, as required for a multiverse package that is to be built on the Ubuntu build daemons. Architectures -------------- amd64, armhf, arm64. There is deliberately no i386 build - we do not wish to publish one. The package is architecture-restricted rather than "any" because the proprietary component is binary-only and cannot be rebuilt from source on other architectures. Binary package contents ------------------------ * /usr/lib/displaylink-driver/DisplayLinkManager and the device firmware images (*.spkg) * displaylink-driver.service systemd unit * udev rules to start the service on device hotplug * suspend/resume hooks * a Weston session desktop entry * a manpage Support matrix --------------- Kernels 4.15 through 7.3.0-rc3; Xorg 1.16 or newer; Mutter 3.32 or newer for the Wayland session. Tested on Ubuntu 20.04, 22.04, 24.04, 25.04 and 26.04, with preliminary support for 26.10. Up to two displays are supported per host, at resolutions up to 4K on appropriate hardware. Privilege level ---------------- DisplayLinkManager runs as a system service under systemd. It requires root because it loads and opens the EVDI kernel module, opens the raw USB device nodes for the DisplayLink hardware, and writes device firmware updates. It is started by udev on device hotplug and is not user-facing. == Contact == Marcin Kaspryk <[email protected]> https://launchpad.net/~mkaspryk Launchpad team: https://launchpad.net/~synaptics-displaylink Upstream support: Synaptics Technical Support <[email protected]> ** Affects: ubuntu Importance: Undecided Status: New ** Tags: needs-packaging -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2168533 Title: [needs-packaging] displaylink-driver To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+bug/2168533/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
