summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO33
-rw-r--r--.gitignore1
-rw-r--r--99-displaylink.rules20
-rw-r--r--DISPLAYLINK-EULA135
-rw-r--r--PKGBUILD101
-rw-r--r--displaylink-release-notes-5.8.txt191
-rw-r--r--displaylink-sleep.sh41
-rw-r--r--release-note.txt112
-rw-r--r--udev.sh127
9 files changed, 538 insertions, 223 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 21e8457b3e6a..2da07bc92652 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,29 +1,36 @@
pkgbase = displaylink
- pkgdesc = Linux driver for DL-6xxx, DL-5xxx, DL-41xx and DL-3x00
- pkgver = 5.1.26
+ pkgdesc = Linux driver for DisplayLink devices
+ pkgver = 5.8
pkgrel = 1
- url = http://www.displaylink.com/downloads/ubuntu.php
- changelog = release-note.txt
+ url = https://www.synaptics.com/products/displaylink-graphics
+ changelog = displaylink-release-notes-5.8.txt
arch = i686
arch = x86_64
+ arch = arm
+ arch = armv6h
+ arch = armv7h
+ arch = aarch64
license = custom
license = GPL2
license = LGPL2.1
makedepends = grep
makedepends = gawk
makedepends = wget
- depends = evdi>=1.5.0
- depends = libusb>=1.0.0
- source = displaylink-driver-5.1.26.zip::https://www.displaylink.com/downloads/file?id=1304
+ depends = evdi<1.15
+ depends = libusb
+ source = displaylink-driver-5.8.zip::https://www.synaptics.com/sites/default/files/exe_files/2023-08/DisplayLink%20USB%20Graphics%20Software%20for%20Ubuntu5.8-EXE.zip
+ source = displaylink-release-notes-5.8.txt
+ source = DISPLAYLINK-EULA
source = udev.sh
source = 99-displaylink.rules
source = displaylink.service
source = displaylink-sleep.sh
- md5sums = f1956e0f795f72cfa54c0ac86cf1268e
- md5sums = d5de775e41af06edbd8073adc490139d
- md5sums = 20495d81c7d2540910ef86dc437b7fac
- md5sums = c141a15e973481c7d961f8e135627ca4
- md5sums = 7cbd9ab2ac79ba66e8297689c6e5483e
+ sha256sums = 22c552ead448c80d9e8dd48a842bb511184d07a74180ac76bd89dd144ddda816
+ sha256sums = 83167d307d030abc42f2bbe6ad6a23802433cf5d8fab50afb0d519036518f22b
+ sha256sums = 2f81fea43332a62b2cf1dd47e56ea01caf1e886bcd16c3f82b18bfe148fb21a9
+ sha256sums = 53aac00fecfc04ec9e3d88ea13f5bf7bb05f669ff33e1834ba671f9240fe9641
+ sha256sums = 530c488fa9b2833ff64611ff2b533f63212a85f8ebed446d5a4d51cf9a52c7ea
+ sha256sums = 342e83abfe2a38d5635ea928345e933d2ad127ebd3f7caca476663d4f583684b
+ sha256sums = 9b4609423fd9cfaa8cad8acd086dd6b92cd09182facbb28792affeac1ecc4a45
pkgname = displaylink
-
diff --git a/.gitignore b/.gitignore
index ed7b9c3d775a..89d2fb574ae9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
*.swp
*.tar.gz
*.tar.xz
+*.tar.zst
*.zip
pkg/
src/
diff --git a/99-displaylink.rules b/99-displaylink.rules
index 3d2cc078917f..db2035a8623b 100644
--- a/99-displaylink.rules
+++ b/99-displaylink.rules
@@ -1,5 +1,19 @@
-# Copyright (c) 2016 DisplayLink (UK) Ltd.
+# Copyright (c) 2016 - 2022 DisplayLink (UK) Ltd.
# File autogenerated by udev-installer.sh script
-ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="17e9", ATTR{bInterfaceClass}=="ff", ATTR{bInterfaceProtocol}=="03", ENV{ID_DISPLAYLINK_DEVICE}="1", RUN+="/opt/displaylink/udev.sh START"
-ACTION=="remove", ENV{ID_DISPLAYLINK_DEVICE}=="1", RUN+="/opt/displaylink/udev.sh STOP $env{DEVPATH}"
+ACTION=="add|change", 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}"
+
+ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="17e9", \
+ ATTR{bInterfaceClass}=="ff", ATTR{bInterfaceProtocol}=="03", IMPORT{parent}="DISPLAYLINK*", \
+ RUN+="/opt/displaylink/udev.sh $root $devpath $env{DISPLAYLINK_DEVICE_ID} $env{DISPLAYLINK_DEVNAME}"
+
+ACTION=="remove", ENV{PRODUCT}=="17e9/*", RUN+="/opt/displaylink/udev.sh $root $env{DEVNAME}"
+
+# udev rules configuring DisplayLink usb ethernet device
+IMPORT{builtin}="usb_id"
+
+ACTION=="add|move|bind", ENV{ID_USB_DRIVER}=="cdc_ncm", ATTRS{idVendor}=="17e9", \
+ ATTR{cdc_ncm/rx_max}=="?*", ATTR{cdc_ncm/dwNtbInMaxSize}=="?*", ATTR{cdc_ncm/rx_max}="$attr{cdc_ncm/dwNtbInMaxSize}"
+ACTION=="add|move|bind", ENV{ID_USB_DRIVER}=="cdc_ncm", ATTRS{idVendor}=="17e9", \
+ ATTR{cdc_ncm/tx_max}=="?*", ATTR{cdc_ncm/dwNtbOutMaxSize}=="?*", ATTR{cdc_ncm/tx_max}="$attr{cdc_ncm/dwNtbOutMaxSize}"
+
diff --git a/DISPLAYLINK-EULA b/DISPLAYLINK-EULA
new file mode 100644
index 000000000000..ebe5627e13b4
--- /dev/null
+++ b/DISPLAYLINK-EULA
@@ -0,0 +1,135 @@
+DISPLAYLINK SOFTWARE – END USER LICENSE AGREEMENT
+
+IMPORTANT - READ BEFORE DOWNLOADING, INSTALLING OR USING.
+
+BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE AND ANY ASSOCIATED MATERIALS
+(COLLECTIVELY, “THE SOFTWARE”), YOU AGREE TO BE BOUND BY THE TERMS OF THIS END
+USER LICENCE AGREEMENT (“EULA”). IF YOU DO NOT AGREE TO THE TERMS OF THIS EULA,
+YOU MAY NOT INSTALL OR USE THE SOFTWARE.
+
+1. LICENSE:
+
+1.1 This Software is licensed by DisplayLink Corp. (“DisplayLink”) on a
+non-exclusive, non-transferable basis for use only in conjunction with products
+which incorporate DisplayLink technology. Use of the Software otherwise than in
+conjunction with products which incorporate DisplayLink technology is not
+permitted.
+
+1.2 Any reference to DisplayLink under this EULA shall include its Affiliates.
+Affiliates shall mean any company that, directly or indirectly, Controls, is
+Controlled by or is under common Control with DisplayLink.
+
+1.3 You may not install, copy, modify, reverse engineer, decompile,
+disassemble, create derivative works from, rent, sell, distribute, sublicense,
+offer as a service or transfer any part of the Software except as provided in
+this EULA or as permitted by applicable law, and you agree to prevent
+unauthorized copying of the Software.
+
+1.4 This Software utilizes portions of code and software libraries which are
+subject to other terms and conditions (“Open Source Elements”), and such Open
+Source Elements and the applicable terms and conditions are identified in
+documentation accompanying this Software.
+
+1.5 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.
+
+1.6 If you are an end user:
+
+a. you may install the Software on any personal electronic device owned or
+controlled by you for your personal use;
+
+b. you may make a back-up copy of the Software only for the purposes of (i)
+restoring the Software on a device you have previously installed it on, or (ii)
+installing the Software on a device which replaces a device you have previously
+installed it on where the Software is no longer in use on that device.
+
+1.7 If you are a network administrator or IT manager:
+
+a. you may install the Software on your organization's IT systems and on
+personal electronic devices owned or controlled by your organization or its
+staff, for your organization's use;
+
+b. you may make a reasonable number of back-up copies of the Software only for
+the purposes of installing or restoring the Software.
+
+2. NO OTHER RIGHTS. No rights or licenses are granted by DisplayLink to you,
+expressly or by implication, with respect to any proprietary information or
+patent, copyright, mask work, trademark, trade secret, or other intellectual
+property right owned or controlled by DisplayLink, except as expressly provided
+in this EULA. All rights not expressly granted are reserved. If you obtained the
+Software within a country of the European Community, this EULA is subject to any
+rights available under the European Community Software Directive (2009/24/EC).
+
+3. OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the Software
+remains with DisplayLink or its suppliers. The Software is copyrighted and
+protected by the laws of the United States and other countries, and
+international treaty provisions. You may not remove any copyright notices from
+the Software. DisplayLink may make changes to the Software, or to items
+referenced therein, at any time without notice, but is not obligated to support
+or update the Software. You may not assign or transfer any of your rights or
+obligations under this EULA to a third party without the prior written consent
+of DisplayLink. DisplayLink may freely assign or transfer this EULA.
+
+4. USE OF SOFTWARE. You represent and warrant that:
+
+a. you are not (i) situated in a country has been designated by the U.S.
+Government as a “terrorist supporting” country or that is subject to a U.S.
+Government embargo, or (ii) included on any U.S. Government list of prohibited
+or restricted parties;
+
+b. you will not (i) use the Software in violation of any applicable laws or
+regulations, (ii) infringe the intellectual property or other rights of any
+third party, or (iii) transmit viruses, malware or other harmful or malicious
+computer code.
+
+5. EXCLUSION OF WARRANTIES. EXCEPT WITH RESPECT TO ANY WARRANTIES WHICH MAY NOT
+LAWFULLY BE EXCLUDED, WHICH ARE EXPRESSLY PRESERVED, THE SOFTWARE IS PROVIDED
+"AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING, BUT NOT
+LIMITED TO, WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR A
+PARTICULAR PURPOSE. DisplayLink does not warrant or assume responsibility for
+the accuracy or completeness of any information, text, graphics, links or other
+items contained within the Software. The Software is not error free and is not
+designed for use in life support or medical monitoring systems, other critical
+applications or ultra-hazardous activities. Further the Software is not designed
+to meet standards for military applications. You and your distributors and
+customers assume the full risk of any such uses and you will indemnify and hold
+DisplayLink harmless from any claims that arise as a result of such uses.
+
+6. LIMITATION OF LIABILITY. YOUR USE OF THE SOFTWARE IS AT YOUR SOLE RISK. IN
+NO EVENT SHALL DISPLAYLINK OR ITS AFFILIATES OR SUPPLIERS BE LIABLE FOR ANY
+DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS, BUSINESS
+INTERRUPTION, OR LOST INFORMATION) ARISING OUT OF THE USE OF OR INABILITY TO USE
+THE SOFTWARE, EVEN IF DISPLAYLINK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES, TO THE EXTENT PERMITTED BY APPLICABLE LAW. SOME JURISDICTIONS PROHIBIT
+EXCLUSION OR LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR CONSEQUENTIAL OR
+INCIDENTAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. YOU MAY ALSO
+HAVE OTHER LEGAL RIGHTS THAT VARY FROM JURISDICTION TO JURISDICTION.
+
+7. TERMINATION OF THIS AGREEMENT. DisplayLink may terminate this EULA at any
+time by notice to you. This EULA will also automatically terminate if you
+violate its terms. Upon termination, you will immediately destroy the Software
+or return all copies of the Software to DisplayLink. The provisions of clauses
+2, 3, 5, 6, 7, 8 and 9 shall survive any termination.
+
+8. APPLICABLE LAWS. Claims arising under this EULA shall be governed by the
+laws of California, excluding its principles of conflict of laws and the United
+Nations Convention on Contracts for the International Sale of Goods. You may not
+export the Software in violation of applicable export laws and regulations.
+DisplayLink is not obligated under any other agreements unless they are in
+writing and signed by an authorized representative of DisplayLink. Should a
+court of competent jurisdiction find any part of this EULA to be invalid or
+unenforceable, the remainder of this EULA shall continue in full force and
+effect.
+
+9. U.S. GOVERNMENT RESTRICTED RIGHTS. The Software is provided with "RESTRICTED
+RIGHTS." Use, duplication, or disclosure by the Government is subject to
+restrictions as set forth in FAR 52.227-14 and DFAR 252.227-7013 et seq. or its
+successor. Use of the Software by the Government constitutes acknowledgment of
+DisplayLink's proprietary rights therein. Contractor or Manufacturer is
+DisplayLink (UK) Limited, 22 Cambridge Science Park, Milton Road, Cambridge, CB4
+0GH, United Kingdom.
+
diff --git a/PKGBUILD b/PKGBUILD
index 252512d6169a..845bb7f4a1e7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,74 +1,81 @@
-# Maintainer: rHermes <teodor_spaeren@riseup.net>
+# Maintainer: endorfina <emilia@carcosa.space>
+# Contributor: rHermes <teodor_spaeren@riseup.net>
+# Contributor: bnavigator <code@bnavigator.de>
# Contributor: PlusMinus
# Contributor: rhabbachi
pkgname=displaylink
-pkgver=5.1.26
+pkgver=5.8
+_releasedate=2023-08
+_pkgfullver=5.8.0-63.33
pkgrel=1
-pkgdesc="Linux driver for DL-6xxx, DL-5xxx, DL-41xx and DL-3x00"
-arch=('i686' 'x86_64')
-url="http://www.displaylink.com/downloads/ubuntu.php"
+pkgdesc="Linux driver for DisplayLink devices"
+arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
+url="https://www.synaptics.com/products/displaylink-graphics"
license=('custom' 'GPL2' 'LGPL2.1')
-depends=('evdi>=1.5.0' 'libusb>=1.0.0')
+depends=('evdi<1.15'
+ 'libusb')
makedepends=('grep' 'gawk' 'wget')
-install=
-changelog="release-note.txt"
-source=(displaylink-driver-$pkgver.zip::https://www.displaylink.com/downloads/file?id=1304
- udev.sh
- 99-displaylink.rules
- displaylink.service
+changelog="displaylink-release-notes-${pkgver}.txt"
+source=(displaylink-driver-${pkgver}.zip::https://www.synaptics.com/sites/default/files/exe_files/${_releasedate}/DisplayLink%20USB%20Graphics%20Software%20for%20Ubuntu${pkgver}-EXE.zip
+ displaylink-release-notes-${pkgver}.txt
+ DISPLAYLINK-EULA
+ udev.sh
+ 99-displaylink.rules
+ displaylink.service
displaylink-sleep.sh)
-md5sums=('f1956e0f795f72cfa54c0ac86cf1268e'
- 'd5de775e41af06edbd8073adc490139d'
- '20495d81c7d2540910ef86dc437b7fac'
- 'c141a15e973481c7d961f8e135627ca4'
- '7cbd9ab2ac79ba66e8297689c6e5483e')
+sha256sums=('22c552ead448c80d9e8dd48a842bb511184d07a74180ac76bd89dd144ddda816'
+ '83167d307d030abc42f2bbe6ad6a23802433cf5d8fab50afb0d519036518f22b'
+ '2f81fea43332a62b2cf1dd47e56ea01caf1e886bcd16c3f82b18bfe148fb21a9'
+ '53aac00fecfc04ec9e3d88ea13f5bf7bb05f669ff33e1834ba671f9240fe9641'
+ '530c488fa9b2833ff64611ff2b533f63212a85f8ebed446d5a4d51cf9a52c7ea'
+ '342e83abfe2a38d5635ea928345e933d2ad127ebd3f7caca476663d4f583684b'
+ '9b4609423fd9cfaa8cad8acd086dd6b92cd09182facbb28792affeac1ecc4a45')
-DLAGENTS=('https::/usr/bin/wget -O %o --post-data=fileId=1304&accept_submit=Accept %u')
-
-# Update with > updpkgsums
+prepare() {
+ chmod +x displaylink-driver-${_pkgfullver}.run
+ ./displaylink-driver-${_pkgfullver}.run \
+ --noexec \
+ --target $pkgname-$pkgver \
+ --nox11 \
+ --noprogress
+ test -d $pkgname-$pkgver || (echo "Extracting the driver with the .run installer failed"; exit 1)
+}
package() {
- echo "Adding udev rule for DisplayLink DL-3xxx/5xxx devices"
- install -D -m644 99-displaylink.rules "$pkgdir/etc/udev/rules.d/99-displaylink.rules"
+ echo "Adding udev rule for DisplayLink devices"
+ install -D -m644 99-displaylink.rules "$pkgdir/usr/lib/udev/rules.d/99-displaylink.rules"
install -D -m755 udev.sh "$pkgdir/opt/displaylink/udev.sh"
echo "Installing DLM systemd service"
install -D -m644 displaylink.service "$pkgdir/usr/lib/systemd/system/displaylink.service"
install -D -m755 displaylink-sleep.sh "$pkgdir/usr/lib/systemd/system-sleep/displaylink.sh"
-
+
COREDIR="$pkgdir/usr/lib/displaylink"
- install -d -m755 $COREDIR
+ install -d -m755 "$COREDIR"
install -d -m755 "$pkgdir/var/log/displaylink"
- echo "Extracting DisplayLink Driver Package"
- cd $srcdir
- chmod +x displaylink-driver-$pkgver.run
- ./displaylink-driver-$pkgver.run --target $pkgname-$pkgver --noexec
- cd "$pkgname-$pkgver"
-
- if [ "$CARCH" == "i686" ]; then
- ARCH="x86"
- elif [ "$CARCH" == "x86_64" ]; then
- ARCH="x64"
- fi
+ pushd "$srcdir/$pkgname-$pkgver"
- ARCH+="-ubuntu-1604"
-
- echo "Installing DisplayLink Manager $ARCH"
- install -D -m755 $ARCH/DisplayLinkManager $COREDIR/DisplayLinkManager
+ case $CARCH in
+ i686)
+ ARCH="x86-ubuntu-1604" ;;
+ x86_64)
+ ARCH="x64-ubuntu-1604" ;;
+ arm|armv6h|armv7h)
+ ARCH="arm-linux-gnueabihf" ;;
+ aarch64)
+ ARCH="aarch64-linux-gnu" ;;
+ esac
- # I wonder if this is even necessary but I'm too lazy to find out
- echo "Creating symlinks for evdi and libusb"
- ln -s $(ldconfig -p | grep libevdi | awk 'NR==1{print $4}') $COREDIR/libevdi.so
+ echo "Installing DisplayLink Manager $ARCH"
+ install -D -m755 "$ARCH/DisplayLinkManager" "$COREDIR/DisplayLinkManager"
- ln -s $(ldconfig -p | grep libusb- | awk 'NR==1{print $4}') $COREDIR/libusb-1.0.so.0.1.0
- ln -s $(ldconfig -p | grep libusb- | awk 'NR==1{print $4}') $COREDIR/libusb-1.0.so.0
- ln -s $(ldconfig -p | grep libusb- | awk 'NR==1{print $4}') $COREDIR/libusb-1.0.so
-
echo "Installing firmware packages"
- install -D -m644 *.spkg $COREDIR
+ install -D -m644 ./*.spkg "$COREDIR"
echo "Installing license file"
install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ popd
+ install -D -m644 DISPLAYLINK-EULA "${pkgdir}/usr/share/licenses/${pkgname}/DISPLAYLINK-EULA"
}
diff --git a/displaylink-release-notes-5.8.txt b/displaylink-release-notes-5.8.txt
new file mode 100644
index 000000000000..f7ad2791619d
--- /dev/null
+++ b/displaylink-release-notes-5.8.txt
@@ -0,0 +1,191 @@
+=============================================================================
+=============================================================================
+
+ DisplayLink Ubuntu Software Release Note
+
+Version: v5.8.0
+Build: posix/63-3581-g15996285140 (33)
+
+Date: 21st July 2023
+
+Extensible Virtual Display Interface version included: v1.14.1 (83bb793)
+=============================================================================
+=============================================================================
+
+
+A. Introduction
+===============
+
+This is DisplayLink Driver Software v5.8.0 for Ubuntu. It provides production quality support for DisplayLink USB 3.0 devices on specific variants of desktop Ubuntu Linux.
+
+The driver enables video support for products using DisplayLink USB 3.0 technology. Standard native Ubuntu drivers provide support for DisplayLink audio and ethernet interfaces.
+
+
+A1. Important notes about DisplayLink firmware
+=======================================================================
+
+This software release contains an embedded firmware image. DL-7xxx, DL-6xxx, DL-5xxx, DL-3xxx and DL-41xx devices will be automatically upgraded with this firmware upon connection if required.
+
+The upgrade is silent, therefore screens connected to DisplayLink devices may require a few seconds to appear when devices are connected for the first time, or after devices have been used on other platforms and OSes.
+
+B. Contents
+===========
+
+A. Introduction
+A1. Important notes about DisplayLink firmware
+B. Contents
+C. Changes in this release
+D. Supported O/S variants
+E. Release components
+F. How to install
+G. Supported features & hardware
+H. Limitations & known issues
+I. Future development
+
+C. Bugs fixed in this release
+==============================
+
+C.8 Changes in 5.8 release
+-----------------------------
+- Alpha support for DisplayLink DL-7400 products
+- Support for new DisplayLink DL-6150 products
+- Support for Ubuntu 23.04
+- Added preliminary support for kernel 6.5
+
+C.7 Changes in 5.7 release
+-----------------------------
+- New driver distribution channel via Synaptics apt repository (https://www.synaptics.com/sites/default/files/Ubuntu/)
+- In some cases DisplayLink installer freezes when Secure Boot is enabled. (PS-2455)
+- In some cases DisplayLink evdi driver is not signed and loaded when Secure Boot is enabled. (PS-2455)
+- Added preliminary support for kernel 6.2
+- Added preliminary support for Ubuntu 23.04
+
+C.6 Changes in 5.6.1 release
+-----------------------------
+- Added support for new DisplayLink DL-6350 products
+- DL-6xxx series: fixed LAN sent package status for half-duplex 100M fixed switch config (VIFR-1040)
+- DL-6xxx series: fixed timing issue on some modes with Dell AW2721D monitor (VIFR-1045)
+
+C.5 Changes in 5.6 release
+-----------------------------
+- Added preliminary support for kernel 5.18
+- Added support for Ubuntu 22.04
+- DL-6xxx series: Improve 10M/100M Ethernet performance of some devices (VIFR-994)
+- Fixed laggy video experience on machines with AMD GPUs on XServer (PS-1828)
+- Improved stability of connection for some of DL-6xxx devices (PS-1820)
+- Improved installer experience (PS-1825)
+- DL-5xxx series: System shows unsupported 4kp60 mode on display modes list (PS-1780)
+- Fixed installation on Raspberry Pi 64bit (PS-1154)
+- Some laptops with DisplayLink driver stuck with black screen before log-in screen appears (PS-1808)
+- Fix kernel bugcheck in dma-buf on device plug-in (PS-1691)
+- Fixed drm device leaks on evdi module unload (PS-1839)
+
+C.4 Changes in 5.5 release
+-----------------------------
+- Added preliminary support for kernel 5.17
+- Community fixes for evdi kernel module
+- DL-6xxx series: update for RTL8211FD-VX and RTL8211E Ethernet PHYs (WS-1597)
+- DL-6xxx series: update for LAN LED behavior in some devices (VIFR-840, VIFR-802)
+- Fix displays blinking on device connect (PS-1674)
+- Mitigate problems with some DP monitors that are black on some DL-6xx0 devices (PS-1560)
+- Fix corruptions under cursor in X session on DL-3xx0 devices
+- Fix runit scripts for displayLink-driver daemon
+
+C.3 Changes in 5.5 beta release
+-----------------------------
+- Added support for kernel 5.14 and 5.15
+- Added preliminary support for kernel 5.16
+- Community fixes for evdi kernel module
+- DL-6xxx series: adding RTL8211FD-VX and RTL8211E Ethernet PHYs (WS1597)
+- DL-41xx: improved firmware flashing time, visible from following update onwards
+
+C.2 Changes in 5.4.1 release
+-----------------------------
+- Added support for kernel 5.13
+- Added beta support for kernel 5.14 beta (33194)
+- DL-6xxx series: improved 5120x1440 - 5K Super Ultrawide resolution selection (33186)
+- Improved performance: added support for damage regions interface from Linux DRM interface (26378)
+- Improved performance in Wayland session with AMD GPU machines (33151)
+- DL-6xxx series: fixed blinking mouse cursor while moving across displays (32987)
+
+C.1 Changes in 5.4.0 release
+-----------------------------
+- Added support for kernel 5.11 and 5.12
+- DL-6xxx series: added support for nVidia G-SYNC monitors
+- DL-6xxx series: added 5K Ultrawide (5120x1440 @ 60 Hz) display support
+- Other reliability improvements
+
+
+D. Supported O/S variants
+=========================
+
+This release has been prepared to be compatible with Ubuntu 23.04, 22.04, 21.10, 20.04, 19.04 and 18.04.
+Other variants and editions may be compatible if they meet minimum O/S requirements, but are not supported by DisplayLink.
+
+The Software contains binaries which work on i686, amd64, armv7 and aarch64 architectures.
+Supported Linux Kernel version range is from 4.15 to 6.5.
+Minimum supported Xorg version is 1.16, minimum supported Mutter (Wayland) version is 3.32.
+
+E. Release components
+=====================
+The Software consists of an open-source kernel mode driver (EVDI) with an accompanying library (libevdi),
+and a supporting binary application compatible with i686, amd64, armv7 and aarch64 platforms.
+Source code for the open-source components can be found at Synaptics' DisplayLink GitHub, https://github.com/DisplayLink
+
+F. How to install
+=================
+
+To install the release, from a terminal window, with root permissions use the command:
+
+sudo ./displaylink-driver-XXXX.run
+
+Where displaylink-driver-XXXX.run is the name of the extracted DisplayLink driver.
+
+The dkms framework is required for installation of DisplayLink. This can be installed with the command: sudo apt-get install dkms
+
+More detailed information on installation can be found at http://support.displaylink.com/knowledgebase/articles/615714#ubuntu
+
+G. Supported features & hardware
+================================
+
+This driver will support up to 2 displays connected to DisplayLink devices. More than 2 DisplayLink displays may work, but not supported or tested by DisplayLink.
+
+Resolutions up to 4K are supported on the appropriate DisplayLink hardware.
+
+Device families supported:
+- DL-7xxx
+- DL-6xxx
+- DL-5xxx
+- DL-41xx
+- DL-3xxx
+
+DL-1x5 and DL-1x0 devices use the open source udl driver, which is not developed or maintained by Synaptics.
+
+H. Limitations & known issues
+=============================
+
+A list of limitations and known issues can be found here:
+http://support.displaylink.com/knowledgebase/articles/641668
+
+- Gnome with Wayland or X11 desktop support up to four 4k display in a row. (PS-2955)
+Anything wider might cause mouse issues or video glitches.
+
+- Fail to rotate display on three-monitor desktop on Ubuntu 22.10 (PS-2230)
+https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2113
+Please make selected monitor layout rightmost (or leftmost) first, apply the preferred orientation, then setup correct
+monitor order as a mitigation.
+
+- When displayLink-driver debian package is installed first time with GUI application like Synaptic and Secure Boot is
+enabled then installation will fail.
+How to use DisplayLink Ubuntu driver with UEFI Secure Boot (https://support.displaylink.com/knowledgebase/articles/1181617-how-to-use-displaylink-ubuntu-driver-with-uefi-sec)
+
+I. Future development
+======================
+
+Synaptics are open to suggestions and feedback on improving the proposed architecture and will gladly review patches or proposals from the developer community. Please find a current list of areas we identify as requiring attention below.
+
+- In this release, the user mode driver service is running with root permissions. In future versions, we would like to reduce the privilege level required for this process - e.g. by using a separate low-privileged user and a separate group, to ensure the permissions needed for driving DisplayLink screens are as low as possible.
+
+- The communication between the EVDI kernel module and the wrapper libevdi library is not access-controlled or authenticated. This could be improved in future releases, making it harder to compromise the data EVDI is sending and receiving.
+
+- EVDI kernel module driver is currently a platform_driver, for multiple reasons; most importantly because virtual displays are not discoverable, i.e. cannot be enumerated at the hardware level. EVDI is also a generic device, not tied to any particular kind of device, transport layer or a bus.
diff --git a/displaylink-sleep.sh b/displaylink-sleep.sh
index b47d5fd2d45d..9ffa6c47f831 100644
--- a/displaylink-sleep.sh
+++ b/displaylink-sleep.sh
@@ -1,7 +1,7 @@
-#!/bin/bash
-# Copyright (c) 2015 - 2016 DisplayLink (UK) Ltd.
+#!/usr/bin/env bash
+# Copyright (c) 2015 - 2019 DisplayLink (UK) Ltd.
-suspend_dlm()
+suspend_displaylink-driver()
{
#flush any bytes in pipe
while read -n 1 -t 1 SUSPEND_RESULT < /tmp/PmMessagesPort_out; do : ; done;
@@ -9,24 +9,47 @@ suspend_dlm()
#suspend DisplayLinkManager
echo "S" > /tmp/PmMessagesPort_in
- if [ -f /tmp/PmMessagesPort_out ]; then
+ if [[ -p /tmp/PmMessagesPort_out ]]; then
#wait until suspend of DisplayLinkManager finish
read -n 1 -t 10 SUSPEND_RESULT < /tmp/PmMessagesPort_out
fi
}
-resume_dlm()
+resume_displaylink-driver()
{
#resume DisplayLinkManager
echo "R" > /tmp/PmMessagesPort_in
}
-case "\$1/\$2" in
+main_systemd()
+{
+ case "$1/$2" in
pre/*)
- suspend_dlm
+ suspend_displaylink-driver
;;
post/*)
- resume_dlm
+ resume_displaylink-driver
;;
-esac
+ esac
+}
+main_pm()
+{
+ case "$1" in
+ suspend|hibernate)
+ suspend_displaylink-driver
+ ;;
+ resume|thaw)
+ resume_displaylink-driver
+ ;;
+ esac
+ true
+}
+
+DIR=$(cd "$(dirname "$0")" && pwd)
+
+if [[ $DIR == *systemd* ]]; then
+ main_systemd "$@"
+elif [[ $DIR == *pm* ]]; then
+ main_pm "$@"
+fi
diff --git a/release-note.txt b/release-note.txt
deleted file mode 100644
index 098561837bfd..000000000000
--- a/release-note.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-=============================================================================
-=============================================================================
-
-DisplayLink Ubuntu Software Release Note
-
-Version: 4.2.29
-Date: 23th Feb 2018
-
-DisplayLink DL-3xx0 / DL-5xx0 Firmware Version: 9.5.18.93117
-DisplayLink DL-41xx Firmware Version: 9.5.20.93215
-DisplayLink DL-6xxx Firmware Version: 9.5.18.93117
-Extensible Virtual Display Interface version included: 1.5.0-r2
-
-=============================================================================
-=============================================================================
-
-
-A. Introduction
-===============
-
-This is DisplayLink Driver Software 4.2.0 for Ubuntu. It provides production quality support for DisplayLink USB 3.0 devices on specific variants of desktop Ubuntu Linux.
-
-The driver enables video support for products using DisplayLink USB 3.0 technology. Standard native Ubuntu drivers provide support for DisplayLink audio and Ethernet interfaces.
-
-
-A1. Important notes about DL-6xxx, DL5xxx, DL-3x00 and DL-41xx Firmware
-=======================================================================
-
-This software release contains an embedded firmware image. DL-6xxx, DL-5xxx, DL-3xxx and DL-41xx devices will be automatically upgraded with this firmware upon connection if required.
-
-The upgrade is silent, therefore screens connected to DL-6xxx, DL-5xxx, DL-3xxx or DL-41xx devices may require a few seconds to appear when devices are connected for the first time, or after devices have been used on other platforms and OSes.
-
-B. Contents
-===========
-
-A. Introduction
-A1. Important notes about DL-6xxx, DL-5xxx, DL-3xxx and DL-41xx Firmware
-B. Contents
-C. Issues fixed
-D. Supported O/S variants
-E. Release components
-F. How to Install
-G. Supported Features & Hardware
-H. Limitations & Known issues
-I. Future Development
-
-C. Issues fixed
-===============
-
-Issues fixed since DisplayLink Driver Software v4.1.0 for Ubuntu (4.1.9)
---------------------------------------------------------------------------
-
-Sometimes PC may become unresponsive when a DisplayLink display is connected. (27139)
-
-D. Supported O/S variants
-=========================
-
-This release has been prepared to be compatible with Ubuntu 17.10 and Ubuntu 16.04. Other variants and editions may be compatible if they meet minimum O/S requirements, but are not supported by DisplayLink.
-
-The Software contains binaries which work on Intel x86 platform (32 bit and 64 bit).
-Minimum supported Linux Kernel version is 3.16.
-Minimum supported Xorg version is 1.16.
-
-E. Release components
-=====================
-The Software consists of an open-source kernel mode driver (EVDI) with an accompanying library (libevdi), and a supporting binary application compatible with Intel x86 platform.
-Source code for the open-source components can be found at DisplayLink's GitHub, https://github.com/DisplayLink
-
-F. How to Install
-=================
-
-To install the release, from a terminal window, with root permissions use the command:
-
-sudo ./displaylink-driver-XXXX.run
-
-Where displaylink-driver-XXXX.run is the name of the extracted DisplayLink driver.
-
-The dkms framework is required for installation of DisplayLink. This can be installed with the command: sudo apt-get install dkms
-
-More detailed information on installation can be found at http://support.displaylink.com/knowledgebase/articles/615714#ubuntu
-
-G. Supported Features & Hardware
-================================
-
-This driver will support up to 2 displays connected to DisplayLink devices. More than 2 DisplayLink displays may work, but not supported or tested by DisplayLink.
-
-Resolutions up to 4K are supported on the appropriate DisplayLink hardware.
-
-Device families supported:
-- DL-6xxx
-- DL-5xxx
-- DL-41xx
-- DL-3xxx
-
-DL-1x5 and DL-1x0 devices use the open source udl driver, which is not developed or maintained by DisplayLink.
-
-H. Limitations & Known issues
-=============================
-
-A list of limitations and known issues can be found here:
-http://support.displaylink.com/knowledgebase/articles/641668
-
-I. Future Development
-======================
-
-DisplayLink are open to suggestions and feedback on improving the proposed architecture and will gladly review patches or proposals from the developer community. Please find a current list of areas we identify as requiring attention below.
-
-- In this release, the user mode driver service is running with root permissions. In future versions, we would like to reduce the privilege level required for this process – e.g. by using a separate low-privileged user and a separate group, to ensure the permissions needed for driving DisplayLink screens are as low as possible.
-
-- The communication between the EVDI kernel module and the wrapper libevdi library is not access-controlled or authenticated. This could be improved in future releases, making it harder to compromise the data EVDI is sending and receiving.
-
-- EVDI kernel module driver is currently a platform_driver, for multiple reasons; most importantly because virtual displays are not discoverable, i.e. cannot be enumerated at the hardware level. EVDI is also a generic device, not tied to any particular kind of device, transport layer or a bus.
diff --git a/udev.sh b/udev.sh
index 41869bee9ce1..a80b096f9692 100644
--- a/udev.sh
+++ b/udev.sh
@@ -1,20 +1,24 @@
#!/bin/sh
-# Copyright (c) 2016 DisplayLink (UK) Ltd.
+# Copyright (c) 2016 - 2020 DisplayLink (UK) Ltd.
# File autogenerated by udev-installer.sh script
-get_evdi_dev_count()
+get_displaylink_dev_count()
+{
+ cat /sys/bus/usb/devices/*/idVendor | grep 17e9 | wc -l
+}
+
+get_displaylink_symlink_count()
{
- if [ "$(ls -l /sys/devices/platform/* | grep evdi | wc -l)" = "0" ]; then
+ root=$1
+
+ if [ ! -d "$root/displaylink/by-id" ]; then
echo "0"
return
fi
- cat /sys/devices/platform/evdi.*/drm/card*/card*/status | grep "^connected$" | wc -l
-}
-
-get_displaylink_dev_count()
-{
- cat /sys/bus/usb/devices/*/idVendor | grep 17e9 | wc -l
+ for f in $(find $root/displaylink/by-id -type l -exec realpath {} \; 2> /dev/null); do
+ test -c $f && echo $f;
+ done | wc -l
}
start_displaylink()
@@ -24,56 +28,101 @@ start_displaylink()
fi
}
-try_stop_displaylink()
+stop_displaylink()
{
- if [ "$(get_evdi_dev_count)" = "0" ]; then
- parent_dev_path="$1"
- if [ -d "$parent_dev_path" ]; then
- echo "1"
- return
- fi
-
- if [ "$(get_displaylink_dev_count)" = "0" ]; then
- stop_service
- echo "0"
- return
- fi
+ root=$1
+
+ if [ "$(get_displaylink_symlink_count $root)" = "0" ]; then
+ stop_service
fi
- echo "1"
}
-stop_displaylink()
+remove_dldir_if_empty()
+{
+ root=$1
+ (cd $root; rmdir -p --ignore-fail-on-non-empty displaylink/by-id)
+}
+
+create_displaylink_symlink()
{
- parent_devpath=$(dirname /sys$1)
- retry_num="50" # 5s
- while [ "$(try_stop_displaylink $parent_devpath)" != "0" ] && [ "$retry_num" != "0" ];
- do
- sleep 0.1
- retry_num=$((retry_num-1))
- done
+ root=$1
+ device_id=$2
+ devnode=$3
+
+ mkdir -p $root/displaylink/by-id
+ ln -sf $devnode $root/displaylink/by-id/$device_id
+}
+
+unlink_displaylink_symlink()
+{
+ root=$1
+ devname=$2
+
+ for f in $root/displaylink/by-id/*; do
+ if [ ! -e "$f" ] || ([ -L "$f" ] && [ "$f" -ef "$devname" ]); then
+ unlink "$f"
+ fi
+ done
+ (cd $root; rmdir -p --ignore-fail-on-non-empty displaylink/by-id)
+}
+
+prune_broken_links()
+{
+ root=$1
+
+ dir="$root/displaylink/by-id"
+ find -L "$dir" -name "$dir" -o type d -prune -o -type -l -exec rm {} +
+ remove_dldir_if_empty $root
+}
+
+disable_u1_u2()
+{
+ echo 0 > "/sys$1/../port/usb3_lpm_permit"
}
main()
{
- op=$1
- devpath=$2
- if [ "$op" = "START" ]; then
+ action=$1
+ root=$2
+ devpath=$3
+ devnode=$5
+
+ if [ "$action" = "add" ]; then
+ device_id=$4
+ create_displaylink_symlink $root $device_id $devnode
+ start_displaylink
+ disable_u1_u2 "$devpath"
+ elif [ "$action" = "remove" ]; then
+ devname=$3
+ unlink_displaylink_symlink "$root" "$devname"
+ stop_displaylink "$root"
+ elif [ "$action" = "START" ]; then
start_displaylink
- elif [ "$op" = "STOP" ]; then
- stop_displaylink $devpath
fi
}
start_service()
{
- systemctl start displaylink.service
+ systemctl start --no-block displaylink
}
stop_service()
{
- systemctl stop displaylink.service
+ systemctl stop displaylink
}
+if [ "$ACTION" = "add" ] && [ "$#" -ge 3 ]; then
+ main $ACTION $1 $2 $3 $4
+ return 0
+fi
-main $1 $2
+if [ "$ACTION" = "remove" ]; then
+ if [ "$#" -ge 2 ]; then
+ main $ACTION $1 $2 $3
+ return 0
+ else
+ prune_broken_links $root
+ return 0
+ fi
+fi