DisplayLink devices on Linux still only have experimental support. While some people have had success in using them, it is generally not an easy process and not guaranteed to work. The steps on this page describe the generally most successful methods of using external monitors with DisplayLink.
Also be warned that even over USB 3.0, a DisplayLink monitor may exhibit noticeably more lag than e.g. a DisplayPort monitor, especially when large portions of the screen are being redrawn.
- 1 Installation
- 2 Configuration
- 3 Troubleshooting
- 4 See Also
USB 2.0 DL-1x5, DL-1x0 Devices
First, the setup and installation:
- Blacklist the old kernel module,
udlfb, which may attempt to load itself first.
USB 3.0 DL-6xxx, DL-5xxx, DL-41xx, DL-3xxx Devices
- Install the Xrandr in the same manner as the
AUR driver. It allows configuring DisplayLink monitors using
Setting up X Displays
After that, run:
$ xrandr --listproviders
Providers: number : 2 Provider 0: id: 0x49 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 8 associated providers: 0 name:Intel Provider 1: id: 0x13c cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting
In the above output, we can see that provider 0 is the system's regular graphics provider (Intel), and provider 1 (modesetting) is the DisplayLink provider. To use the DisplayLink device, connect provider 1 to provider 0:
$ xrandr --setprovideroutputsource 1 0
and xrandr will add a DVI output you can use as normal with xrandr. This is still experimental but supports hotplugging and when works, it is by far the simplest setup. If it works then everything below is unnecessary.
These instructions assume that you already have an up and running X server and are simply adding a monitor to your existing setup.
Load the framebuffer device
Before your system will recognize your DisplayLink device, the
udl kernel module must be loaded. To do this, run
# modprobe udl
If your DisplayLink device is connected, it should show some visual indication of this. Although a green screen is the standard indicator of this, other variations have been spotted and are perfectly normal. Most importantly, the output of
dmesg should show something like the following, indicating a new DisplayLink device was found:
usb 2-1.1: new high-speed USB device number 7 using ehci-pci usb 2-1.1: New USB device found, idVendor=17e9, idProduct=03e0 usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 2-1.1: Product: Lenovo LT1421 wide usb 2-1.1: Manufacturer: DisplayLink usb 2-1.1: SerialNumber: 6V9BBRM1 [drm] vendor descriptor length:17 data:17 5f 01 00 15 05 00 01 03 00 04 udl 2-1.1:1.0: fb1: udldrmfb frame buffer device [drm] Initialized udl 0.0.1 20120220 on minor 1
/dev should contain a new
fb device, likely
/dev/fb1 if you already had a framebuffer for your primary display.
To automatically load
udl at boot, create the file
/etc/modules-load.d/ with the following contents:
For more information on loading kernel modules, see Kernel modules#Automatic module handling.
Configuring X Server
xrandr or your Desktop Environment's display setup UI to configure your USB monitors running either the
Once the driver is loaded, the DisplayLink monitor is listed as an output provider:
$ xrandr --listproviders
Providers: number : 2 Provider 0: id: 0x43 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 1 name:Intel Provider 1: id: 0xcb cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 1 name:modesetting
In the above example, provider 1 is the DisplayLink device, and provider 0 is the default display. Running
xrandr --current gives a list of available screens:
$ xrandr --current
Screen 0: minimum 320 x 200, current 1600 x 900, maximum 8192 x 8192 LVDS1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 309mm x 174mm 1600x900 60.0*+ 40.0 1440x900 59.9 1360x768 59.8 60.0 1152x864 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) DVI-1-0 connected (normal left inverted right x axis y axis) 1366x768 60.0 + 1368x768_59.90 59.9 1368x768_59.90 (0xd0) 85.7MHz h: width 1368 start 1440 end 1584 total 1800 skew 0 clock 47.6KHz v: height 768 start 769 end 772 total 795 clock 59.9Hz
If the above does not list the DisplayLink screen, then you will need to offload DisplayLink to the main GPU:
xrandr --setprovideroutputsource 1 0
Enabling DVI output on startup
The DisplayLink provider will not be automatically connected to the main provider in most cases, therefore the DVI output device will not be available. It can be helpful to automatically do this when X starts to facilitate automatic display configuration by the window manager.
Edit your desktop manager's startup configuration and add commands similar to:
$(xrandr --listproviders | grep -q "modesetting") && xrandr --setprovideroutputsource 1 0
For example, the appropriate startup configuration file for SDDM is
Avoid placing these commands in
~/.xprofile as this breaks the display configuration of some window managers. Instead these commands should be run prior to any display output or setup.
Not working configuration
These are tested on Xfce using Display settings (included in XFCE4 package) and external tool - . XFCE4 Display settings are likely to crash, so ARandR might help.
When you connect display link device via USB to your computer, the computer should show monitors in Display settings. There are few troubleshooting steps that you should try:
- Check #Setting up X Displays. If you can find any external monitors recognized, you should try to make them visible by the following commands:
xrandr --setprovideroutputsource 1 0 xrandr --setprovideroutputsource 2 0 xrandr --setprovideroutputsource 3 0 ...
This will make them visible and recognized in Display settings.
- Re-connecte USB cable.
- Check if
udldriver is loaded and monitors are connected.
Screen redraw is broken
If you are using
udl as your kernel driver and the monitor appears to work, but is only updating where you move the mouse or when windows change in certain places, then you probably have the wrong modeline for your screen. Getting a proper modeline for your screen with a command like
gtf 1366 768 59.9
768 are the horizontal and vertical resolutions for your monitor, and
59.9 is the refresh rate from its specs. To use this, create a new mode with
xrandr like follows:
xrandr --newmode "1368x768_59.90" 85.72 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync
and add it to Xrandr:
xrandr --addmode DVI-0 1368x768_59.90
Then tell the monitor to use that mode for the DisplayLink monitor, and this should fix the redraw issues. Check the Xrandr page for information on using a different mode.
If this does not solve the problem (or if the correct modeline was already in place because of correct DDC data), it can help to run a compositor. E.g. when using plain i3, runningor can mitigate the problem.
DisplayLink refresh rate is extremely slow with gnome 3
If once you set up your DisplayLink your entire desktop becomes slow, try setting a "simpler" background image, such as complete black.
Slow redraw/Unresponsiveness in Google Chrome and Webkit2-based Applications
This is to be associated with bugs in hardware acceleration, which can be tested by running glxgears in the displaylink screen resulting in 1fps. There is currently no complete fix available, but turning off Hardware-Acceleration in affected applications can work as a temporary fix.
This can be done in applications without a hardware-acceleration option by prepending the
LIBGL_ALWAYS_SOFTWARE=1 environment variable.