У меня есть ноутбук с GeForce GTX 560M, и я использую драйверы nvidia в Ubuntu 11.10 для поддержки второго монитора с twinview, который отлично работает.
Когда я запускаю nvidia-settings и подключаю свой третий монитор (не считая дисплея ноутбука), nvidia-settings зависает на неопределенное время, если я тоже выберу использовать его как twinview. Если я решу отобразить его как отдельный экран X, сохранить настройки и перезапустить, этот параметр никогда не будет применен. Вот Xorg.conf, созданный nvidia при сохранении:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 285.05.09 (buildd@allspice) Wed Nov 16 15:25:12 UTC 2011
# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
#Section "InputDevice"
#
# # generated from default
# Identifier "Mouse0"
# Driver "mouse"
# Option "Protocol" "auto"
# Option "Device" "/dev/psaux"
# Option "Emulate3Buttons" "no"
# Option "ZAxisMapping" "4 5"
#EndSection
# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
#Section "InputDevice"
#
# # generated from default
# Identifier "Keyboard0"
# Driver "kbd"
#EndSection
Section "ServerLayout"
# Keyboard settings are now read from /etc/default/console-setup
# InputDevice "Keyboard0" "CoreKeyboard"
# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
# InputDevice "Mouse0" "CorePointer"
# Removed Option "Xinerama" "0"
# Removed Option "Xinerama" "1"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
# commented out by update-manager, HAL is now used and auto-detects devices
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "LEN"
HorizSync 56.5 - 67.8
VertRefresh 40.0 - 60.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Samsung SyncMaster"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 75.0
Option "DPMS"
# HorizSync source: edid, VertRefresh source: edid
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 560M"
Option "NoLogo" "True"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 560M"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Screen"
# Removed Option "metamodes" "DFP-0: nvidia-auto-select +0+0"
# Removed Option "metamodes" "DFP-0: nvidia-auto-select +0+0, DFP-2: nvidia-auto-select +1920+0"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "1"
Option "TwinViewXineramaInfoOrder" "DFP-0"
Option "metamodes" "DFP-0: 1920x1080 +0+0, DFP-2: 1680x1050 +1920+0; DFP-0: 1920x1080 +0+0, DFP-2: NULL"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
# Removed Option "metamodes" "DFP-2: nvidia-auto-select +0+0"
# Removed Option "metamodes" "DFP-1: nvidia-auto-select +0+0"
# Removed Option "metamodes" "DFP-1: 1680x1050 +0+0"
# Removed Option "metamodes" "DFP-1: nvidia-auto-select +0+0"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP-1: 1680x1050_60 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Extensions"
Option "Composite" "Disable"
EndSection
Я не очень удобен с X config. Я что-то не так делаю?
По моему опыту, более 2 мониторов не очень хорошо поддерживаются инструментами с графическим интерфейсом. Третий монитор можно настроить вручную в xorg.conf, но не будет изящного поведения plug-n-play. Вам потребуется дополнительный раздел Device, Screen и Monitor, чтобы включить третий монитор, затем добавьте Screen в раздел ServerLayout. Вот мой рабочий четырехэкранный xorg.conf
в качестве примера:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen1" 0 0
Screen 1 "Screen2" LeftOf "Screen1"
Screen 2 "Screen3" LeftOf "Screen2"
Screen 3 "Screen4" LeftOf "Screen3"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Samsung"
ModelName "Samsung ??"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 60.0
EndSection
Section "Monitor"
Identifier "Monitor2"
VendorName "Unknown"
ModelName "Samsung SyncMaster"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 75.0
EndSection
Section "Monitor"
Identifier "Monitor3"
VendorName "Unknown"
ModelName "Samsung SyncMaster"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 60.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor4"
VendorName "Unknown"
ModelName "WestingHouse"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 60.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device2"
Driver "nvidia"
VendorName "NVIDIA Corporation"
#BoardName "GeForce 8800 GTS"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Device"
Identifier "Device3"
Driver "nvidia"
VendorName "NVIDIA Corporation"
#BoardName "GeForce 9500 GT"
BusID "PCI:2:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device4"
Driver "nvidia"
VendorName "NVIDIA Corporation"
#BoardName "GeForce 9500 GT"
BusID "PCI:2:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
EndSection
Section "Screen"
Identifier "Screen2"
Device "Device2"
Monitor "Monitor2"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen3"
Device "Device3"
Monitor "Monitor3"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen4"
Device "Device4"
Monitor "Monitor4"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Я не вижу ни одного третьего монитора в вашем файле xorg.conf, может быть, попробуйте добавить его? (прежде чем что-либо делать, скопируйте файл xorg.conf
sudo cp xorg.conf xorg.conf.old)
, вставьте это:
Section "Monitor" Identifier "Monitor2" VendorName "Unknown" ModelName "Samsung SyncMaster" HorizSync 30.0 - 81.0 VertRefresh 56.0 - 75.0 Option "DPMS" # HorizSync source: edid, VertRefresh source: edid EndSection Section "Screen" Identifier "Screen2" Device "Device0" #or "Device1" depends to which is monitor connected Monitor "Monitor2" DefaultDepth 24 Option "TwinView" "1" Option "TwinViewXineramaInfoOrder" "DFP-0" Option "metamodes" "DFP-0: 1920x1080 +0+0, DFP-2: 1680x1050 +1920+0; DFP-0: 1920x1080 +0+0, DFP-2: NULL" SubSection "Display" Depth 24 EndSubSection EndSection
и измените раздел макета вашего сервера:
Section "ServerLayout"
# Keyboard settings are now read from /etc/default/console-setup
# InputDevice "Keyboard0" "CoreKeyboard"
# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
# InputDevice "Mouse0" "CorePointer"
# Removed Option "Xinerama" "0"
# Removed Option "Xinerama" "1"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" RightOf "Screen1" #only this line is edited
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
# commented out by update-manager, HAL is now used and auto-detects devices
EndSection
Запомните, где Ваш файл xorg.conf есть, и если что-то пойдет не так после перезагрузки, замените отредактированное старым. (
sudo mv xorg.conf.old xorg.conf)