UD-160-A automatic driver download and install via Windows Update
Posted on 21. Feb, 2010 by Bernie Thompson in Windows
Here’s the result when you connect the Plugable UD-160-A universal laptop docking station to a completely fresh Windows 7 system:
- Windows automatically finds, downloads, and installs drivers for all the devices on the dock — the built-in USB C-Media audio, ASIX ethernet, DisplayLink graphics functions are all supported.
- *NO* driver disks to find, no web addresses to enter, nothing – you get the latest drivers automatically.
- This will work with the Plugable dock and any Windows 7 machine, now and in the future.
If you have Windows Update enabled on Vista and Windows XP – the story is the same (although Microsoft’s UI looks different on each OS). So go ahead, lose your driver disks — just get that off your mind. You won’t need them. Cool.
Preparing more udlfb patches for linux-next
Posted on 12. Feb, 2010 by Bernie Thompson in udlfb
There are limits on how much a small device company can and should do in contributing to open source driver support. But with a historical connection to DisplayLink and more products coming with the technology included, contributing what we can to the generic DisplayLink driver on Linux makes some sense.
Also note this driver is just a foundation on which other stuff (like X) sits, so it doesn’t mean Linux is easy for real end users yet. But it’s getting closer.
Here’s the announce that went to the list today:
The next patch series for udlfb is “nearly ready” for submission, hopefully will be coming in the next few days.
Testing and any problem reports would be helpful. The code that will be submitted is at http://git.plugable.com/gitphp/index.php?p=udlfb&a=summary
There are many dozens of checkins in git as inter-related problems have been explored and the code incrementally improved. Before submitting, I’ll be reconstituting them into a smaller number of more analyzable email patches: make everything checkpatch.pl clean, reorganize things to match final layout, then per-feature patches. We’ll see how that goes.
Major features:
* Support for standard fbdev clients (via defio)
* Improved performance (about 20% average improvement over a variety of “benchmarks” like x11perf, gtkperf, glxgears)
* Asynchronous urb dispatch and no mutexes held for extended periods during render
* Slightly lower CPU consumption, less touching memory, slightly higher average compression
* Better handling of switching from X to fbcon VTs and back
* Driver should unload cleanly from either bottom-up (USB removal) or top-down (shutdown). Problem reports welcome.
* Performance metrics reported through sysfs (read /sys/class/graphics/fbX/*metrics*)
* EDID reported through sysfs (read /sys/class/graphics/graphics/fbX/edid)
* Can compile as module with or without defio or sys_ dependencies
* Lots of cleanup – tested on 64-bit, closer to endian clean, checkpatch.pl clean
What it does not have:
* The defio rendering problems (e.g. with xf86-video-fbdev X server) are still unsolved
* Still 16bpp only. Pseudo-truecolor 32->16 is on the wishlist.
* No DL 1×5 SKU detection yet (you’ll get a blank screen if your monitor’s res exceeds the adapter)
Linux USB multiseat audio support
Posted on 20. Jan, 2010 by Bernie Thompson in udlfb
Here’s how to add audio support on top of the previous instructions for getting USB multiseat running on Linux, with a Plugable UD-160-A type device.
Add the following line to the bottom of the /lib/udev/rules.d/50-usbseat.rules file created per the previous instructions.
KERNEL=="control*", SUBSYSTEM=="sound", SUBSYSTEMS=="usb", PROGRAM="/bin/cat /sys/%p/../../../../../devnum", SYMLINK+="usbseat/%c/sound"
Then create a new /etc/X11/Xsession.d/50usbseat file which will be run at Xsession create time, with the following contents
oldIFS=$IFS IFS=: set $DISPLAY IFS=. set $2 SEAT_ID=$1 LN=`ls -al /dev/usbseat/$SEAT_ID/sound` IFS=C set $LN CARD_ID=$2 export ALSA_CARD=$2 export ALSA_PCM_CARD=$2 IFS=$oldIFS
Each of the users who might need access to the USB devices needs to be added to the ‘audio’ group. On Ubuntu 9.04, this can be done with these commands to backup and then modify the groups (replace MY_USERNAME, of course) …
sudo cp /etc/group /etc/group_backup sudo chmod a-wx /etc/group_backup sudo adduser MY_USERNAME audio
See Ubuntu Sound TroubleShooting for details on that step.
Now, as you connect UD-160-A terminals, a new X instance and GDM login will pop up as before, but also each of them will have /dev/usbseat/%SEAT_ID%/sound linking to their sound device, and the ALSA_CARD environment variable for all processes off of that X session, set to the matching sound card ID. For apps which support ALSA/Pulse (like most browsers, flash, etc.), audio will now come out the correct terminal — all in a completely plug-and-play fashion.
If you’re wondering what the strange IFS stuff is in the above script, it’s bash’s built-in Internal Field Separator variable, which is an easy way to split strings without having to launch a separate sed or awk process.
Note, as before, these instructions are specific to and tested on an older version of Ubuntu: 9.04, and may need to be ported to other distros until the distros themselves integrate these scripts.
Thanks to Alexander Todorov’s earlier work on multiseat sound support, which demonstrated how to match the USB audio devices in udev, and which ALSA_ environment variables to set. Alexander reported some problems reliably matching the audio devices, but with these scripts (with limited testing so far), things are working as expected.

Recent Comments