This guide walks you through installing and configuring DisplayLink on Fedora 41 with a Surface Laptop. Fedora 41 users with the Surface kernel often face unique challenges with DisplayLink, especially when Secure Boot is enabled. Here’s a comprehensive guide to getting DisplayLink drivers up and running.
1. Initial Setup: Preparing Fedora 41
Before diving into installation, remove any existing DisplayLink or EVDI packages to avoid conflicts. Then, install the development tools required to build from source.
# Remove previous installations
sudo dnf remove displaylink 'evdi-*'
# Install development tools for building packages
sudo dnf install @development-tools
# Install kernel headers for Surface
sudo dnf install kernel-surface-devel
2. Building EVDI (Extensible Virtual Display Interface)
EVDI is a dependency for DisplayLink on Linux, and compiling the latest version from source is recommended to ensure compatibility with Fedora 41.
# Clone the EVDI repository
git clone https://github.com/DisplayLink/evdi
cd evdi
# Set up the Python include path (modify for your Python version if needed)
export CPLUS_INCLUDE_PATH="/usr/include/python3.13:$CPLUS_INCLUDE_PATH"
# Build and install EVDI
make
sudo make install
Troubleshooting Tip: If `make` fails, verify that you have `pybind11` and `python3-devel` installed. Fedora users can install these with:
sudo dnf install pybind11 python3-devel
3. Installing the DisplayLink Driver
Next, download the latest DisplayLink RPM package compatible with Fedora 41. At the time of writing, the latest version is `fedora-41-displaylink-1.14.7-1.github_evdi.x86_64.rpm`.
# Install the DisplayLink package
sudo dnf install '/path/to/rpm/fedora-41-displaylink-1.14.7-1.github_evdi.x86_64.rpm'
After installation, Fedora attempts to start the `displaylink-driver.service`. However, this often fails due to Secure Boot requirements, which we’ll address next.
4. Configuring Secure Boot to Allow DisplayLink
If Secure Boot is enabled, the `displaylink-driver.service` may fail to start because the `evdi` kernel module isn’t signed. To solve this, we’ll use `mokutil` and `dkms` to enroll the signing key.
# Install mokutil and dkms
sudo dnf install mokutil dkms
# Enroll the automatically generated DKMS key with Secure Boot
sudo mokutil --import /var/lib/dkms/mok.pub
# Reboot your system to complete the key enrollment
reboot
During reboot, you’ll be prompted to enter a passphrase to enroll the DKMS key. This step is crucial for enabling unsigned modules under Secure Boot.
5. Verify Key Enrollment
After reboot, confirm that the DKMS key is enrolled:
mokutil --list-enrolled | grep DKMS
This should output something similar to:
Subject: CN=DKMS module signing key
6. Reboot and Test
After all configurations, reboot your system one final time. You should now have a fully functional DisplayLink setup on your Fedora 41 Surface Laptop.
Summary
Setting up DisplayLink on Fedora 41 with the Surface kernel involves configuring several components, including Secure Boot and DKMS. With the steps above, Fedora 41 should now support DisplayLink for external displays, enhancing your Surface Laptop's capabilities.
Enjoy !
AlexIn Tech