Tag Archives: ud-160-m

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.

Multiseat Drivers

Depending on your operating system, driver installation procedures will vary. Plugable’s USB Zero Client multiseat terminals are supported on the following operating systems:

  • Windows Multipoint Server 2012
  • Windows Multipoint Server 2011
  • Fedora 18
  • Userful Linux

Windows Multipoint Server 2011 & 2012
For Windows Multipoint Server (WMS) 2011 & 2012, the OSBase driver is the only supported option. WMS 2012 is recommended over WMS 2011 due to noticeable improvements in performance made possible by WMS 2012. Installation instructions are also available on the OSBase site linked below.

Download the WMS 2012 OSBase driver here.
Download the WMS 2011 iDisplay driver here.

Fedora 18
Fedora 18 is a largely plug-and-play experience, and is a great option for users with Linux experience. Performance varies by hardware, but a non-compositing desktop environment such as Gnome-Fallback, XFCE or LXDE is recommended for the smoothest experience. Experienced Linux users familiar with configuring desktop managers should have little more to do than add users for each terminal.

Userful Linux
Userful Linux is compatible with both Plugable’s multiseat terminals, however since Userful is a paid distribution customers should seek support from Userful directly.

Fedora 18 and DisplayLink USB 2.0 Graphics Adapters

With the recent release of Fedora 18, we have been testing the many changes and improvements to the DisplayLink software stack that have landed for this latest version of the popular open-source distribution. A large amount of work has gone into improving functionality and ease of use with DisplayLink USB Graphics devices. Most of these changes are not Fedora-specific, but are present in all recent versions of the Linux kernel and Xorg display server. Unfortunately, DisplayLink support is still far from perfect under Linux, but it has come a long way in recent months. What follow is an account of what we saw while testing an assortment of our USB Display Adapters and docking stations under Fedora 18.

The system we used for testing is a custom-built PC with the following specifications:
Intel Core i5-3570 Ivy Bridge
ASUS P8Z77-V LK Motherboard
8GB DDR3 RAM

Additionally, we performed tests using both the built-in Intel Ivy Bridge Graphics(using Intel’s Open Source driver) and a Nvidia GeForce GT 430(using the Nouveau Open Source graphics driver).

Note: We have yet to perform any testing using the Nvidia proprietary driver, but results for those tests will be posted as soon as they are completed.

There are 2 primary use-cases for USB Graphics on Linux. The most common one is to connect a greater number of Monitors than your computer has ports for, the other use-case is to set-up a Multi-Seat environment in which multiple users each have access to their own, separate desktop session while sharing the same computer. Fedora currently decides automatically if the device that you have connected to your PC should work as a multi-monitor or multi-seat device. What this mean is that our docking stations are automatically assigned to a separate desktop session, and there is no easy way to make them operate in multi-monitor mode(a how-to on switching a docking station to multi-monitor mode will be added to this blog post at a later time). Likewise, our USB Display Adapters will automatically work as multi-monitor devices and manual configuration is required to change this behavior. With these limitations in mind, I have split the rest of this article into 2 categories.

Multi-Monitor (UGA-125, UGA-165, UGA-2K-A, USB2-HDMI, USB-VGA-165)

The Multi-Monitor user experience has improved in many ways from previous versions of Fedora, but there are also a number of bugs that can seriously hurt a user’s enjoyment of this technology. Using the Intel Ivy Bridge graphics, we were able to connect a UGA-165 and a UGA-2K-A to our system and to a DVI display, and the display was instantly recognized in System Settings->Monitors. We were then able to enable said display, and set-up its position in our virtual desktop, and just like that, we had a working secondary display running of USB.

Unfortunately, that’s where the good news ended, there are a number of bugs that still plague this setup. For starters, we were only able to do this on the Intel Ivy Bridge graphics, when we attempted to do the same thing on the Nvidia card running Nouveau, all we saw was corrupted graphics on the USB display along with a severe performance slow down on the main display. Additionally, booting the system with a DisplayLink device connected will result in the primary monitor never reaching the login manager, so the DisplayLink device needs to be connected once you have made it into the desktop session. Finally, if you log out of your desktop session with a DisplayLink device still connected, the login manager will also fail to re-appear on your primary display. On the GUI/Ease of use side of things, we ran into problems with selecting the proper resolution for our display, no matter what display we connected to our USB Display Adapters we only had the option to set it to 800×600 or 1024×768.

As far as performance goes, a non-composite desktop will obviously render the best results. A full gnome-shell session was certainly usable on our setup, but moving windows around was choppy. Switching to fallback mode provided a much smoother experience. Scrolling websites was also very smooth, and video playback is varied. YouTube video played at an acceptable frame-rate, even when going full-screen(at 360p or 480p), but VLC gave some odd issues in which new video frames would stop rendering if we expanded the window past a certain size.

Multi-Seat (UD-160-A, UD-160-M, DC-125)

Multi-seat has not changed much functionality-wise since Fedora 17, however, many bugs have been fixed. We were able to connect a few DC-125s and UD-160s to our Fedora 18 box and login managers spawned on their respective screens with no issues. A major issue we encountered on Fedora 17 has been resolved with these release.  We were able to boot our PC with multiple docking stations connected and they all initialized properly, none of them were sent to that dreaded green screen we sometimes saw before. Unlike the Mutli-Monitor scenario, Multi-seat worked with no issues on both the Intel and Nvidia graphics chipsets.

The performance of gnome-shell still leaves a lot to be desired when running on these USB Graphics chips, but switching to fallback mode fixes these issues. As a stress-test we even ran a Youtube video(at 480p) on each of our thin-clients and the experience was fairly smooth across the board, scaling this is obviously CPU-constrained.

With all of that said, it is pretty clear that there are still quite a few issues surrounding DisplayLink graphics under Linux, mostly in the Multi-Monitor use-case. 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.