23-oct-2017: Dokuwiki and its plugins were upgraded to the latest release.

Welcome to the Slackware Documentation Project

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 newer. For older devices (e.g. USB 2.0), the udl driver should work with minimal configuration needed.

Older versions of the DisplayLink driver installed themselves in /usr/lib/displaylink instead of the path /opt/displaylink which is used in the instructions below

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.2/development/dkms.tar.gz
# tar xvf dkms.tar.gz
# cd dkms
# wget https://github.com/dell/dkms/archive/v2.4.0/dkms-2.4.0.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 number and make sure to run the script as root):

# unzip DisplayLink USB Graphics Software for Ubuntu 1.3.54.zip
# sh displaylink-driver-1.3.54.run
 Verifying archive integrity... All good.
 DisplayLink Linux Software 1.3.54 install script called: install
 WARNING: Unknown distribution, assuming default - this may fail.
 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 /opt/displaylink
# ./DisplayLinkManager &
In testing, DisplayLinkManager did not seem to run properly unless executed by root and from the /opt/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 /opt/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


In Other Languages
Translations of this page?:
QR Code
QR Code howtos:hardware:displaylink (generated for current page)