Esta resposta refere-se ao Ubuntu 11.04 com uma placa de vídeo ATI radeon e o adaptador de vídeo Diamond DisplayLink BVU-195 USB.
Finalmente consegui trabalhar com três monitores. Eu tenho uma placa ATI radeon com 1 saída DVI e 2 DisplayPort (mas você só pode usar duas de uma vez) e 1 adaptador Diamond DisplayLink BVU 195 USB.
Você precisa instalar o driver do displaylink. Então você deve escrever seu próprio arquivo xorg.conf.
sudo apt-get install xserver-xorg-video-displaylink
Aqui estão três pontos cruciais.
Quero poder mover janelas entre monitores. Isso significa que não posso usar o xrandr. Em vez disso, tenho que ativar algo chamado Xinerama. Se você usar a opção "xrandr" padrão, somente o cursor do mouse poderá se mover entre os monitores, e os programas não. Não é muito usuável! Então Xinerama é uma necessidade.
Ao configurar o driver ATI radeon, a tela fica presa conforme clonada nos dois monitores que ele usa, a menos que você especifique a opção "ZaphodHeads". As opções válidas no meu cartão são "DVI-0" e "DisplayPort-0" ou "DisplayPort-1".
Você precisa configurar todos os monitores como 16 bits. Se você seguir os 24 bits padrão, o servidor X trava.
Só recebo telas em branco se o monitor USB estiver conectado quando inicializo. Tenho que inicializá-lo desconectado, conecte-o e efetue login apenas quando a tela USB ficar verde.
Aqui está o meu xorg.conf, que eu coloquei no /etc/X11/xorg.conf. O monitor USB do link de exibição é Screen0, e o monitor DVI conectado à placa ATI é Screen1, e o monitor DisplayPort também conectado à placa ATI através de um adaptador é 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