[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

This is an old revision of the document!


DisplayLink

This HOWTO covers how to configure and install the DisplayLink driver (evdi) for USB 3.0 devices, and has been tested under Slackware 14.1 and -current. For older devices (e.g. USB 2.0), the udl driver should work with minimal configuration needed.

As of April 2016, DisplayLink has announced an updated driver coming in the next few months: http://displaylink.org/forum/showthread.php?s=a87582bcbe7a4f32eb298180e9b0d0fc&t=64479

Preparation

In order to install the evdi driver, you will need to install dkms, which can be grabbed from SlackBuilds.org using your favorite method. To install it manually:

# wget https://slackbuilds.org/slackbuilds/14.1/development/dkms.tar.gz
# tar xvf dkms.tar.gz
# cd dkms
# wget http://linux.dell.com/dkms/permalink/dkms-2.2.0.3.tar.gz
# sh dkms.SlackBuild

After installing dkms, reboot your system.

Installing evdi

Grab the current DisplayLink USB Graphics Driver for Ubuntu here: http://www.displaylink.com/downloads/ubuntu.

After downloading, you'll need to extract the driver and run the installer script (adjust for the current version numb. Make sure to run the script as root:

# unzip DisplayLink_Ubuntu_1.0.335.zip
# sh displaylink-driver-1.0.335.run
Verifying archive integrity... All good.
DisplayLink Linux Software 1.0.335 install script called: install
WARNING: Unknown distribution, assuming default - this may fail.
WARNING: Kernel varsion 4.4.7 is not supported. Highest supported version is 3.19.
Installing
Configuring EVDI DKMS module
Registering EVDI kernel module with DKMS
Building EVDI kernel module with DKMS
Installing EVDI kernel module to kernel tree
EVDI kernel module built successfully
Installing x64/DisplayLinkManager
Installing libraries
Installing firmware packages
Installing license file
Adding udev rule for DisplayLink DL-3xxx/5xxx devices

The WARNING messages are simply due to Slackware not being a “supported” distribution, and should not cause issue. Likewise, you might see a warning about the lsb-release command, which can also safely be ignoring. Once complete, the evdi module should be available. Restarting once more is recommended.

Starting DisplayLinkManager

In order to manually start the evdi module and DisplayLinkManager, run the following:

# modprobe evdi
# cd /usr/lib/displaylink
# ./DisplayLinkManager &
In testing, DisplayLinkManager did not seem to run properly unless executed by root and from the /usr/lib/displaylink directory. Keep that in mind when manually, or automatically, calling the program.

Once running, you should be able to identify your new display(s) in xrandr:

$ xrandr --listproviders

Your native display (if on a laptop), will be Provider 0, with any connected monitors showing as 1, 2, etc. Assuming they are shown properly, enable them:

$ xrandr --setprovideroutputsource 1 0

Replace 1 with the number of your external display(s). Once active, they should show in xrandr or your chosen display settings, and can be configured properly.

Automatically Loading on Boot

Since DisplayLink support is still pretty finicky, you might have to get creative with loading the module and starting DisplayLinkManager on boot. You should be able to add the following to /etc/rc.d/rc.modules.local to load evdi:

/sbin/modprobe evdi    # DisplayLink

In order to start DisplayLinkManager, you can add the following to /etc/rc.d/rc.local:

cd /usr/lib/displaylink && ./DisplayLinkManager &

From there, you'll only need to run (or script) the xrandr command to activate monitors on boot. One example is to add them to a script, like this:

#!/bin/bash
#
# Activate external, USB-driven monitors.
#

for x in `xrandr --listproviders | grep "Provider " | awk '{print $2}' | awk -F\: '{print $1}'`; 
do 
    if [ $x -gt 0 ]; 
    then 
        xrandr --setprovideroutputsource $x 0; 
    fi; 
done;

For devices and docks using USB 2.0, the built-in udl module should be sufficient to enable external monitors.

See Also

 howtos:hardware:displaylink ()