summaryrefslogtreecommitdiff
path: root/x11-drivers
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2019-07-05 12:17:54 +0100
committerdakkar <dakkar@thenautilus.net>2019-07-05 12:17:54 +0100
commitab53910278f76fd9e3e3127708360a42c59fc512 (patch)
tree32c92d4cf9e5a9a87c02b33804ee6c7a7fafd203 /x11-drivers
parentlitehtml is not ready in released versions (diff)
downloadgentoo-overlay-ab53910278f76fd9e3e3127708360a42c59fc512.tar.gz
gentoo-overlay-ab53910278f76fd9e3e3127708360a42c59fc512.tar.bz2
gentoo-overlay-ab53910278f76fd9e3e3127708360a42c59fc512.zip
probably-working displaylink driver
upgraded from https://git.hossie.de/projects/GEN/repos/gentoo-overlay/browse/x11-drivers/ which was inspired by https://aur.archlinux.org/cgit/aur.git/tree/?h=displaylink
Diffstat (limited to 'x11-drivers')
-rw-r--r--x11-drivers/displaylink-driver/Manifest11
-rw-r--r--x11-drivers/displaylink-driver/displaylink-driver-5.1.26.ebuild89
-rw-r--r--x11-drivers/displaylink-driver/files/99-displaylink.rules6
-rw-r--r--x11-drivers/displaylink-driver/files/displaylink.service13
-rw-r--r--x11-drivers/displaylink-driver/files/dlm.service14
-rw-r--r--x11-drivers/displaylink-driver/files/pm-displaylink37
-rw-r--r--x11-drivers/displaylink-driver/files/pm-systemd-displaylink31
-rw-r--r--x11-drivers/displaylink-driver/files/rc-displaylink18
-rw-r--r--x11-drivers/displaylink-driver/files/rc-displaylink-1.219
-rw-r--r--x11-drivers/displaylink-driver/files/rc-displaylink-1.319
-rw-r--r--x11-drivers/displaylink-driver/files/udev.sh77
-rw-r--r--x11-drivers/evdi/Manifest2
-rw-r--r--x11-drivers/evdi/evdi-1.6.1.ebuild39
13 files changed, 375 insertions, 0 deletions
diff --git a/x11-drivers/displaylink-driver/Manifest b/x11-drivers/displaylink-driver/Manifest
new file mode 100644
index 0000000..53da1c3
--- /dev/null
+++ b/x11-drivers/displaylink-driver/Manifest
@@ -0,0 +1,11 @@
+AUX 99-displaylink.rules 512 BLAKE2B 5d581c300ecbf22360f5ae0455e1857fae8a8dc9f2b97a99c31fb5f53b084e4c99db48d5592b49d7ab084db89d4dc5f981a288896b42ef059ab11b28f963cbc7 SHA512 156133ef4e73977b395ff05499a4e242d100c705211c6d3a9f99655e7692cf9102cd00b69004818e18224402200f23d6d897dddcd2714f56845bb943673692bf
+AUX displaylink.service 270 BLAKE2B 642be7a7e1753957df364ae97a24e7af6d2c7ea702efd1335f120f64d3d7d5746dbdd6e09cf29d0533cfc8329f0cbf5aec4d429ff7ee7c56476ac9c5b8f092aa SHA512 4fe7ca88c3758b91cb3e3bb7eeb6170d19d64c5380bba7002c073fd93e0b8b74c1179002bc489829d15c33d3a8bd29bc49bcbb695d4b0b4802d279cc38ff9077
+AUX dlm.service 295 BLAKE2B 196b9f50ab48e554e30d9dd841080fce9ed98c322aae63eb13c2373aa606251d2f58197eed8170d5c03e7b1efb81ffa65019022877618126adef57702babba1a SHA512 a6c8128d92cbc8b14d8bb3f492e601f3f9d8635469be1cc7afaa669d0af48e2db84d8453910c1144e6e72a42afc61ecfbb7cead543a2483ffb3f6cfde73d6f75
+AUX pm-displaylink 649 BLAKE2B 687e5b7d5269adee2a28b9f9ad7ae2912972279caf6a05049a2822c4ed6628aea4a3a3421b4f44e74659f6bee87faa69ad565bb4adb1d1a60c950d5a8b0e300d SHA512 03b4d9cf192f172aae1528807781033f2d1af57cf5a97be1dcda55af2331886558897ab6a1035db7471939448995b92ec93c72e587c76a6025da8b989f60c9b5
+AUX pm-systemd-displaylink 584 BLAKE2B 7a805659eab55287e1cca018d00cbf637fa75adc945b1afd568ffc92a9e3b3745b4f0f8e400cd7c618685b74f7edd969268ab78a4bba78b2bd633ddbc096efc0 SHA512 b3bb81bf00f2a086087e48322de2da4d50217bd89991d95c61beb7be512db510582c64e88eb39ed5f0fece48ddc4f7baefeb6a4b60f34349d589d6930a117b78
+AUX rc-displaylink 419 BLAKE2B bb5f6766cb7a5f3d796f90b36501cefbd06979fbd6893fdc616758d30cb880520014af2a38407892c419ee0e446f68596492696a7130eb6ec1ffa55a1a891df8 SHA512 3bd5c9d191d83dbc76213eac0be71b68b81418c5dfb73743a5d6ef71abd8cb960c7d1a30c43560d511b2a5e869ff6d4df50757fe936a9282c81b5fda6c1e6fd8
+AUX rc-displaylink-1.2 429 BLAKE2B 5ccd1369b1357add657e8f9c64bdc4472644833391dbd4f7ea4673af868c5161cbb8b3acd06994719374c5ad165b7c2202956fa8ed0cbc765d162fa8a4a2df8b SHA512 cf88a282de57e646c42fa855dd14c371ba03db0be1f5167803cb6a8539d04548b8722fd8353da8a4e2a4958bf92e887aff2c28edafb0483591ac55a18c9c3099
+AUX rc-displaylink-1.3 430 BLAKE2B afb7a6a8e13b985652ce2f1ca7da67b86b35d909e8363a01d9062d2633b4e9c197d6484c60900f0ff73e10c4be260260f3b5cf4be1abf29ebc1ef8849e7f87d2 SHA512 dff38b6c388de8f2bf5c2bb155a2d115edc6b4a941aa2184b9ece5e2575ff1eab6d3594325579375458dfcc8031e89ef323da225245de07b6fb4b98de15443ee
+AUX udev.sh 1316 BLAKE2B 6e2b948a04ccb60d0a50d9a968fd1dd75f4ee03539b3794c28e407138bc263b753da46c8c2897e4ae910f10fc77a699c1a5c933318e9eefd16e6740aac37567e SHA512 8c5ee28669caa49ff384e09e1a12e07200f5891a35d427dbbaa088f86700dda8059d3a091048e41c3fdf2caaac0660e804037d6ade8d10676cc0ec5a86ad7962
+DIST displaylink-driver-5.1.26.zip 12102697 BLAKE2B c72dff83890cd1e36577d85c6753a4001ae2b9c4d790a044dafdcf823dcc5e7570837bfe84f5d422eae50051effbb11224dfde3aaab93dc1980b8621f3ed7f00 SHA512 f555d4db864c8dbe7b734223c4e9d054cc3975d0d107778c0928ea2fa20471acd210a0d827cd5b664688f0fe1aed22fcb3290d03f2d21039ca63f16771a54981
+EBUILD displaylink-driver-5.1.26.ebuild 2459 BLAKE2B 9b31a98dde5c9b416559e4034e27f27414f34aaa3946705c031a9e5d84007cba5cb5d936dba3872162dd4176cf448a60b4e9ab352065db8fd9fc9665ccd3f266 SHA512 a2518f190ff24a681397f80c851d5f57656e28ea85643657b8e234cb4db3326a79d97be591f819cf4479120d7f6edaf36373858a9d628ffe109ab54482322469
diff --git a/x11-drivers/displaylink-driver/displaylink-driver-5.1.26.ebuild b/x11-drivers/displaylink-driver/displaylink-driver-5.1.26.ebuild
new file mode 100644
index 0000000..160cad1
--- /dev/null
+++ b/x11-drivers/displaylink-driver/displaylink-driver-5.1.26.ebuild
@@ -0,0 +1,89 @@
+# from https://git.hossie.de/projects/GEN/repos/gentoo-overlay/browse/x11-drivers/displaylink-driver
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils systemd udev unpacker
+
+DESCRIPTION="DisplayLink USB Graphics Software"
+HOMEPAGE="http://www.displaylink.com/downloads/ubuntu"
+SRC_URI="${P}.zip"
+
+LICENSE="DisplayLink"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE="systemd"
+
+QA_PREBUILT="/opt/displaylink/DisplayLinkManager"
+RESTRICT="fetch"
+
+DEPEND="app-admin/chrpath"
+RDEPEND=">=sys-devel/gcc-4.8.3
+ =x11-drivers/evdi-1.6*
+ virtual/libusb:1
+ || ( x11-drivers/xf86-video-modesetting >=x11-base/xorg-server-1.17.0 )
+ !systemd? ( sys-power/pm-utils )"
+
+pkg_nofetch() {
+ einfo "Please download DisplayLink USB Graphics Software for Ubuntu 5.1.zip from"
+ einfo "http://www.displaylink.com/downloads/ubuntu"
+ einfo "and rename it to ${P}.zip"
+}
+
+src_unpack() {
+ default
+ sh ./"${PN}"-"${PV}".run --noexec --nox11 --target "${P}"
+}
+
+src_install() {
+ if [[ ( $(gcc-major-version) -eq 5 && $(gcc-minor-version) -ge 1 ) || $(gcc-major-version) -gt 5 ]]; then
+ MY_UBUNTU_VERSION=1604
+ else
+ MY_UBUNTU_VERSION=1404
+ fi
+
+ einfo "Using package for Ubuntu ${MY_UBUNTU_VERSION} based on your gcc version: $(gcc-version)"
+
+ case "${ARCH}" in
+ amd64) MY_ARCH="x64" ;;
+ *) MY_ARCH="${ARCH}" ;;
+ esac
+
+ DLM="${S}/${MY_ARCH}-ubuntu-${MY_UBUNTU_VERSION}/DisplayLinkManager"
+
+ dodir /opt/displaylink
+ keepdir /var/log/displaylink
+
+ exeinto /opt/displaylink
+ chrpath -d "${DLM}"
+ doexe "${DLM}"
+
+ insinto /opt/displaylink
+ doins *.spkg
+
+ udev_dorules "${FILESDIR}/99-displaylink.rules"
+
+ insinto /opt/displaylink
+ insopts -m0755
+ newins "${FILESDIR}/udev.sh" udev.sh
+ if use systemd; then
+ newins "${FILESDIR}/pm-systemd-displaylink" suspend.sh
+ dosym /opt/displaylink/suspend.sh /lib/systemd/system-sleep/displaylink.sh
+ systemd_dounit "${FILESDIR}/dlm.service"
+ else
+ newins "${FILESDIR}/pm-displaylink" suspend.sh
+ dosym /opt/displaylink/suspend.sh /etc/pm/sleep.d/displaylink.sh
+ newinitd "${FILESDIR}/rc-displaylink-1.3" dlm
+ fi
+}
+
+pkg_postinst() {
+ einfo "The DisplayLinkManager Init is now called dlm"
+ einfo ""
+ einfo "You should be able to use xrandr as follows:"
+ einfo "xrandr --setprovideroutputsource 1 0"
+ einfo "Repeat for more screens, like:"
+ einfo "xrandr --setprovideroutputsource 2 0"
+ einfo "Then, you can use xrandr or GUI tools like arandr to configure the screens, e.g."
+ einfo "xrandr --output DVI-1-0 --auto"
+}
diff --git a/x11-drivers/displaylink-driver/files/99-displaylink.rules b/x11-drivers/displaylink-driver/files/99-displaylink.rules
new file mode 100644
index 0000000..8c5b033
--- /dev/null
+++ b/x11-drivers/displaylink-driver/files/99-displaylink.rules
@@ -0,0 +1,6 @@
+# Copyright (c) 2016 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", SUBSYSTEM=="usb", ATTR{idVendor}=="179", ATTR{bNumInterfaces}=="*5", GROUP="plugdev", MODE="0660" \ No newline at end of file
diff --git a/x11-drivers/displaylink-driver/files/displaylink.service b/x11-drivers/displaylink-driver/files/displaylink.service
new file mode 100644
index 0000000..2ede6c2
--- /dev/null
+++ b/x11-drivers/displaylink-driver/files/displaylink.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=DisplayLink Manager Service
+After=display-manager.service
+Conflicts=getty@tty7.service
+
+[Service]
+ExecStart=/usr/lib/displaylink/DisplayLinkManager
+Restart=always
+WorkingDirectory=/usr/lib/displaylink
+RestartSec=5
+
+[Install]
+WantedBy=graphical.target
diff --git a/x11-drivers/displaylink-driver/files/dlm.service b/x11-drivers/displaylink-driver/files/dlm.service
new file mode 100644
index 0000000..62d7b94
--- /dev/null
+++ b/x11-drivers/displaylink-driver/files/dlm.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=DisplayLink Manager Service
+After=display-manager.service
+Conflicts=getty@tty7.service
+
+[Service]
+ExecStartPre=/sbin/modprobe evdi
+ExecStart=/opt/displaylink/DisplayLinkManager
+Restart=always
+WorkingDirectory=/opt/displaylink
+RestartSec=5
+
+[Install]
+WantedBy=graphical.target
diff --git a/x11-drivers/displaylink-driver/files/pm-displaylink b/x11-drivers/displaylink-driver/files/pm-displaylink
new file mode 100644
index 0000000..a31bfc0
--- /dev/null
+++ b/x11-drivers/displaylink-driver/files/pm-displaylink
@@ -0,0 +1,37 @@
+#!/bin/bash
+# Copyright (c) 2015 - 2016 DisplayLink (UK) Ltd.
+
+suspend_dlm()
+{
+ #flush any bytes in pipe
+ while read -n 1 -t 1 SUSPEND_RESULT < /tmp/PmMessagesPort_out; do : ; done;
+
+ #suspend DisplayLinkManager
+ echo "S" > /tmp/PmMessagesPort_in
+
+ if [ -f /tmp/PmMessagesPort_out ]; then
+ #wait until suspend of DisplayLinkManager finish
+ read -n 1 -t 10 SUSPEND_RESULT < /tmp/PmMessagesPort_out
+ fi
+}
+
+resume_dlm()
+{
+ #resume DisplayLinkManager
+ echo "R" > /tmp/PmMessagesPort_in
+}
+
+case "$1" in
+ thaw)
+ resume_dlm
+ ;;
+ hibernate)
+ suspend_dlm
+ ;;
+ suspend)
+ suspend_dlm
+ ;;
+ resume)
+ resume_dlm
+ ;;
+esac
diff --git a/x11-drivers/displaylink-driver/files/pm-systemd-displaylink b/x11-drivers/displaylink-driver/files/pm-systemd-displaylink
new file mode 100644
index 0000000..4705b7f
--- /dev/null
+++ b/x11-drivers/displaylink-driver/files/pm-systemd-displaylink
@@ -0,0 +1,31 @@
+#!/bin/bash
+# Copyright (c) 2015 - 2016 DisplayLink (UK) Ltd.
+
+suspend_dlm()
+{
+ #flush any bytes in pipe
+ while read -n 1 -t 1 SUSPEND_RESULT < /tmp/PmMessagesPort_out; do : ; done;
+
+ #suspend DisplayLinkManager
+ echo "S" > /tmp/PmMessagesPort_in
+
+ if [ -f /tmp/PmMessagesPort_out ]; then
+ #wait until suspend of DisplayLinkManager finish
+ read -n 1 -t 10 SUSPEND_RESULT < /tmp/PmMessagesPort_out
+ fi
+}
+
+resume_dlm()
+{
+ #resume DisplayLinkManager
+ echo "R" > /tmp/PmMessagesPort_in
+}
+
+case "$1/$2" in
+ pre/*)
+ suspend_dlm
+ ;;
+ post/*)
+ resume_dlm
+ ;;
+esac
diff --git a/x11-drivers/displaylink-driver/files/rc-displaylink b/x11-drivers/displaylink-driver/files/rc-displaylink
new file mode 100644
index 0000000..ee541d4
--- /dev/null
+++ b/x11-drivers/displaylink-driver/files/rc-displaylink
@@ -0,0 +1,18 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ after xdm
+}
+
+start() {
+ start-stop-daemon --start --background --chdir /usr/lib/displaylink --make-pidfile --pidfile /run/displaylink.pid --exec /usr/lib/displaylink/DisplayLinkManager
+ eend $?
+}
+
+stop() {
+ start-stop-daemon --stop --pidfile /run/displaylink.pid
+ eend $?
+}
diff --git a/x11-drivers/displaylink-driver/files/rc-displaylink-1.2 b/x11-drivers/displaylink-driver/files/rc-displaylink-1.2
new file mode 100644
index 0000000..fd5c0b6
--- /dev/null
+++ b/x11-drivers/displaylink-driver/files/rc-displaylink-1.2
@@ -0,0 +1,19 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ after xdm
+}
+
+start() {
+ modprobe -q evdi
+ start-stop-daemon --start --background --chdir /opt/displaylink --make-pidfile --pidfile /run/displaylink.pid --exec /opt/displaylink/DisplayLinkManager
+ eend $?
+}
+
+stop() {
+ start-stop-daemon --stop --pidfile /run/displaylink.pid
+ eend $?
+}
diff --git a/x11-drivers/displaylink-driver/files/rc-displaylink-1.3 b/x11-drivers/displaylink-driver/files/rc-displaylink-1.3
new file mode 100644
index 0000000..1db2def
--- /dev/null
+++ b/x11-drivers/displaylink-driver/files/rc-displaylink-1.3
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ after xdm
+}
+
+start() {
+ modprobe -q evdi
+ start-stop-daemon --start --background --chdir /opt/displaylink --make-pidfile --pidfile /run/displaylink.pid --exec /opt/displaylink/DisplayLinkManager
+ eend $?
+}
+
+stop() {
+ start-stop-daemon --stop --pidfile /run/displaylink.pid
+ eend $?
+}
diff --git a/x11-drivers/displaylink-driver/files/udev.sh b/x11-drivers/displaylink-driver/files/udev.sh
new file mode 100644
index 0000000..8570bd1
--- /dev/null
+++ b/x11-drivers/displaylink-driver/files/udev.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+# Copyright (c) 2016 DisplayLink (UK) Ltd.
+# File autogenerated by udev-installer.sh script
+# modified by dakkar
+
+get_evdi_dev_count()
+{
+ if [ "$(ls -ld /sys/devices/platform/* | grep -c evdi)" = "0" ]; 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
+}
+
+start_displaylink()
+{
+ if [ "$(get_displaylink_dev_count)" != "0" ]; then
+ start_service
+ fi
+}
+
+try_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
+ fi
+ echo "1"
+}
+
+stop_displaylink()
+{
+ 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
+}
+
+main()
+{
+ op=$1
+ devpath=$2
+ if [ "$op" = "START" ]; then
+ start_displaylink
+ elif [ "$op" = "STOP" ]; then
+ stop_displaylink "$devpath"
+ fi
+}
+
+start_service()
+{
+ rc-service dlm start
+}
+
+stop_service()
+{
+ rc-service dlm stop
+}
+main "$1" "$2"
diff --git a/x11-drivers/evdi/Manifest b/x11-drivers/evdi/Manifest
new file mode 100644
index 0000000..53b8238
--- /dev/null
+++ b/x11-drivers/evdi/Manifest
@@ -0,0 +1,2 @@
+DIST evdi-1.6.1.tar.gz 57445 BLAKE2B ee0f29f938a31d8a5ddb3812efa2ef13c2c65e8af6d8d9cd41d8e56bebd49d46c10e78a338e03ec270dbe06b9423d84db9f267b6a2e33c6e4ccb8046fbb37de7 SHA512 22dbe8f8fc68552165558d89abb1fe975d419cfceafd3761205a29d1fee3cb28f69a97c2a656bb867659a43b3d23aaa3d69f7d705e4f28c1f4dc562ca0cad787
+EBUILD evdi-1.6.1.ebuild 750 BLAKE2B b5d282ca4ce4726dbb8d386a641c49898b0a9ec960d0d34e48d5ec1736e394df5de303355f37a5ef2b682189f8fc9e4e60e1d487178f8df422c47949b859bb51 SHA512 2334fe35b50a364e540a7ffb6c12eba9d15321c1b173f38821665dba8b2ee1b91d293ed5fde98a3d4e5dfd8e8c6641c5a99ca7e7197b72e6b819b995f46fbbe0
diff --git a/x11-drivers/evdi/evdi-1.6.1.ebuild b/x11-drivers/evdi/evdi-1.6.1.ebuild
new file mode 100644
index 0000000..fec9b01
--- /dev/null
+++ b/x11-drivers/evdi/evdi-1.6.1.ebuild
@@ -0,0 +1,39 @@
+# from https://git.hossie.de/projects/GEN/repos/gentoo-overlay/browse/x11-drivers/evdi
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit linux-mod
+
+DESCRIPTION="Extensible Virtual Display Interface"
+HOMEPAGE="https://github.com/DisplayLink/evdi"
+SRC_URI="https://github.com/DisplayLink/evdi/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+
+RDEPEND="x11-libs/libdrm"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+MODULE_NAMES="evdi(video:${S}/module)"
+
+CONFIG_CHECK="~FB_VIRTUAL ~!INTEL_IOMMU"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+}
+
+src_compile() {
+ linux-mod_src_compile
+ cd "${S}/library"
+ default
+ mv libevdi.so libevdi.so.0
+}
+
+src_install() {
+ linux-mod_src_install
+ dolib.so library/libevdi.so.0
+ dosym libevdi.so.0 "/usr/$(get_libdir)/libevdi.so"
+}