Wie konfiguriere ich unter Linux die Anzeigegeometrie mit mehreren Monitoren auf mehreren GPUs (Intel und nVidia) korrekt?

7

Ich möchte, dass ein Triple-Monitor-Setup korrekt funktioniert.

Mein Setup ist wie folgt:

  • Linux Mint 16 x64
  • Intel Core i5-2500k
  • GeForce GTX 560 Ti Cu II
  • Ein Monitor ganz rechts, der mit dem Motherboard verbunden ist (integrierte Grafik auf dem i5)
  • Ein zentraler Monitor, der an die Grafikkarte angeschlossen ist
  • Ein Monitor ganz links ist mit der Grafikkarte verbunden

Ich benutze die folgende xorg.config

Section "ServerFlags"
    Option "DefaultServerLayout" "PrimaryLayout"
    Option "Xinerama" "off"
EndSection

Section "Module"
    Load "glx"
EndSection

Section "InputDevice"
    Identifier     "Mouse"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    Identifier     "Keyboard"
    Driver         "kbd"
EndSection

Section "Device"
    Identifier "Intel HD Graphics 3000"
    Driver     "intel"
EndSection

Section "Device"
    Identifier     "Geforce GTX 560 Ti"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Screen 0
EndSection

Section "Monitor"
    Identifier "AOC"
    Option "Primary" "true"
EndSection

Section "Monitor"
    Identifier "Samsung"
EndSection

Section "Monitor"
    Identifier "ViewSonic"
EndSection

Section "Screen"
    Identifier "Samsung"
    Device "Intel HD Graphics 3000"
    Monitor "Samsung"
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection

Section "Screen"
    Identifier "AOC"
    Device "Geforce GTX 560 Ti"
    Monitor "AOC"
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection

Section "Screen"
    Identifier "ViewSonic"
    Device "Geforce GTX 560 Ti"
    Monitor "ViewSonic"
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection

Section "ServerLayout"
    Identifier    "PrimaryLayout"
    Screen        "AOC" 0 0 
    Screen        "ViewSonic" LeftOf "AOC"
    Screen        "Samsung" RightOf "AOC"
    InputDevice   "Keyboard" "CoreKeyboard"
    InputDevice   "Mouse" "CorePointer"
EndSection

Section "ServerLayout"
    Identifier "SingleLayout"
    Screen "AOC" 0 0
    InputDevice "Keyboard" "CoreKeyboard"
    InputDevice "Mouse" "CorePointer"
EndSection

Welches hat den folgenden Effekt:

  • Der Monitor ganz rechts funktioniert nicht
  • Der mittlere und der linke Monitor funktionieren wie erwartet

Ein bisschen mehr Infos:

  • Ich bin im Kernel 3.11.0-12-generic
  • Ich verwende die proprietäre Treiberversion von nvidia 331.67
ell
quelle
Haben Sie versucht, /usr/bin/nvidia-settingsfür die X-Server-Konfiguration zu verwenden?
Djhurio
Haben Sie das entsprechende Kernel-Modul für die integrierte Intel-Grafik installiert? @djhurio, nvidia-Einstellungen funktionieren nur mit der nvidia-Karte AFAIK.
Julian Knight
1
@ JulianKnight, GeForce GTX 560 Ti Cu IIist nVidia Karte, nicht wahr ?
Djhurio
2
@djhurio ja es ist aber was ist mit der Intel (Onboard) Grafik. Sie benötigen auch dafür ein Kernel-Modul, wenn Sie es unter X Server verwenden möchten.
Julian Knight
1
Xorg kann mit mehreren Karten umgehen. Definieren Sie einfach einen DEVICE-Bereich für jede Karte. Sie müssen jedoch die entsprechenden Kernel-Module geladen haben.
Julian Knight

Antworten:

2

Als ich die Seile auf Slackware lernte, gab es diese ausgezeichnete Anleitung für Anfänger zum Installieren, Konfigurieren und Warten der Distribution. Es hat sich im Laufe der Jahre etwas geändert, scheint für Debian & Co. nicht relevant zu sein, aber ich denke immer noch, dass das SlackBook ein gutes Stück Einführungsmaterial ist.

Kein (imho fälliges) Urteil zu fällen, aber die Leute scheinen die xorg-Handbücher völlig zu ignorieren. Vielleicht liegt es daran, dass sie glauben, Xorg werde sich "selbst konfigurieren", wie man es unter Windows gewohnt ist. Dies ist nicht immer der Fall und es gibt viele Informationen zum Einrichten eines Dual-Monitors. Ich habe auf dieser Website mindestens zwei ähnliche Fragen zu einem sehr ähnlichen Problem beantwortet.

Auf den Punkt dann;

man xorg.conf

SERVERLAYOUT SECTION
(...)
Screen  screen-num "screen-id" position-information
(...)

Die Details finden Sie in der Manpage. Was Sie wollen, sieht ungefähr so ​​aus:

Section "ServerLayout"
    Identifier      "Three monitors"
    Screen  0       "Screen0" 0 0
    Screen  1       "Screen1" RightOf "Screen0"
    Screen  2       "Screen2" RightOf "Screen1"
EndSection

Checkliste:

  • Bildschirme verwenden die richtigen Geräte- und Monitor-IDs
  • Der Bildschirm hat mindestens einen Unterabschnitt Anzeige mit einer Auflösung und Tiefe
  • Für die verwendeten Geräte werden Treiber geladen

Anmerkungen:

Dual-Head-Grafikkarten (Geräteabschnitt) benötigen möglicherweise spezielle Optionen wie Bus- und Anzeigemodus. ATI-Karten, mit denen die Ausgabe in der Vergangenheit auf beide Köpfe "kopiert" wurde. Dies konnte verhindert werden, indem bestimmte Optionen im Geräteabschnitt übergeben wurden. Verwenden Sie die Handbuchseite des xorg-Treibers.

Mit neueren Versionen von Xorg xrandrkönnen mehrere Monitore konfiguriert, aktiviert und relativ zueinander positioniert werden. Eine xorg.config, die mehrere Monitore konfiguriert, ist nicht unbedingt erforderlich, kann aber bequemer sein.

Ярослав Рахматуллин
quelle