How do I use a DisplayLink monitor?
I'm trying to connect an external monitor to my laptop via a DisplayLink USB adapter. When I plug in the USB cable, the screen turns bright green. This apparently indicates that the udflib displaylink driver is installed, and has detected the USB driver (according to http://libdlo.freedesktop.org/wiki/displaylink-mod).
All of the instructions I've read on how to configure displaylink with ubuntu involve manually editing the xorg.conf file, but it seems like Ubuntu 11.04 with Unity handles xorg.conf differently. From what I can tell, it either does not use it or places it in a different location.
Has anyone been able to get a displaylink-powered monitor working on 11.04?
Solution 1:
This answer pertains to Ubuntu 11.04 with an ATI radeon graphics card, and the Diamond DisplayLink BVU-195 USB display adapter.
I finally got it working for three monitors. I have an ATI radeon card with 1 DVI and 2 DisplayPort outputs (but you can only use two at once) and 1 Diamond DisplayLink BVU 195 USB adaptor.
You have to install the displaylink driver. Then you have to write your own xorg.conf file.
sudo apt-get install xserver-xorg-video-displaylink
Here are three crucial points.
I want to be able to move windows between displays. That means that I cannot use xrandr. Instead, i have to enable something called Xinerama. If you use the default "xrandr" option, then only the mouse cursor can move between displays, and programs cannot. Not very usuable! So Xinerama is a necessity.
When configuring the ATI radeon driver, the display is stuck as cloned across the two monitors that it uses, unless you specify the "ZaphodHeads" option. Valid options on my card are "DVI-0" and "DisplayPort-0" or "DisplayPort-1".
You have to configure all monitors as 16 bit. If you stick with the default 24 bit, the X server crashes.
I only get blank screens if the USB monitor is plugged in when I boot. I have to boot with it unplugged, plug it in, then log in only when the USB screen turns green.
Here is my xorg.conf, which I placed in /etc/X11/xorg.conf. The USB displaylink monitor is Screen0, and the DVI monitor connected to the ATI card is Screen1, and the DisplayPort monitor also connected to the ATI card via an adaptor is Screen2.
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" RightOf "Screen1"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Option "Xinerama" "on"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "built-ins"
EndSection
Section "Module"
Load "dri"
Load "record"
Load "extmod"
Load "dri2"
Load "dbe"
Load "glx"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Monitor"
Identifier "Monitor2"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Device"
Identifier "DisplayLinkDevice"
driver "displaylink"
Option "fbdev" "/dev/fb1"
EndSection
Section "Device"
Identifier "Card0"
Driver "radeon"
BusID "PCI:1:0:0"
Screen 0
Option "ZaphodHeads" "DVI-0"
EndSection
Section "Device"
Identifier "Card1"
Driver "radeon"
BusID "PCI:1:0:0"
Screen 1
Option "ZaphodHeads" "DisplayPort-1"
EndSection
Section "Screen"
Identifier "Screen0"
Device "DisplayLinkDevice"
Monitor "Monitor2"
DefaultDepth 16
EndSection
Section "Screen"
Identifier "Screen1"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 16
EndSection
Section "Screen"
Identifier "Screen2"
Device "Card1"
Monitor "Monitor1"
DefaultDepth 16
EndSection
Solution 2:
I got something working on Natty on a laptop with an Intel GPU. Xinerama has to be off, and the displaylink has to be the primary screen, or the driver gets unloaded on startup. The Intel was driving two screens and the displaylink was the third.
I say I got 'something' working because I only got 2D (no Unity) and, more importantly, I couldn't move the mouse between the displaylink screen and the others (it was stuck in whichever one it started in). My menus and everything were still on the laptop screen.
Natty is fine if you use an /etc/X11/xorg.conf file, it's just that it doesn't need it for most cases as X autodetects lots of things these days. This was in mine:
Section "ServerLayout"
Identifier "Layout0"
Screen "DisplayLinkScreen"
Screen "Screen0" LeftOf "Screen0"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 73.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "intel"
VendorName "onboard"
BusID "PCI:00:02:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
############### DisplayLink Stuff ###############
Section "Device"
Identifier "DisplayLinkDevice"
driver "displaylink"
Option "fbdev" "/dev/fb1"
EndSection
Section "Monitor"
Identifier "DisplayLinkMonitor"
EndSection
Section "Screen"
Identifier "DisplayLinkScreen"
Device "DisplayLinkDevice"
Monitor "DisplayLinkMonitor"
SubSection "Display"
Depth 24
Modes "1680x1050"
EndSubSection
EndSection
Solution 3:
I can get the DisplayLink attached monitor to work fine by putting a 52-displaylink.conf
file in /usr/share/X11/xorg.conf.d
. But X is only running on the DisplayLink attached monitor. The direct attached monitor shows all the boot and shutdown messages. I would like to use both monitors when available and the attached monitor when the DisplayLink monitor is not.
My 52-displaylink.conf file:
Section "Device"
Identifier "DisplayLinkDevice"
driver "displaylink"
Option "fbdev" "/dev/fb0" # or /dev/fb1 depending on the results of dmesg
EndSection
Section "Monitor"
Identifier "DisplayLinkMonitor"
EndSection
Section "Screen"
Identifier "DisplayLinkScreen"
Device "DisplayLinkDevice"
Monitor "DisplayLinkMonitor"
SubSection "Display"
Depth 24<br>
Modes "1920x1080"
EndSubSection
EndSection