Dual Screen on Linux (Ubuntu 10.10)

I have a UGA-2K-A device and I’m trying to get it to work as a dual screen setup. Right now I have dual screen but the main is the usb one and not the internal one (intel), and there are like different windows, can’t drag an drop windows between the screens (separate X), currently I’m using the displaylink driver, I’ve tried with the fbdev but then it’s just the usb connected one that works.
What I would like is to get a setup like one big screen where I can drag and drop the windows around, like I would get with Windows. Any suggestion?

Thanks for posting!

Yes, unfortunately, Linux’s support for multiple monitors spanning different devices is poor, even though the basic support for talking to the hardware (the kernel framebuffer driver) is there. So independent X instances on each graphics device (as you have running) will work well, but extended desktop ala Windows is often problematic.

That said, it can often be made to work in certain distros with certain hardware combinations. In particular, for your combination of Ubuntu 10.10 and Intel GPU, here’s a thread that ends with a user getting an xorg.conf that works (with a few limitations) for them:

http://ubuntuforums.org/showthread.ph…

If you give this a shot, it’d be great to hear whether following that template worked for you.

In the long term, to make things approach the ease of Windows, there are a few problems:

  1. For a long time, the only way to span displays has been with the X Xinerama extension. Unfortunately, the community expected to deprecate and replace Xinerama, but that never happened. So it’s somewhat frozen progress as people haven’t invested in Xinerama, yet the expected “new thing” hasn’t materialized. The wikipedia page for Xinerama pretty much has the story: http://en.wikipedia.org/wiki/Xinerama
  2. Additional assumptions that all GPUs are on the PCI bus have crept into the X code, as people have tried to improve auto-configuration. So that needs cleaned up, and then on the positive side with additional X use of udev, we need to add the ability for USB graphics to auto-config into X.
  3. The new DRM/KMS system used by the latest Intel/nVidia/ATI drivers has created problems running alongside other framebuffer devices which needs to be resolved.

I don’t have answers for how the big picture issues will get solved. So from a Plugable Technologies perspective we’re trying to make progress in two ways:

  1. Improve the udlfb driver, so when these higher-level issues get resolved, the actual driver which talks to the device will be ready. You can get the project history at http://plugable.com/category/project/…
  2. Offer our hardware to owners of the key Linux components, in hopes that the issues (especially the more solvable ones like #2 and #3) will get worked on. We’ve recently sent Plugable devices to Dave Arlie (DRM maintainer) and Paul Mundt (fbdev maintainer), and Bryce Harrington (Canonical’s principal X leader) already has some DisplayLink devices. And we be happy to send additional hardware to any other active code contributors (visit http://plugable.com/2010/09/16/plugab… for details)

That said, it also really helps to get more users doing what you’re doing – trying to get it working, starting discussions and filing bugs, so the USB graphics case rises on people’s radar.

So thanks for your interest, and sorry the answer on Linux isn’t simpler!

Best wishes,
Bernie

I tried the link and I got it to work on dual monitor with xinerama. So now my setup is:

intel LCD - ignore
intel VGA - left monitor (22 inch)
displaylink DVI - right monitor (22 inch)

The problem I have with the setup is that the gnome panels will appear on the right monitor (displaylink) as it’s defined as Screen 0 I guess, is there a way to change this so that the displaylink gets the screen 1 and still works?

The only problem I had so far was with Skype, it makes the X server crash when I have it in dual monitor mode or clone mode - when I start without the displaylink and dual monitor it works fine.

Besides of this I had several times to make a hard reboot of the system as it got completely stuck when trying the different configs.

Another question, why is there the 16 bit limitation when running it with xinerama?

Thanks,

Florian

Hi Florian,

Thanks for posting your results.

The Gnome limitation of opening on screen 0 is expected as far as I know. And I don’t know the cause of the why the USB screen must be 0.

The Skype problem appears to be known with all QT apps and Xinerama
Here’s the LaunchPad bug: https://bugs.launchpad.net/ubuntu/+so…

Xinerama requires a reboot (or at least restart of X) every time something about X changes - it’s not at all dynamic. A lot of the goal of RandR is dynamic configuration, and that’s the reason why the community has wanted to deprecate Xinerama and add equivalent functionality to RandR. But unfortunately, that doesn’t appear to be progressing

udlfb currently supports 16bpp only, and Xinerama requires that all displays be at the same bit depth.

Best wishes,
Bernie

Hi Bernie,

So far, I have fixed the problem with the Xinerama by patching the xserver-xorg, so problem with Qt applications is fixed.

Now I only have the small issue with Gnome, that it shows the main menu panels on the second screen instead of the first, but the think is that if I don’t specify the displaylink as the Screen 0 it won’t display anything on it, looks like it doesn’t recognise it.

Also, I’m using the displaylink driver, not the udlfb because with it I doesn’t work in my current setup, even so I downloaded and installed the latest kernel driver and fbdev. Any idea when it’s gonna be possible to use 24 (32) instead of 16?

Thank you very much for your help so far, kind regards,

Florian

Just fixed the issue with Gnome via gconf-editor > apps > panel > toplevels and changing the monitor for each of the panels to 1 instead 0.

Now it would be great to have 24 bit depth… :slight_smile:

Hi Florian,

Thanks so much for posting the notes that the existing QT patches out there fixed the Skype issue with Xinerama, and the Gnome config change to get panels where you want them.

Pseudo 24 or 32 bit support (so Xinerama can be configured without setting bit depth to 16) is on the todo list. On 24 vs 32 - It’s not actually clear which of the two will result in Xinerama working across udlfb + intel/nvidia/ati X servers. If you find a clear answer, that would actually be a help in clarifying exactly what needs done (and so it will get done faster).

Right now, getting udlfb promoted from staging to mainline is the only work that’s higher on the todo list than 24/32bpp support, and that needs to get done in the next month or so, to make the 2.6.38 kernel.

Best wishes,
Bernie

Hi Florian, Would you mind posting your xorg.conf? Thanks a lot!

hi,

I am using ubuntu 11.04, with 2.6.38 kernel. i have configured a “DisplayLinkDevice”, with 2 monitors. by doing some patches on xorg.conf file, now am getting GUI in both monitors.

also, am getting mouse, and keyborad in both.

Bt i can’t drag a window to the other side.

could you please help me to trsolve this issue?

Hi Justin,

Unfortunately, you’re starting to get into the territory of things that can get difficult on Linux today.

To do that, the only way to do that on Linux is to use an extension called Xinerama across all displays, at the same bit depth (16bpp), with the DisplayLink screen as Screen 0.

Sometimes the X and main GPU driver is happy with that, sometimes it isn’t (results vary across versions).

This post is a little old, but here’s one experience: http://lists.freedesktop.org/archives…

And you can find others by searching “Xinerama” and “DisplayLink”

Best wishes,
Bernie

hi,
Dragging windows b/w monitors is working fine with my HP laptop. i think it is working fine in laptop because, its sharing a single framebuffer, But when i connecting a external displaylink device, it assigns a new framebuffer for it. so draging among monitors is not possible.

could you please comment on this??

also, i have one doubt, if this is the actual problem in linux, how its working fine with Win 7??

is there any diffreneces in Framebuffer b/w Windows 7 and Ubuntu??

please answer for my doubts. :slight_smile:

Thanks,

Justin Jose

Hi Justin,

Thanks for asking. Yes, you’re right - the graphics stack on Windows and Linux are completely different. What’s plug and play on Windows can require a lot of work on Linux.

Unfortunately, Linux doesn’t have the same support for spanning multiple graphics adapters that Windows has. Even running multiple adapters of the same type has tough complexities (e.g. http://www.linuxquestions.org/questio…).

And mixing PCI and USB adapters runs into additional troubles.

On top of that, there are a lot of version troubles on Linux - the graphics subsystem changes often, so you can google for setups that worked in the past, but they don’t work today.

Unfortunately, this all adds up to a situation where multiple monitors (as is normal on Windows), just isn’t easy enough for mere mortal users on Linux. We can’t recommend any products for it.

Sorry for the bad news. Hope that helps avoid frustration, though.

Thanks for asking!
Bernie

When I used the displaylink device I got it to work the same way as you get it with a graphic card with two heads, I had also a script to change between single mode with true bit and the dual setup but 16 bit, sadly I lost the config when I installed the laptop again, forgot to make a backup of the config files. Thing is that I’m using nowadays a docking station that provides me with 2 DVI output.

Still would be nice to hear that the device works with 24/32 bit on Linux :slight_smile: maybe I buy a second screen then for home.

Cheers,

Florian