Esta respuesta corresponde a Ubuntu 11.04 con una tarjeta gráfica ATI radeon y el adaptador de pantalla USB Diamond DisplayLink BVU-195.
Finalmente lo conseguí trabajando para tres monitores. Tengo una tarjeta ATI radeon con 1 DVI y 2 salidas DisplayPort (pero solo puede usar dos a la vez) y 1 adaptador USB Diamond DisplayLink BVU 195.
Tiene que instalar el controlador de displaylink. Luego tiene que escribir su propio archivo xorg.conf.
sudo apt-get install xserver-xorg-video-displaylink
Aquí hay tres puntos cruciales.
Quiero poder mover ventanas entre pantallas. Eso significa que no puedo usar xrandr. En cambio, tengo que habilitar algo llamado Xinerama. Si utiliza la opción predeterminada "xrandr", solo el cursor del mouse puede moverse entre pantallas y los programas no. ¡No muy usable! Entonces Xinerama es una necesidad.
Al configurar el controlador ATI radeon, la pantalla se bloquea como clonada en los dos monitores que usa, a menos que especifique la opción "ZaphodHeads". Las opciones válidas en mi tarjeta son "DVI-0" y "DisplayPort-0" o "DisplayPort-1".
Debe configurar todos los monitores como 16 bits. Si mantiene el valor predeterminado de 24 bits, el servidor X falla.
Solo obtengo pantallas en blanco si el monitor USB está enchufado cuando inicio. Tengo que arrancar con él desenchufado, enchufarlo y luego iniciar sesión solo cuando la pantalla USB se vuelve verde.
Aquí está mi xorg.conf, que coloqué en /etc/X11/xorg.conf. El monitor USB Displaylink es Screen0, y el monitor DVI conectado a la tarjeta ATI es Screen1, y el monitor DisplayPort también conectado a la tarjeta ATI a través de un adaptador es 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