9 USB displays illuminate energy security

Posted on 26. Jan, 2010 by Bernie Thompson in udlfb

Here’s a great application for USB displays.

Hal Glenn from 2G Engineering has created an information display (on energy security and alternative methods of energy generation) with 9 USB touch screens, all running off a single Mac Mini running Ubuntu 9.10. And all using the available open source DisplayLink drivers and scripts and info at displaylink.org.

Doing this without USB displays would

  • Require a big desktop box to support several PCIe graphics cards
  • Would have triple the cords – Hal’s setup runs a single USB cable to each display. With VGA, you’d still need the USB cable (for touch function), but then would also need VGA and power to each!
  • Would consume much more power – which would be kind of embarrassing for an energy security display, wouldn’t it?

Hal’s setup builds on and extends some of the USB terminal scripts demoed during this talk at Linux Plumbers Conference 2009.

There are several reasons why this demo is easiest on Linux, one of which is by default, DisplayLink devices are limited to 6 displays on Windows and Mac. The Linux drivers have no limit, so you can connect as many displays as you like — keeping in mind you’re sharing a 480Mbs bus (that itself has a 127 device limit). But it is enough for the apps Hal is running on those nine 800×480 touchscreens.

It will be interesting to see how many screens people get up to for various applications.

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.

2020: The past decade of ambient computing

Posted on 01. Jan, 2010 by Bernie Thompson in Other

It’s Jan 1, 2020.

Ten years ago we were at the end of the “computer on every desk and in every home” era. The iPhone had begun moving computing off the desk and into the pocket. The most important application was the web browser for content, but operating systems still mattered for running applications.

Ten years later, we’re simply reaching the conclusions of some of those trends–the web browser is where nearly all applications live. An explosion of devices and user interface types running over invisible operating systems have emerged to make those applications accessible in different ways, more transparently integrated with our lives.

We’ve learned to live with the risks and benefits of keeping our data in the cloud, so any display anywhere–with touchscreen, keyboard/mouse, or voice for input–is our own personal computer.

The average family has a display in our kitchen. Continuous voice recognition is again a challenge for the next decade, but discrete voice recognition is ubiquitous. An idle mention of “weather” in a kitchen conversation triggers the display on the wall to show the forecast for coming days.

The phone in our pocket is also a primary computing device. We dock it at our desk to gain a large display, keyboard, mouse, speakers, etc. But all that is stateless. When we unplug and go, we have everything — again, most of which is in the cloud anyway.

A picture is worth a thousand words, and we have access to a lot of pictures.

Displays are everywhere, especially in our urban settings, perhaps overwhelmingly so. Whether signage for a particular store, a billboard, or a public terminal, they’re showing active, context-aware content.

At work, multiple displays are the norm for information workers. Any remaining conference rooms without multiple displays, multiple web cams, and smart integration between them are frustratingly crippled.

And all these displays and terminals are being driven by far fewer “computers”–often just one per house or room, or increasingly one off in a server farm. Perhaps the greatest innovation of the past decade has been a subtle one–we spend less time keeping our computers working, as we have fewer of them. We’ve pushed more of the complexity to fixed-function devices, online services, and computers that are remotely maintained.

Even as our computers have become even more essential to driving our great strides in genetics, materials, collaborative creativity, etc., computing has begun to disappear into the background of our consciousness. More ubiquitous, but explicitly on the mind less often.

And still, the more things change the more they stay the same. The singularity is always a few decades away, and so it is again for the decade ahead.

Page 11 of 18« First...910111213...Last »