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


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

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.

Windows Multipoint Server 2012 and Plugable USB Zero Clients

Windows Multipoint Server allows you to share a single PC among many users by connecting many USB zero clients (USB terminals). It’s a huge maintenance, power, and cost savings.

Microsoft’s newly released 2012 version has a greatly improved software interface for supporting USB clients. But this change meant that, until today, the most popular USB client technology (DisplayLink) was not supported.

Plugable Technologies is excited to announce that our full line of USB thin clients now fully supports Windows Multipoint Server 2012. We’ve partnered with OSBASE, experts in Windows driver and graphics technology, to provide a full solution for WMS 2012.

Every unit of our Plugable DC-125 low-cost thin client and Plugable UD-160-M mid-range thin client now includes a license to OSBASE’s high performance software driver for WMS 2012.

How do I get it?

Windows Multipoint Server 2012 is available for download, and the free evaluation period can be easily extended to 6 months. See Microsoft’s WMS2012 download page for details.

You’ll need one Plugable USB zero client terminal for each display, keyboard, and mouse you’re connecting to the PC. Plugable’s USB terminals are shipping in volume now, including the low-cost Plugable DC-125 ($64.95) and mid-range Plugable UD-160-M ($79).

We have a limited number of “trial kits” available for 90-day loans. They include up to four Plugable DC-125 and/or Plugable UD-160-M models, plus a powered USB hub (total around $300 value). Just email sales@plugable.com with a little detail on your organization and deployment goals.

And if you’re a non-profit, library or school, Techsoup and Microsoft have programs to donate their software for you.

How do I install drivers for it?

From the console mode of WMS 2012, download and install the new drivers for the Plugable hardware here:
WSM2012 software drivers for the Plugable DC-125 and UD-160-M.

Learn more

Read more about Windows Multipoint Server from Microsoft. And feel free to post below with any questions – we’re here to help!

One Fedora 17 Box up to 16 USB Multiseat Terminals

Fedora 17, as shipped, supports only 7 or 8 plug-and-play USB terminals per machine. The cause is the kernel evdev driver’s limit of 32 input devices.

You can see how your 32 evdev slots are currently getting used on a system with the command

for i in {0..31..1}; do udevadm info -a -n /dev/input/event$i | grep name; done

On the Fedora 17 multiseat box I’m using now to write this post, I have 3 USB terminals sharing one box — while I’ve spent the afternoon figuring this stuff out on one of the USB terminals, at the same time the kids have been watching endless youtube videos with their headsets on the other two. On this box, the command above shows:

    ATTRS{name}=="Power Button"
    ATTRS{name}=="Power Button"
    ATTRS{name}=="Plantronics Plantronics .Audio 655 DSP"
    ATTRS{name}=="Dell Dell USB Keyboard"
    ATTRS{name}=="USB Optical Mouse"
    ATTRS{name}=="USB Optical Mouse"
    ATTRS{name}=="Dell Dell USB Keyboard"
    ATTRS{name}=="GASIA USB KB V11"
    ATTRS{name}=="GASIA USB KB V11"
    ATTRS{name}=="SIGMACHIP Usb Mouse"
    ATTRS{name}=="C-Media Electronics Inc. USB Multimedia Audio Device"
    ATTRS{name}=="CM109 USB driver"
    ATTRS{name}=="HDA Intel PCH HDMI/DP,pcm=3"
    ATTRS{name}=="HDA Intel PCH Line"
    ATTRS{name}=="HDA Intel PCH Rear Mic"
    ATTRS{name}=="HDA Intel PCH Front Mic"
    ATTRS{name}=="HDA Intel PCH Front Headphone"
    ATTRS{name}=="HDA Intel PCH Line Out"
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found

This shows I only have 14 evdev slots left (the “device node not found” ones are available slots). So I know I could only connect 7 terminals total to this machine (a USB terminal’s unused audio buttons + keyboard + mouse takes up 3, I could only get 14 / 3 = 4 more than the three I have).

We can lift the limit of USB terminals from 7 to 16 by disabling often unused input devices: hardware volume controls and system (power) buttons. The following udev rules script does that with 3 rules.

Note that this will mean you’ll have to power off / sleep from the UI, your mainboard audio will be disabled, and special keyboard multimedia keys will be disabled. Feel free to comment out the appropriate lines in the udev rules if you want to keep those.

To apply these optimizations, create a system file (as sudo) called /usr/lib/udev/rules.d/72-seat.rules
with the following contents and reboot.

# Bernie Thompson bernie@plugable.com
# These udev rules help alleviate the Linux kernel limit of 32 evdev devices.
# This file should be deleted once the kernel's 32 device limit is lifted.
# Background: Every input device on the system, including several for 
# power buttons, PCI audio, USB audio, keyboard multimedia keys, etc. 
# all count towards the 32 limit.  Many systems reserve at least 8 for
# these uses. So as shipped with Fedora 17, only 7 or so USB terminals 
# (like the Plugable DC-125 or Plugable UD-160-M) will work.
# Run this at a command line to see how your 32 event slots are being used:
# for i in {0..31..1}; do udevadm info -a -n /dev/input/event$i | grep name; done
# If you have any event slots free, you'll see a "device node not found" message for each
# USB terminals consume an extra event device with the USB HID device
# associated with the audio interface for volume control. The udev rule below
# frees it up. This will enable around 12 USB terminals per server.
SUBSYSTEMS=="usb", SUBSYSTEM=="input", ENV{ID_SEAT}!="seat0", ENV{ID_USB_INTERFACE_NUM}!="00", RUN="/bin/sh -c 'echo $id > /sys/$devpath/../../../driver/unbind'"

# Free up any input devices associated with audio on the PCI bus.
# *IMPORTANT* This will disable your PC's mainboard PCI audio
# (because we can only unbind the whole PCI device)
# This will enable 13 or so USB terminals per server
# Comment out the line with a "#" if you'd like PCI audio to work
SUBSYSTEM=="pci", ATTR{class}=="0x040300", RUN="/bin/sh -c 'echo $kernel > /sys/$devpath/driver/unbind'"

# Free up any ACPI (system power) buttons. 
# *IMPORTANT* This will disable all built-in buttons on your PC (e.g. power)
# You will need to shut down, etc. from the Linux UI with administrative rights.
# This has the side-effect of making your PC slightly more secure against student tampering.
# Comment out the line with a "#" if you'd like these to work
# This will enable an extra USB terminal or so per server
# If you have no other event devices, other than the USB terminals, should get to 16 terminals.
SUBSYSTEM=="acpi", DRIVER=="button", RUN="/bin/sh -c 'echo $kernel > /sys/$devpath/driver/unbind'"

After creating that udev rule and rebooting, things look much more favorable in terms of evdev slots. Only the “real” USB keyboards and mice are left to consume slots:

    ATTRS{name}=="SIGMACHIP Usb Mouse"
device node not found
device node not found
    ATTRS{name}=="Dell Dell USB Keyboard"
    ATTRS{name}=="USB Optical Mouse"
    ATTRS{name}=="USB Optical Mouse"
    ATTRS{name}=="Dell Dell USB Keyboard"
    ATTRS{name}=="GASIA USB KB V11"
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found
device node not found

There are now enough free slots for 16 USB terminals (or, more specifically, their keyboards and mice).

Hopefully this is just a temporary workaround, until someone tackles the task of lifting the kernel’s limit of 32 evdev devices. That’s a very constraining limit for a whole host of reasons.

Note that one of the remaining bugs in Fedora 17 is that random USB terminals often come up to a green screen, requiring an unplug/replug to get a login. These scripts may increase the frequency of that if you have a lot of terminals, as the system bounces against the 32 device limit, then returns below it as the udev rules execute.

Hopefully in future versions of Fedora / systemd, those race conditions will be closed.

Hope you enjoy turning your one Fedora 17 PC into many. Please comment if you have any problems applying, we’ll try to help. See also our post on some huge Fedora 17 performance optimizations for USB multiseat which greatly improve the default experience.

And if you’re running more than 8 terminals with Fedora 17, please post a comment – we’d love to hear about it!

Dconf configuration: GNOME 3 Fallback Mode

The Linux GNOME 3 UI assumes you have a beefy 3D GPU and capable driver, which can cause problems when that isn’t the case.

Individual GNOME 3 users can fix this by setting their desktop experience to GNOME 3 “fallback mode” which can avoid the 3D compute burden. Fallback mode is an essential setting for older PCs, VMs, USB graphics, remote desktop, etc. It also provides the (arguably) more familiar GNOME 2 like experience (Applications / Places menus, desktop icons, etc.)

It’s possible to configure fallback mode for all users, plus the login screens, centrally by changing some dconf settings. Here’s how:

First, if you don’t already have a “user” profile, then we create one — specifying a new settings database we’ll call “fallback”. Create a file /etc/dconf/profile/user (as su / sudo) which contains these two lines:


Then we’ll create the settings directories for that new database

sudo mkdir /etc/dconf/db/fallback.d
sudo mkdir /etc/dconf/db/fallback.d/locks

Create a settings file to also use fallback once users are logged in. Create a file called /etc/dconf/db/fallback.d/60-user-fallback with:


show-desktop-icons = true

# This one is useful more for automatic USB multiseat
disable-user-switching = true

And, finally, create a settings file to have login screens themselves use fallback mode. Create a file /etc/dconf/db/gdm.d/60-login-fallback with:


dconf is a binary settings database (very un-unix like), so for any of these changes to take effect, you must run

sudo dconf update

Which will update the binary blobs which are then queried by GNOME to apply these settings. See the dconf admin guide for more.

And that should do it. You should see the fallback look and feel (more like GNOME 2). And if you’re running in a VM, with USB multiseat, or anywhere you don’t access to a beefy 3D processor — you should see a big drop in CPU usage.

Again, these directions have only been tested on Fedora 17. Please feel free to comment on changes (if any) to apply them for other distros.

Plugable USB 2.0 Multiseat Zero Client for Windows Multipoint Server and Fedora Linux (DisplayLink D... Product Details

Fedora 17 USB Multiseat Compatible Hardware

[Update 5/28/2012 Fedora 17 has been released and supports the Plugable DC-125 and UD-160-M/A out of the box! Download the iso image here. And the steps below have been updated to reflect all the fixes in F17 final.]

The Plugable $50 thin client KickStarter project is growing.

But we need early adopters so we have people using the solution, finding and fixing problems, and helping to spread the word. What we deliver now might not include some KickStarter extras and will be higher priced than through the KickStarter project, but it will include all the components and will work with Fedora 17 Beta.


Interested in getting your hardware now? If you’re in the USA, here’s what will work with Fedora 17 Beta:

UD-160-M USB Thin Client
DC-125 USB 2.0 Docking Station / Zero Client

International Shipping Options

Both the DC-125 and UD-160-M may also be ordered from our Plugable International Shipping Store with $16.95 via USPS Flat Rate Priority shipping from the USA.

If you’ve never ordered and had an item shipped from the USA before via the US Postal Service, please research the rules in your country. We declare the actual value of all items, so in some countries customs and/or VAT taxes are collected, and all of those are paid by the recipient once the items arrive in country. And also note that while every shipment will have a tracking number, the tracking is generally poor once the item has left the USA.


You can download Fedora 17 here. The default download (GNOME Desktop) and spins derived from it support automatic USB multiseat. KDE and other spins do not.

Install F17 to the hard drive of an available machine. For 3-4 thin clients, you can use a spare older machine – we’d recommend a minimum machine with 2GB RAM and 2 cores or 2 GHz or more. For best performance, use an Core i3/i5 class processor with at least 4GB of DDR3 RAM or more.

Any recent Plugable UD-160-A/M or DC-125 thin client you plug in should automatically pop up a new login.

Comment here or email support@plugable.com if you have any trouble at all – we’d be happy to help! And thanks in advance to the early users who help find issues and spread the word about how cool this technology can be!


The $50 Thin Client

Imagine if you could easily share one computer with a whole class, your whole family, the whole office.

We believe this makes a lot of sense. It saves a lot of time and money. It lowers the environmental impact of computing.

The way we can make this truly compelling is with low cost USB thin clients and zero software licensing fees. So we’ve launched a KickStarter project to try to push this concept over the finish line.

We’d love to have you involved! Visit the Plugable Thin Client on KickStarter to learn more.

And to hear what others are saying, check out:

Plugable USB 2.0 Multiseat Zero Client for Windows Multipoint Server and Fedora Linux (DisplayLink D... Product Details

DisplayLink Linux kernel driver (udlfb) updates slated for 2.6.37

The latest set of patches for udlfb, the Linux kernel framebuffer driver for DisplayLink chips, has been submitted and looks on track for kernel 2.6.37. This will catch the kernel up to everything on http://git.plugable.com/

Linux is a big and constantly shifting platform. With our USB graphics products (and generally for DisplayLink based products, since we try to make them work for all devices), it’s easy to output a few pixels, but configuring a USB display as an X terminal, or certainly for an extended desktop, is still a process on Linux that requires manual xorg.conf editing and is for very advanced users only. But we try to contribute what we can at Plugable, and that has meant focusing on making the kernel driver that actually talks to the hardware and everything else builds on, as solid as possible.

The contributed patches start with this post to the linux driver project list.

To: devel-request@linuxdriverproject.org
[PATCH 0/11] staging: udlfb: patches from udlfb development branch (Bernie Thompson)

This patch series contains all current fixes and features from
the udlfb development branch.

udlfb is a framebuffer driver for DisplayLink USB 2.0 era chips.

Diffstat of this 11 part patch series:

udlfb.c | 989 +++++++++++++++++++++++++++++++++++++++++———————–
udlfb.h | 41 +-
2 files changed, 664 insertions(+), 366 deletions(-)

Major changes:

* Added summary documentation for users of udlfb
* Added logic to query DisplayLink chip for max area mode,
so low-end chips on high-end monitors no longer get black screen
* Added support for DPMS. X servers now control monitor
power with existing standard interface
* Added back in support for char interface (e.g. cat file > /dev/fb0)
* Systems without EDID or with failing EDID can now supply fixed
EDID to sysfs interface, also avoiding black screen
* Fixed big-endian (PowerPC) rendering
* Fixed teardown race conditions that could result in shutdown hang
* Added fb_defio and fb console module options (default off)
* Fixed udlfb’s fb_defio client code so no longer incorrectly shares
state across udlfb device instances – fixes hangs and errant rendering
* Removed IFDEFs for building against older kernels – those will
be retained in the udlfb development branches at git.plugable.com


There have been no additional reported bugs in the last few months,
although there are several wishlist features. Udlfb may be ready
to move out of staging at this point.

Patches are against Linus’ latest 2.6 tree.

Google Summer of Code – USB Multiseat

Plugable is offering mentoring and donated hardware for USB graphics projects that are funded as part of Google Summer of Code 2010. Plugable is working through X.Org as a sponsoring organization.

The main focus is USB multiseat, and the details are on the xorg wiki for SoC 2010

With all the pieces that are just coming together now, there is a potential here to do a project with huge impact, without a massive amount of engineering. There is already a very solid proposal coming from a student in Brazil who has previously been involved with the MDM multiseat project.

Google’s deadline for applications is now just a few days away: April 9th.

If there’s interest from other parties, we’ll get everyone talking – or there are other related proposals that we might be able to get in at the last minute. Foremost among those is conversion of the DisplayLink USB driver udlfb and matching X server from a fbdev driver to the KMS model.

Here’s the basics of the USB multiseat opportunity:

USB Multiseat Refinement

Linux Multiseat setups have potential to significantly reduce the cost of computing, but can be hard to configure. Some progress has been made on USB multiseat, where all components of the “terminal’ (display, keyboard, mouse, and more) are on USB, so configuration can be fully plug and play – you can just assume that all devices on the same USB hub constitute a terminal.

Some early prototypes of this are working (see http://plugable.com/2009/11/16/setting-up-usb-multiseat-with-displaylink-on-linux-gdm-up-to-2-20/). The underlying kernel drivers and X servers are largely in place.

But recent changes to the X Server, ConsoleKit, and other components open the possibility for a cleaner implementation.

This SoC project would constitute the refinement/creation of configuration scripts to enable a standard Linux or *nix computer to automatically launch additional seats when a USB terminal is plugged in

* udev rules to detect hubs/devices which should be collectively treated as terminals
* udev attributes to label the set of devices with a common seat id
* udev triggers for on-demand generation of the appropriate Xorg config files, to allow seats to coexist with the primary display/devices.
* ConsoleKit scripts to launch independent GDM/X sessions for each USB terminal seat
* InputClass rules to cause the primary X session to ignore multiseat-assigned devices, and the appropriate seat to use them
* udev rules and X init scripts to grant access to audio, storage, and other devices to the person logged into the matching seat

The one-sentence goal of this project: To make USB multiseat fully plug and play for the end-user, and ready for any distro to safely and cleanly drop in at any time.

Know any aspiring software engineering students that might be interested? Check SoC info from Google and the SoC guidelines from xorg.