DisplayLink Drivers on Linux are Busted

tl;dr

Problem

You are using a computer running some flavor of Debian Linux and have decided to use a DisplayLink adapter for video output. If the DisplayLink adapter is connected at startup, your computer hangs for several minutes while loading Linux, and some services, applications, and/or drivers fail to load properly.

Patch

In the file /opt/displaylink/udev.sh, modify the “start_service” section to read systemctl start --no-block displaylink-driver. Save the file and restart; you should not experience the issue again, or at least until DisplayLink releases an update that reverts your changes.

Dive Deeper

The Problem

You are using a computer running some flavor of Debian Linux and have decided to use a DisplayLink adapter for video output. If the DisplayLink adapter is connected to the computer during startup, the computer hangs for several minutes while loading Linux, and some services, applications, and/or drivers fail to load properly.

The Patch

Note: I did not come to this solution on my own, but found it here on this post. It took me a little effort to find it because my situation doesn’t exactly match the OPs, so I wanted to write this post with the hope that it’s more searchable. OP had a Lenovo USB-C hybrid dock, but I just had a generic adapter. Anyway, here’s what you do:

  1. Open the udev file with Nano (or your preferred editor; for this tutorial, we’ll use Nano)

    1. Open Terminal, and change your working directory to the DisplayLink driver folder in opt with this command:
      1. $ cd /opt/displaylink
    2. Type in “ls” to show all the files in your current folder; you should see a file named “udev.sh
    3. Because this is a system file, you will need to run Nano as an administrator with “sudo” to edit the file.
      1. $ sudo nano udev.sh
      2. TIP: While typing in the file name, you can hit “tab” to cycle through the files that match what you’ve typed so far. If there’s only one file that starts with “ud”, hitting tab will fill in the rest.
        DisplayLink Drivers on Linux-1.png
  2. Add “--no-block” to the start service command and save the file.

    1. Scroll to the bottom, and look for the “start_service” section, and add the switch “--no-block
      1. It should look like this: “systemctl start --no-block displaylink-driver
    2. Once you’ve made the change, hit Ctrl+X on your keyboard to exit and save the file
      1. You will be prompted to save your changes; enter Y to save the changes, then hit the “Enter” key to confirm the file name “udev.sh” (don’t change it).
        DisplayLink Drivers on Linux-2.png
  3. Restart the computer and cross your fingers.

    1. If the Linux Sprites are pleased with your supplication, then your computer will boot up like normal and everything will be fine!

Further Thoughts

From what I can see on Synaptic’s support forum and the Linux Mint forum post earlier, this is a problem that’s been around since at LEAST September 2020. I’ve been thinking about writing this post since about June of 2023, but I was recently spurred to action because DisplayLink released a new update in August that wiped out the patch, causing my system to fail to boot properly. If you also ran into problems with DisplayLink’s Linux drivers, I hope this helps you get back up and running!