diff options
-rw-r--r-- | .SRCINFO | 33 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | 99-displaylink.rules | 20 | ||||
-rw-r--r-- | DISPLAYLINK-EULA | 135 | ||||
-rw-r--r-- | PKGBUILD | 101 | ||||
-rw-r--r-- | displaylink-release-notes-5.8.txt | 191 | ||||
-rw-r--r-- | displaylink-sleep.sh | 41 | ||||
-rw-r--r-- | release-note.txt | 112 | ||||
-rw-r--r-- | udev.sh | 127 |
9 files changed, 538 insertions, 223 deletions
@@ -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. + @@ -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.
@@ -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 |