Wir möchten 3 Bildschirme mit einem integrierten Intel-Grafikadapter und einer NVIDIA-Karte einrichten.
Beide Karten werden in lspci erkannt
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2) 00:02.0 Display controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
Und grundsätzlich funktioniert:Wenn ich auf die Konsole wechsle, sehe ich Ausgaben auf der Intel-Karte,
X läuft nur auf der Nvidia-Karte.
Aber wenn ich xrandr | grep conn
Ich bekomme nur einen verbundenen Port:
DVI-I-0 disconnected (normal left inverted right x axis y axis) VGA-0 disconnected (normal left inverted right x axis y axis) DVI-I-1 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm HDMI-0 disconnected (normal left inverted right x axis y axis)
Ich verwende Ubuntu 12.10 (und XFCE) und habe den proprietären nvidia-Treiber installiert.
Ich ging davon aus, dass X vielleicht ein Problem hat, beide Karten automatisch zu erkennen, also dachte ich an die folgende xorg.conf
könnte helfen:
Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" Screen 1 "Screen1" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" 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 "Monitor0" VendorName "Unknown" ModelName "Unknown" HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0 Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 210" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection Section "Monitor" Identifier "Monitor1" VendorName "Unknown" ModelName "Unknown" HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0 Option "DPMS" EndSection Section "Device" Identifier "Device1" Driver "intel" VendorName "Intel" BoardName "Internal Intel Graphics" EndSection Section "Screen" Identifier "Screen1" Device "Device1" Monitor "Monitor1" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection
Aber es funktioniert immer noch nicht.
- Ist es generell möglich, zwei verschiedene Treiber in X zu verwenden?
- Ist es notwendig, eine
xorg.conf
zu erstellen dann manuell? (weil Ubuntu 12.10 normalerweise ohne diexorg.conf
funktioniert ) - Gibt es irgendwelche Fehler in meiner
xorg.conf
?
Akzeptierte Antwort:
Ja, X kann mehrere Treiber verwenden. Deine ist ein sehr ähnliches Setup wie das, was ich habe. Ich habe eine NVIDIA 9800 GT mit zwei angeschlossenen Monitoren und eine Intel-Karte der 2. Generation mit einem einzigen Monitor.
Ich sehe keine Probleme mit Ihrer xorg.conf
. Ich vermute, dass Sie eine xorg.conf
erstellen müssen nur um X anzuweisen, sowohl NVIDIA- als auch Intel-Treiber zu verwenden. Meine xorg.conf
sieht deinem sehr ähnlich; Ich habe drei Monitor- und Bildschirmabschnitte, weil die NVIDIA-Karte zwei Monitore hat, aber ich bin mir ziemlich sicher, dass X diese Abschnitte ignoriert.
Zuerst sollten Sie sicherstellen, dass xinerama in xorg.conf
deaktiviert ist (vielleicht nicht notwendig).
xorg.conf
:
Section "ServerFlags"
Option "xinerama" "off"
EndSection
Wenn Sie xrandr --listproviders
ausführen Sie sollten beide Karten sehen.
[email protected]> xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x290 cap: 0x1, Source Output crtcs: 2 outputs: 5 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x48 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 6 associated providers: 1 name:Intel
Wenn Sie nicht beide Karten sehen, fehlt Ihnen wahrscheinlich ein Treiber. (Aber OP sagt, die Konsole verwendet eine und X die andere, also funktionieren wahrscheinlich beide)
Verwandte:Ubuntu 14.04 Bildschirmauflösung zu niedrig (SiS 671 Grafikkarte)?
Sie sollten xrandr --setprovideroutputsource
verwenden können , um die Intel-Ports zur Liste hinzuzufügen, die von Ihrem xrandr | grep conn
In meinem Fall verwende ich die von --listproviders
angegebenen Namen :
xrandr --setprovideroutputsource Intel NVIDIA-0
Wenn die Intel-Ports dadurch nicht hinzugefügt werden, ist es möglicherweise bereits so verbunden, dass Sie es nicht sehen können. Trennen Sie es mit:
xrandr --setprovideroutputsource Intel 0x0
Versuchen Sie dann erneut, eine Verbindung herzustellen:
xrandr --setprovideroutputsource Intel NVIDIA-0
Alle Ausgabeports sollten jetzt angezeigt werden. Und Sie sollten in der Lage sein, eine Anzeige mit den Gnome-Anzeigeeinstellungen oder mit xrandr
hinzuzufügen .
Als ich endlich mein Intel-Display zum Laufen brachte, entschieden die NVIDIA-Displays, dass sie schwenken mussten, als ich versuchte, die Maus zum dritten Display zu bewegen. Es würde nun den Inhalt des dritten Monitors sowohl auf dem dritten als auch auf dem zweiten Monitor anzeigen. Und der ursprüngliche Inhalt des zweiten wurde auf den ersten Monitor verschoben, wobei der Inhalt des ersten außerhalb des Bildschirms lag. Es würde wieder normal werden, wenn ich versuchen würde, den Cursor wieder auf den ersten Monitor zu bewegen.
Ich habe das schließlich mit einem weiteren xrandr
behoben Aufruf:
xrandr --output DVI-I-2 --panning 3840x1200+1680+0/1920x1200+1680+0/0/0/0/0
Dieser Aufruf erfordert Kenntnisse über die physische Bildschirmgeometrie und das logische Layout. Ich habe einen 1680×1050 Monitor, einen 1920×1200 und einen 1920×1080. Sie sind in dieser Reihenfolge von links nach rechts. Ganz rechts ist mit der Intel-Karte verbunden.
Dieser Aufruf legt den Schwenkbereich auf dem mittleren Monitor fest. --output DVI-I-2
zufällig der Port, der mit meinem mittleren Monitor verbunden ist.
Die ersten vier Zahlen stellen den Schwenkbereich auf die Summe des mittleren und rechten Bildschirms ein. 3840×1200 als Breite und Höhe und +1680+0 zum Versetzen der Region, um oben links auf dem mittleren Monitor zu beginnen. (Anscheinend befindet sich [0,0] oben links auf dem linken Monitor)
Die nächsten 4 Zahlen sind der Cursorverfolgungsbereich. Ich habe dies so eingestellt, dass nur der Cursor auf dem mittleren Bildschirm verfolgt wird. Wenn der Cursor diesen Bildschirm verlässt, versucht er auf diese Weise nicht, das Bild zu verschieben, um dem Cursor zu folgen.
Die letzten 4 Zahlen definieren einen Rahmen um den Schwenkbereich. Ich verwende hier nur die Standardwerte.
Versionen verwandter Software, die ich verwendet habe:
xorg-server-1.17.4
gnome-3.18.0
xrandr-1.4.3