crashdummy/Displaylink
Project ID: 86824
Description
DisplayLink RPM
This is the recipe for building the DisplayLink driver in a RPM package for Fedora Linux. This driver supports the following device families:
- DL-7xxx
- DL-6xxx
- DL-5xxx
- DL-41xx
- DL-3xxx
The package includes the Open Source evdi library. Packages get automatically built by GitHub Actions and get uploaded to releases and copr
Installation Instructions
This is the recipe for building the DisplayLink driver in a RPM package for Fedora Linux. This driver supports the following device families:
- DL-7xxx
- DL-6xxx
- DL-5xxx
- DL-41xx
- DL-3xxx
The package includes the Open Source evdi library. Packages get automatically built by GitHub Actions and get uploaded to releases and copr
Installation
The easiest way would be to install it using the copr
$ sudo dnf copr enable crashdummy/Displaylink
$ sudo dnf update
$ sudo dnf install displaylink -y
This will install basically everything similiar to the new apt repository of synaptics. You can verify everythings working.
$ dkms status
evdi/1.12.0, 6.3.0-0.rc7.20230423gt622322f5.361.vanilla.fc38.x86_64, x86_64: installed
evdi/1.12.0, 6.3.0-362.vanilla.fc38.x86_64, x86_64: installed
$ systemctl status displaylink-driver.service
● displaylink-driver.service - DisplayLink Driver Service
Loaded: loaded (/usr/lib/systemd/system/displaylink-driver.service; static)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: active (running) since Mon 2023-04-24 09:14:16 CEST; 2h 3min ago
Process: 5512 ExecStartPre=/sbin/modprobe evdi (code=exited, status=0/SUCCESS)
Main PID: 5515 (DisplayLinkMana)
Tasks: 52 (limit: 37501)
Memory: 199.0M
CPU: 17min 43.068s
CGroup: /system.slice/displaylink-driver.service
└─5515 /usr/libexec/displaylink/DisplayLinkManager
Apr 24 09:14:16 crashphyrus systemd[1]: Starting displaylink-driver.service - DisplayLink Driver Service...
Apr 24 09:14:16 crashphyrus systemd[1]: Started displaylink-driver.service - DisplayLink Driver Service.
Usage
NOTE: Now buildable cleanly via .spec file (in mock f.e.). Download files via
make srpm
.
In order to create the driver rpm package you can run the command make
from
within the checked out directory. The Makefile should download the files needed
for you and create an RPM.
A default make
will use the evdi driver that is bundled with the Displaylink
driver package. If you need to use a newer released version from the evdi Github
repo and it is not currently present in the Displaylink driver package, you can
do so by running:
make github-release
Secure boot on Fedora
If you dont have secure boot activated you can skip this part.
$ mokutil --sb-state
SecureBoot disabled
dkms >= 3.0.4
Since dkms-3.0.4 signing now became a lot easier. You can now dont need to create your signing key yourself.
$ sudo dnf install mokutil dkms
# Enroll the key dkms created automatically and enter a passphrase
$ sudo mokutil --import /var/lib/dkms/mok.pub
$ reboot
After the reboot you might be prompted at boot to enroll the key. Enter the passphrase you provided in the last step.
Afterwards you can let dkms sign your module.
# Verify the enrollment success
$ mokutil --list-enrolled | grep DKMS
Subject: CN=DKMS module signing key
# Signing should be done automatically during upgrades.
# If the module is not signed you can invoke it manually
$ sudo dkms autoinstall
your evdi should now always be signed
$ sudo modinfo evdi
filename: /lib/modules/6.11.1-206.fsync.fc40.x86_64/extra/evdi.ko.xz
license: GPL
description: Extensible Virtual Display Interface
author: DisplayLink (UK) Ltd.
import_ns: DMA_BUF
import_ns: DMA_BUF
depends:
retpoline: Y
name: evdi
vermagic: 6.11.1-206.fsync.fc40.x86_64 SMP preempt mod_unload
sig_id: PKCS#7
signer: DKMS module signing key
sig_key: 53:D7:A1:A6:97:6A:CC:3F:46:FB:42:D1:17:B6:73:4F:F7:95:03:DA
sig_hashalgo: sha512
signature: 9C:03:24:9C:DB:A8:85:8C:87:D6:09:0D:D1:80:17:18:A6:8A:3D:BB:
FC:77:CD:A5:69:F7:7E:37:FC:AE:2E:52:B9:36:3F:4E:43:D5:08:19:
A5:8B:86:A2:98:2C:83:64:A7:7A:BB:30:49:18:3F:B5:CF:3D:48:FF:
C5:01:16:13:63:29:87:BA:1A:F2:AD:50:ED:F2:82:C2:95:B9:BC:E9:
5C:F6:E6:3F:E2:EB:88:02:F9:9F:6B:84:1E:18:E9:DD:C3:B6:B7:89:
5B:8F:53:74:BC:8A:34:D4:40:AB:C9:E6:C2:55:41:EA:A3:3E:59:0F:
62:4C:8E:FC:35:6D:57:4C:8D:F0:3D:5F:86:35:02:12:E7:91:A2:48:
04:5C:A4:AC:2A:1A:2A:A7:C2:05:0A:8E:21:CF:B3:F4:4F:76:7D:F9:
99:85:98:83:B9:24:17:CF:A6:5A:E5:46:CE:DF:FC:63:10:15:7F:28:
C0:8C:10:00:1B:B3:4D:8A:3B:F2:6E:7F:76:47:BC:F5:44:28:0F:4E:
31:67:BC:4C:B7:07:D3:26:D9:79:99:74:99:E2:8B:8C:81:C1:FE:24:
D4:8C:5A:77:E3:6A:3E:98:89:69:5E:75:9A:66:90:CC:48:69:BB:A4:
91:31:25:1F:B6:B8:72:63:8A:12:C8:C7:6E:B8:E2:DB
parm: initial_loglevel:Initial log level (int)
parm: initial_device_count:Initial DRM device count (default: 0) (ushort)
legacy
To use displaylink-rpm and the evdi kernel module with secure boot enabled on Fedora you need to sign the module with an enrolled Machine Owner Key (MOK).
First create a self signed MOK:
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out \
MOK.der -nodes -days 36500 -subj "/CN=Displaylink/"
Then register the MOK with secure boot:
sudo mokutil --import MOK.der
Then reboot your Fedora host and follow the instructions to enroll the key.
Now you can sign the evdi module. This must be done for every kernel upgrade:
sudo modinfo -n evdi /lib/modules/5.10.19-200.fc33.x86_64/extra/evdi.ko.xz
sudo unxz $(modinfo -n evdi)
sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv \
./MOK.der /lib/modules/$(uname -r)/extra/evdi.ko
sudo xz -f /lib/modules/$(uname -r)/extra/evdi.ko
Now any display, hdmi and/or dvi ports on your docking station should work, and the displaylink-driver.service should run.
Hardware-specific behavior
Dell D6000
When used with the Dell D6000 docking station, DisplayLink 5.1.26 regularly loses communication with attached monitors, causing them to go blank and enter power-saving mode. At the time the monitors blank, the kernel logs two error messages:
kernel: usb <xxx>: Disable of device-initiated U1 failed.
kernel: usb <xxx>: Disable of device-initiated U2 failed.
To work around this issue, disable power management for the audio
device by commenting out a line in /etc/pulse/default.pa
:
### Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle
Active Releases
The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).
Release | Architectures | Repo Download |
---|---|---|
Fedora 39 | x86_64 (974)* | Fedora 39 (332 downloads) |
Fedora 40 | x86_64 (1483)* | Fedora 40 (511 downloads) |
Fedora 41 | x86_64 (278)* | Fedora 41 (83 downloads) |
* Total number of downloaded packages.