DisplayLink USB 2.0 Graphics Adapters on Linux – 2014 Edition

IMG_20140306_164523A little over a year ago I wrote a blog post discussing the state of USB Graphics on Linux systems, specifically, Fedora 18. What follows is an update on the situation, looking at both Fedora 20 and Ubuntu 13.10, and examining how far we have come, and how far we still have to go.

The short story

Multi-monitor on Linux, especially with multiple graphics cards and USB graphics adapters, remains problematic. You can find many distros and configurations where it just won’t work. We’d recommend staying away unless you’re an advanced Linux user who is willing to play with different distros, install optional components and do hand configuration. Unfortunately, it’s just not plug and play yet today, as it is on Windows.

The long story

That said, it is possible to get things working in limited scenarios for USB 2.0 generation DisplayLink-based adapters. We used all Plugable products in the tests for this post. Our test systems included Intel, Nvidia, and AMD primary graphics adapters. For Nvidia and AMD, we tested both the open-source and proprietary drivers.

Intel is the most compatible, providing decent results under all configurations.
Nvidia graphics cards, when running the open source nouveau driver, only work in Multi-Seat mode. Attempting multi-monitor setup with a DisplayLink adapter and an Nvidia graphics card results in garbage graphics being displayed on your DisplayLink-attached monitor. The Nvidia proprietary drivers do not work under any scenario.
The AMD open-source drivers work under both multi-seat and multi-monitor setups, but the performance, at least in our tests, is significantly worse than with the Intel drivers.
The AMD proprietary drivers are unavailable in any easy to install package under Fedora 20, but we installed them in Ubuntu, and were unable to get any results, they simply do not work with DisplayLink graphics.

Fedora 20

Fedora has always provided the best support for DisplayLink graphics on Linux. We noticed some regressions on Fedora 19, but these have largely been resolved in Fedora 20. There isn’t much new to report.

You should be able to connect one of our docking stations and create a plug-and-play multi-seat setup, or connect one of our display adapters, and expand your desktop to an extra monitor using the Arandr utility, or something similar.

Ubuntu 13.10

Ubuntu still has several issues with DisplayLink graphics, and they do not work out of the box.

In order to enable DisplayLink adapters to work on Ubuntu, one must download the latest Mainline Kernel build from the Ubuntu Kernel PPA, install it, and then reboot with that kernel. Once this is done, DisplayLink graphics adapters will work in multi-monitor mode. Simply enable them from System Settings like you would enable any extra monitor attached to your PC.

A step-by-step guide to accomplish this will not be provided because switching away from your distro-provided kernel is something only expert users should attempt.

It should be noted that the reason this is necessary is due to the Ubuntu team making some changes to the kernel that they ship with Ubuntu, resulting in broken DisplayLink graphics support. A bug report has been submitted, here.

You can also keep track of the USB Graphics situation under Ubuntu in this blueprint.

Performance

Performance continues to be an issue with DisplayLink on Linux. Using a composited window manger(Gnome 3, Unity, Cinnamon, etc) will result in poor performance across all of your displays. Compositing re-renders far more pixels than non-compositing desktops. When you’re just going through a GPU, you’ll only notice battery loss. But when all those pixels have to get processed by the CPU and sent over USB, it’s a huge hit.

Switching to a lighter-weight window manager or desktop environment (XFCE, LMDE, Mate, etc) results in a quite usable setup, provided your main display adapter is a recent Intel chip.

Unfortunately, due to the discontinuation of Gnome 3′s fallback mode, that is no longer an option for improved performance.

Other Outstanding Bugs

Besides the issues I mentioned above, there’s still a few other problems.

When rebooting your Linux computer, or simply logging out and back in, your USB-attached displays will not always come back without having to disconnect and reconnect them.

Changing the location of your DisplayLink screens in your virtual desktop can sometimes cause strange issues (like only half of the monitor rendering). Toggling the screen on and off inside of your Display management UI usually solves this.

Nvidia’s and AMD’s proprietary drivers are still entirely incompatible with DisplayLink graphics on Linux.

Conclusion

We hope this background helps. We don’t recommend or support USB graphics on Linux yet, because of the problems above — but if you do have questions, please feel free to comment below. We want to get as much information out as possible about what works and doesn’t, so things can improve here. There’s no reason Linux can’t have the same or better multi-monitor support as any other platform in time!

If you are an Open Source Kernel or User-Space developer that would like to help improve this situation, we’d like to point you to our Plugable Open Source Hardware Samples Program where you may sign up to receive free sample hardware to help on your development efforts.

24 thoughts on “DisplayLink USB 2.0 Graphics Adapters on Linux – 2014 Edition”

    1. One thing is the kernel freeze for 14.04 is coming up on April 3rd and I would love to have DisplayLink adapters work out of the box like you say they do on Fedora.

      I could possibly buy and test the Plugable UGA-165 if that would help or is necessary.

  1. I build custom systems with Ubuntu OS. Customers wanting quality USB 3.0 internal/external. We also use customize ROM’s for Android and external USB 3.0 is in demand, also to HDMI.

  2. Any idea what the trouble of coexisting with nouveau might be?
    I’m trying here with a DL-195 (from Plugable!), and it really seems like the scrambled display is getting its data from the wrong memory.

    Dragging a black or white window across the DL display produces no changes whatsoever in the scrambling, which is why I suspect its using the wrong data source or something somewhere.

    1. Hi Mark, when using UDL (DisplayLink DRM driver) on recent kernels, I believe you’re using David Airlie’s DMABUF and PRIME codepaths (http://www.phoronix.com/scan.php?page=news_item&px=MTA3OTQ). I don’t understand enough about how this works, unfortunately — but there are still many combinations of hardware that doesn’t have the same/right level of DMABUF and/or PRIME support, and seem to fail like you’re seeing. But I don’t really understand what’s happening there architecturally with DRM, so I’m just not sure. Sorry can’t be more help.

      1. Okay, Sounds like there’s some detective work needed for Nouveau interactions. ODd thing is, I’ve also noticed that “xv” (the graphics swiss army knife) cannot screen “grab” on nouveau either, possibly for similar reasons.

        Struggling here to get the DL-195 work with *any* configuration though. Nice modern Ivy-Bridge (all intel) ultraboox (Dell XPS w/Core i7). Tried various kernels from 3.8 through 3.14. The only thing that works thus far is “clone” (same image on all screens). The built-in LCD is 1920×1080, and my external monitor is 1920×1200 native. Clone works for 1680×1050, but not 1920×1080. And anything other than clone appears to work for about half a second, and then BOOM.. the mdm login screen appears.

        I wonder if there’s some magic intel DRM parameter needed, or maybe the drivers are just running out of memory (vmalloc?) for the large screen resolutions?

        Thanks

        1. What distro are you testing this on? Fedora has by far the best support. It seems like fixes for the nouveau issue are coming. I was able to get a DisplayLink monitor up with nouveau on the main display recently, just using xrandr. This was under a fully updated Fedora 20.
          The situation is improving, but we are not quite there. The performance was pretty atrocious.

  3. Great news! The Plugable UGA-165 works great with Ubuntu 14.04 daily. I’ve only used VGA at 1280×1024 (max this Sony 19″ can support) so far, but plan to test HDMI tomorrow at 1920×1080. I would also test DVI but I don’t have a DVI cable. I’m on an HP DV6-7000 Quad laptop with Ivy Bridge graphics and a discrete Nvidia 650M GT.

    I installed using the 20140401 daily server iso and installed the “ubuntu-desktop” metapackage because the installer, “ubiquity gtk_ui”, would crash at the listing partitions stage (which is fine, I’ve run gpart and testdisk a few times, so my partition table is weird).

    It’s totally smooth under Gnome Flashback using Metacity (from installing the “gnome-panel” package), but the mouse cursor was a bit laggy under Unity. The lagginess would also come and go, but I don’t plan to use Unity.

    Both the unity settings display and arandr saw the connected monitor through the UGA-165 and worked fine. Unplugging the USB while in use requires one to logout and at the login screen the monitor activates again. Suspend might also work, I forgot to try. It remembered positioning between logout/login but I didn’t test if it remembers between reboots.

    To be clear, I made no modifications or tweaks. Just plugged it in and opened settings. Someone did a lot of work, or we got lucky. Either way, very happy with the UGA-165!

    Things still for me to test:
    - HDMI
    - If suspend re-activates the monitor
    - Use of the UGA-165 in a live session
    - If positioning is remembered between reboots
    - VGA at 1920×1080

        1. I just loaded up todays’ daily of Ubuntu 14.04 onto a USB stick and tried it in the Dell XPS Ultrabook here. Detects the display, allows configuring mirroring / extended desktop etc.. The software pretends to be happy, but the LED on the DL-195 dongle is OFF, as is the external LCD monitor.

        2. Heh.. managed to crash the X-server. Once I logged in again, though, suddenly the LED is “on”, as is the external monitor, and mirroring / extended desktop is suddenly working. At least until I reboot perhaps.

  4. I have UD-160A multiseat/dock station. Multiseat works good in openSUSE since release 13.1 but extended desktop renders it unusable. I know that plugable has put efforts in open source and I would love to buy another two usb 3.0 docking stations but I simply can not because it works badly with Linux.

    Sadly I recommend to buy a video card that supports more than 2 monitors, usually these are high end AMD/Nvidia cards.

  5. I tried to use UGA-165 on Ubuntu 14.04 LTS and unfortunately it doesn’t work. I downloaded also MainbuildKernel as advised and it started to work then, but nVidia driver freaked out so I reversed to stable now. Is there any update maybe? Almost 5 months passed so maybe something has changed and it could be reflected in some update to this article.
    Thanks for supporting Linux!

    1. A fresh install didint work for me either …
      but i do have it working on 14.04lts …
      A friend of mine suggested deleting several files in the Xorg folder … then rebooting ….

      Dont remember what files now … but i think none of them were folders

Leave a Reply