Ця відповідь стосується Ubuntu 11.04 з графічною карткою ATI radeon та адаптером USB-дисплея Diamond DisplayLink BVU-195.
Зрештою, я працював на трьох моніторах. У мене є карта ATI radeon з 1 виходом DVI і 2 DisplayPort (але ви можете використовувати відразу два) і 1 USB-адаптер Diamond DisplayLink BVU 195.
Ви повинні встановити драйвер showylink. Тоді вам слід написати власний файл xorg.conf.
sudo apt-get install xserver-xorg-video-displaylink
Ось три найважливіші моменти.
Я хочу мати можливість переміщати вікна між дисплеями. Це означає, що я не можу використовувати xrandr. Натомість я повинен увімкнути щось, що називається Xinerama. Якщо ви використовуєте параметр "xrandr" за замовчуванням, то лише курсор миші може переміщатися між дисплеями, а програми не можуть. Не дуже корисний! Отже, Xinerama - необхідність.
Під час налаштування драйвера ATI radeon дисплей застібається як клонований на двох використовуваних ним моніторах, якщо не вказати параметр "ZaphodHeads". Дійсні параметри моєї картки - "DVI-0" і "DisplayPort-0" або "DisplayPort-1".
Ви повинні налаштувати всі монітори як 16-бітні. Якщо ви дотримуєтесь 24-бітного за замовчуванням, сервер X виходить з ладу.
Порожні екрани я отримую лише в тому випадку, якщо під час завантаження підключений USB-монітор. Мені доведеться завантажувати його відключеним від мережі, підключити його, а потім увійти, лише коли екран USB стане зеленим.
Ось мій xorg.conf, який я розмістив у /etc/X11/xorg.conf. Монітором USB-дисплея є Screen0, а DVI-монітором, підключеним до картки ATI, є Screen1, а монітор DisplayPort, також підключений до картки ATI через адаптер, є 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