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.