A 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.

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.

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.

I have just tested it on 14.04 and my Accell DisplayLink adapter works out of the box. With all the things mentioned here about the speed, but it works.
This is the adapter I’m using http://www.accellcables.com/J130B-001B.html

works out of the box but huge amount of issues including what is mentioned above with only half the monitor rending sometimes. Also lots of locking up of the system and now as of today its stopped working altogether since the last update.

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.

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?

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.

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

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.

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.

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.

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!

I just upgraded to 14.10 from 14.04LTS and am seeing non-usable characteristics.. the screen displays jarbled mess and the other screeens are almost non usable due to sporratic mouse behavior. Doing further updates to see what I find.

Same issues here w/ 14.10 (and later updates on 14.04) – garbled junk on the display powered by USB and X behaves erratically on other displays. Is there an existing bug report or other thread about this anyone’s found? Just want to keep in the loop on it.

Thanks for asking. No, unfortunately multiple monitor functionality requires support not just for talking to the device (kernel level), but also at the graphics subsystem and window manager level. Even though the kernel level support might be there, Android is missing those higher level pieces.

Thank you guys for working on this, I am really looking forward to using usb3.0 as video input, since more and more laptops today have only HDMI, and there is no other option but to use usb3.0 as input for second external display. If there is some way to help about this, I would gladly consider dedicating some of my free time to speed this up.

I’ve got a green screen on the external device so the module is actually loaded, but there’s still something missing (several attempts to change xorg.conf were a completely faillure 😉 any hints welcome

what is the current recommended device for a linux 4.1.x kernel (Arch Linux build) that does USB2 (and/or usb3) to HDMI, not larger than 1920×1080 via intel and nvidia (proprietary on one machine & nvidia + bumblebee on laptop) and is deployed for 2D usage (office docs & code dev)? is it stable enough to recommend for purchasing? please note, the laptop is a special love child — the onboard intel hardware died so my display is currently driven from the secondary gpu which negates the second screen use of the external monitor port.

i’m capable of recompiling a kernel and making patches to it. time is more of a question rather than skill.