DisplayLink not detected by Xrandr

displaylinkmultiple-monitorsxineramaxorgxrandr

I'm trying to set up an HP DisplayLink USB video adapter on Debian 6 to work aside the notebook's integrated Intel i915 video card. I use a vanilla 3.11.1 kernel in which the options for VGA arbitration, fbdev framebuffer and DisplayLink driver are compiled as built-in (not modules).

The notebook has two monitors:

  • one attached to this DisplayLink USB adapter
  • one attached to i915's VGA port.

The regular monitor hinged on the notebook's lid is physically absent. The picture shows the setup.

Setup

I'd like to use the two monitors to extend the desktop across them and drag windows across. For the moment I've been able to start two independent X sessions on each monitor (DISPLAY :0 and :1) and run an instance of KDE 3.5 on each one, concurrently. This is uncomfortable however, because the monitors remain pretty much isolated from each other (no clipboard sharing, no window dragging, etc).

Xinerama is not an option because it would force all monitors to run at the same color depth and DPI, which is unsuitable for me (the DisplayLink has a color depth of only 16 bits; monitors have different DPI).

xrandr would be the right option to set the monitors up, if it worked. When I query xrandr, I get different answers depending on which of the two monitors xrandr was run from:
(note: in the following snippets, xrandr was executed with an empty /etc/X11/xorg.conf)

# xrandr run on monitor attached to DisplayLink adapter:

davide@RAM:~$ xrandr --listproviders
Providers: number : 0

davide@RAM:~$ xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1440 x 900, current 1440 x 900, maximum 1440 x 900
default connected 1440x900+0+0 0mm x 0mm
   1440x900      60.00*

# xrandr run from monitor attached to notebook's i915 integrated card, via VGA port:

davide@RAM:~$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x43 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 0 name:Intel

davide@RAM:~$ xrandr

Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192
VGA1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 474mm x 296mm
   1680x1050     59.95*+
   1280x1024     75.02    60.02
   1440x900      74.98    59.89
   1280x960      60.00
   1280x800      59.81
   1152x864      75.00
   1152x720      59.97
   1024x768      75.08    60.00
   832x624       74.55
   800x600       75.00    60.32
   640x480       75.00    60.00
   720x400       70.08
TV1 disconnected (normal left inverted right x axis y axis)

The following is my xorg.conf file:

# xorg.conf (X.Org X Window System server configuration file)

Section "ServerLayout"
    Identifier     "Head0"
    Screen      0  "USBout"
EndSection

Section "ServerLayout"
    Identifier     "Head1"
    Screen      0  "VGAout"
EndSection

Section "Device"
    Identifier  "IntelVideo"
    Driver      "intel"
    Option      "Monitor-VGA1"  "BenqSenseyeMonitor"
    Option      "Monitor-LVDS1" "LVDSout"
EndSection

Section "Monitor"
    Identifier  "BenqSenseyeMonitor"
EndSection

Section "Monitor"
    Identifier  "LVDSout"
    Option      "Ignore" "True"
EndSection

Section "Screen"
    Identifier "VGAout"
    Device "IntelVideo"
    Monitor "BenqSenseyeMonitor"
    DefaultDepth 24
    SubSection "Display"
        Modes   "1680x1050"
    EndSubSection
EndSection



Section "Device"
    Identifier  "DisplayLink"
    Driver      "fbdev"
    Option      "fbdev" "/dev/fb1"
EndSection

Section "Monitor"
    Identifier  "AcerV193WMonitor"
EndSection

Section "Screen"
    Identifier "USBout"
    Device "DisplayLink"
    Monitor "AcerV193WMonitor"
    DefaultDepth 16
    SubSection "Display"
        Modes "1440x900"
    EndSubSection
EndSection

Best Answer

There's no Xorg driver in Debian's repositories which allows the DisplayLink adapter to share one X session with my Intel i915 card.

The solution is to load an Xorg driver named displaylink available from Ubuntu's Precise repository, packed as xserver-xorg-video-displaylink. This driver correctly handles Xinerama between the two video cards. Color depth has to be 16 bits for both cards, thought. Video rendering performance is also poor, so some workarounds are required; for eg. VLC is to be instructed to render on CPU.

Related Question