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.
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 asxserver-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.