Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Ideally, I'd like to be able to plug it in, be prompted for apt to get the necessary driver package, and just have to logoff/login or restart to get the monitor connected to the DisplayLink (or any USB display device, e.g. Lilliput) to be a part of my normal desktop, including my other two monitors acting as a single desktop.

What needs to happen in order for this process to be as simple as this?

share|improve this question
    
I would like to know this too. DisplayLink works with a simple driver download on OS X. –  dan Jun 20 '11 at 20:51
add comment

1 Answer

The simple answer is that with the current state of X hotplug, you can't. If you're sufficiently motivated, my (extremely limited) understanding of the stack of work to do is as follows:

  • 1) Test/verify XRandR support in xserver-xorg-video-displaylink
  • 2) Add a udev rule that calls a hotplug activation script
  • 3) Have the activation script initialise the device, and send RROutputChangeNotifyEvent to X
  • 4) Troubleshoot the known issues with receipt of RROutputChangeNotifyEvent that makes it currently only work with certain types of hardware device (something about polling)

Once you get this far, you should be able to attach a displaylink device after X is running, and have it initialised. Precisely how your session deals with the device as a secondary display will be an amusing source of bugs: there's lots of corner cases dealing with very small displays (some common displaylink devices are 800x480 or smaller), or with difficulties allocating sufficient VRAM (displaylink has interesting handling routines for very high-resolution displays).

BUT this isn't really complete, because you'll need to reattach it and reinitialise it each and every time you want to use it. For a richer solution, one needs to enable hotplugging at a deeper level, which can also be used for coldplugging:

  • a) Implement DDC/EDID polling/handling for displaylink
  • b) Implement USB bus polling during X initialisation
  • c) Test/verify XRandR support in xorg-xserver-video-displaylink
  • d) Add udev hints for displaylink devices to tell X how to detect them

Depending on precisely how b) is implemented, this should also cover the hotplug case also, by sending attributes to X in the udev rules (compare to how X input hotplugging support in udev is enabled). An added advantage of this implementation is that it likely also ends up adding support for USB display adaptors that use the sisusb driver (although that would need separate testing).

If you're actually interested in this level of implementation, I strongly advise you to carefully review wiki.x.org, and discuss this with the X developers. Several people have looked at the problem before, but all seem to have become distracted by something else at some time in the process.

If the above is all complete, the user experience should be: Attach a device. Install the driver. Watch it work (no logout/login, no reboot, etc.). Note that the user will not be prompted to install the driver on hardware detect, which is an entirely separate problem, and I think I've gone on long enough in this answer to leave that for another time.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.