Sie sind nicht angemeldet.

1

14.07.2014, 04:12

Multi Device / X Server Setup mit nouveau (Problem verursacht durch KDE)

Hallo gentoo Gemeinde,

nach dem ich jetzt seit ein paar Jahren (k)ubuntu Nutzung wieder auf gentoo gewechselt bin, habe ich ein kleines Problem bei der Einrichtung des X-Servers mit 2 Grafikkarten.

Ich habe 2 Grafikkarten von nvidia im System auf den PCIe Ports installiert:

Quellcode

1
2
01:00.0 VGA compatible controller: NVIDIA Corporation G96 [GeForce 9500 GT] (rev a1)
02:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)


Quellcode

1
2
[    5.597916] nouveau  [  DEVICE][0000:01:00.0] Chipset: G96 (NV96)
[    7.722823] nouveau  [  DEVICE][0000:02:00.0] Chipset: GT218 (NVA8)


Folgende Situation will ich erreichen:
1. auf der 1. Karte soll ganz normal KDM/KDE starten, als 1. X Server.
2. auf der 2. Karte soll ein weiterer WM starten (KDM oder icewm oder whatever), als 2. X Server

Ich verwende den nouveau Treiber und habe aktuell folgende Konfiguration im Betrieb:
/etc/X11/xorg.conf.d/50-dual-device.conf

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Section "Device"
	Identifier "device[0]"
	Driver     "nouveau"
	BusID      "PCI:1:0:0"
EndSection

Section "Device"
	Identifier "device[1]"
	Driver     "nouveau"
	BusID      "PCI:2:0:0"
EndSection


Section "Monitor"
	Identifier "monitor[0]"
EndSection

Section "Monitor"
	Identifier "monitor[1]"
EndSection


Section "Screen"
	Identifier "screen[0]"
	Device     "device[0]"
	Monitor    "monitor[0]"
EndSection

Section "Screen"
	Identifier "screen[1]"
	Device     "device[1]"
	Monitor    "monitor[1]"
EndSection


Section "ServerLayout"
	Identifier "layout[0]"
	Option "Xinerama" "off"
	Option "Clone" "off"
	Screen 0 "screen[0]"
EndSection

Section "ServerLayout"
	Identifier "layout[1]"
	Option "Xinerama" "off"
	Option "Clone" "off"
	Screen 0 "screen[1]"
EndSection


Section "ServerFlags"
	Option "Xinerama" "false"
#	Option "AutoAddDevices" "false"
EndSection


KDM startet wie gewohnt auf der 1. Grafikkarte (da sind 2 Monitore angeschlossen, die mittels xrandr konfiguriert werden).

/usr/share/config/kdm/Xsetup

Quellcode

1
2
3
4
5
6
7
#! /bin/sh
# Xsetup - run as root before the login dialog appears

#xconsole -geometry 480x130-0-0 -notify -verbose -fn fixed -exitOnFail -file /dev/xconsole &
xrandr --output HDMI-1 --auto --primary --output DVI-I-1 --auto --right-of HDMI-1
xrandr --dpi 96
exit 0


Versuche ich nun einen X Server mit dem layout[1] zu starten, also auf device[1] startet der X Server aber ebenfalls auf der 1. Grafikkarte auf der nächsten VT...

Quellcode

1
$ startx /usr/bin/icewm -- :1 -layout 'layout[1]'

Siehe Anhang startx.log

Scheinbar ignoriert xorg/nouveau die BusID des Geräts, denn laut log File (beide folgend) nutzt der 2. X Server tatsächlich das layout[1], aber trotz Angabe der BusId wird die Grafikkarte auf PCI:1:0:0 verwendet..
Siehe Anhang Xorg.0.log und Xorg.1.log

-----

Interessant wird eigentlich folgendes Mini-Setup:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Section "Device"
	Identifier "device[1]"
	Driver     "nouveau"
	BusID      "PCI:2:0:0"
EndSection



Section "Monitor"
	Identifier "monitor[1]"
EndSection



Section "Screen"
	Identifier "screen[1]"
	Device     "device[1]"
	Monitor    "monitor[1]"
EndSection



Section "ServerLayout"
	Identifier "layout[1]"
	Option "Xinerama" "off"
	Option "Clone" "off"
	Screen 0 "screen[1]"
EndSection



Section "ServerFlags"
	Option "Xinerama" "false"
#	Option "AutoAddDevices" "false"
EndSection


Ich versuche zu forzieren, dass der X Server auf der 2. Karte gestartet wird, was allerdings fehl schlägt!
Siehe Anhang Xorg.0.log-device-2

-----

Versuche ich ein Xinerama Setup wie im nouveau Wiki beschrieben (http://nouveau.freedesktop.org/wiki/MultiMonitorDesktop/), komme ich auf das gleiche Ergebnis.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Section "Device"
	Identifier "device[0]"
	Driver     "nouveau"
	BusID      "PCI:1:0:0"
	Option     "ZaphodHeads" "HDMI-1"
	Screen     0
EndSection

Section "Device"
	Identifier "device[1]"
	Driver     "nouveau"
	BusID      "PCI:1:0:0"
	Option     "ZaphodHeads" "DVI-I-1"
	Screen     1
EndSection

Section "Device"
	Identifier "device[2]"
	Driver     "nouveau"
	BusID      "PCI:2:0:0"
	Option     "ZaphodHeads" "DVI-I-1"
	Screen     2
EndSection



Section "Monitor"
	Identifier "monitor[0]"
EndSection

Section "Monitor"
	Identifier "monitor[1]"
EndSection

Section "Monitor"
	Identifier "monitor[2]"
EndSection



Section "Screen"
	Identifier "screen[0]"
	Device     "device[0]"
	Monitor    "monitor[0]"
EndSection

Section "Screen"
	Identifier "screen[1]"
	Device     "device[1]"
	Monitor    "monitor[1]"
EndSection

Section "Screen"
	Identifier "screen[2]"
	Device     "device[2]"
	Monitor    "monitor[2]"
EndSection



Section "ServerLayout"
	Identifier "layout[0]"
	Option "Xinerama" "on"
	Option "Clone" "off"
	Screen 0 "screen[0]"
#	Screen 1 "screen[1]" RightOf "screen[0]"
	Screen 2 "screen[2]" LeftOf "screen[0]"
EndSection



Section "ServerFlags"
	Option "Xinerama" "true"
#	Option "AutoAddDevices" "false"
EndSection


Siehe Anhang Xorg.0.log-xinerama

-----

Das die 2. Karte grundsätzlich funktioniert kann ich bestätigen. Ich habe einfach mal die 1. Karte ausgebaut, dass System startet ohne Mucken auf der 2. Karte.

Siehe Anhang Xorg.0.log-gt215-only.txt



Jetzt die Große Preisfrage, was mache ich falsch?
Oder liegt es am nouveau Treiber, der mit 2 unterschiedlichen Grafikkarten nicht klar kommt?
Bin aktuell ein bisschen ratlos... ?(

MfG tril
»tril« hat folgende Dateien angehängt:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tril« (15.07.2014, 09:15)


2

14.07.2014, 04:13

Weitere Anhänge ...
»tril« hat folgende Dateien angehängt:

3

14.07.2014, 16:04

Es gibt zwei Wege:
1. zwei unterschiedliche xorg-Instanzen. Hat den Nachteil dass es dann 2 VT's sind. Du kannst nicht beide parallel nutzen sondern musst immer zwischen VT-7 und VT-8 umschalten.
2. Tripple-Screen ohne Xinerama. Damit hast Du zwei Displays (:0.0 und :0.1) die Du einzeln ansteuern kannst. Da das normale Session-Management es wohl nicht kann, brauchst Du eine ~/.xinitrc mit

Quellcode

1
2
DISPLAY=":0.0" startekdebefehl
DISPLAY=":0.1" startewasanderesbefehl


Hier als Ansatz meine xorg.conf (an Deine Konfiguration angepasst, ungetestet)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Section "Device"
    Identifier     "Nvidia Device 1"
    Driver     "nouveau"
    BusID      "PCI:1:0:0"
    Option         "monitor-HDMI-1" "HDMI Monitor 1"
    Option         "monitor-DVI-I-1"  "DVI Monitor 1"
EndSection

Section "Device"
    Identifier     "Nvidia Device 2"
    Driver     "nouveau"
    BusID      "PCI:2:0:0"
    Option         "monitor-HDMI-1" "HDMI Monitor 2"
    Option         "monitor-DVI-I-1"  "DVI Monitor 2"
EndSection

Section "Monitor"
    Identifier     "HDMI Monitor 1"
    Option         "LeftOf" "DVI Monitor 1"
EndSection

Section "Monitor"
    Identifier     "DVI Monitor 1"
EndSection

Section "Monitor"
    Identifier     "HDMI Monitor 2"
    Option         "LeftOf" "DVI Monitor 2"
EndSection

Section "Monitor"
    Identifier     "DVI Monitor 2"
EndSection

Section "Screen"
    Identifier     "Screen 1"
    Device         "Nvidia Device 1"
    Monitor        "HDMI Monitor 1"
EndSection

Section "Screen"
    Identifier     "Screen 2"
    Device         "Nvidia Device 2"
    Monitor        "HDMI Monitor 2"
EndSection


Section "ServerLayout"
    Identifier     "Layout"
    Screen         "LVDS Screen" 0 0
    Screen         "Screen 1"
    Screen         "Screen 2" LeftOf "Screen 1"
EndSection

Section "Extensions"
    Option "Composite" "Enable"
    Option "RANDR" "Enable"
EndSection
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

4

15.07.2014, 09:11

Es gibt zwei Wege:
1. zwei unterschiedliche xorg-Instanzen. Hat den Nachteil dass es dann 2 VT's sind. Du kannst nicht beide parallel nutzen sondern musst immer zwischen VT-7 und VT-8 umschalten.

Ja stimmt, klar ... oh manno, einfach zu lange nicht mehr selbst konfiguriert den Scheiß :-D

2. Tripple-Screen ohne Xinerama. Damit hast Du zwei Displays (:0.0 und :0.1) die Du einzeln ansteuern kannst.

Ja genau das will ich, irgendwann hatte ich dann auch mal alles so weit dass es lief, allerdings immer nur bis zur ersten Anmeldung. Das Problem ist KDE, das hat den 2. Monitor immer abgeschaltet (wie der das auch immer geschafft hat) und da ich meistens vorher ein mal angemeldet war, funktionierte es danach auch nach neustart des X Servers nicht mehr.

Die Lösung: ~/.kde4/share/config/kcmdisplayrc

Quellcode

1
2
[X11]
disableMultihead=true


Allerdings hatte ich mit dem Setup das Problem, dass via randr die beiden Monitore auf der 1. Karte zwar als separate Displays erkannt wurden, KDE aber trotzdem alle Fenster über beide Monitore gezogen hat.


Ich habe jetzt xinerama aktiviert (die Änderung der kcmdisplayrc ist aber scheinbar weiterhin nötig!), zumindest hab ich jetzt wieder 3 Monitor.

Danke für den Schubs in die richtige Richtung :thumbsup:

MfG tril

5

15.07.2014, 09:14

Falls jemand sonst noch nen Denkanstoß braucht, hier die Konfiguration ohne Xinerama:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Section "Device"
	Identifier "Nvidia Device 1"
	Driver     "nouveau"
	BusID      "PCI:1:0:0"
	Option     "monitor-HDMI-1" "HDMI Monitor 1"
	Option     "monitor-DVI-I-1"  "DVI Monitor 1"
EndSection

Section "Device"
	Identifier "Nvidia Device 2"
	Driver     "nouveau"
	BusID      "PCI:6:0:0"
	Option     "monitor-DVI-I-1"  "DVI Monitor 2"
EndSection



Section "Monitor"
	Identifier "HDMI Monitor 1"
EndSection

Section "Monitor"
	Identifier "DVI Monitor 1"
	Option     "RightOf" "HDMI Monitor 1"
EndSection

Section "Monitor"
	Identifier "DVI Monitor 2"
EndSection



Section "Screen"
	Identifier "Screen 1"
	Device     "Nvidia Device 1"
	Monitor    "HDMI Monitor 1"
EndSection

Section "Screen"
	Identifier "Screen 2"
	Device     "Nvidia Device 2"
	Monitor    "DVI Monitor 2"
EndSection



Section "ServerLayout"
	Identifier "Layout"
	Screen     "Screen 1" 0 0
	Screen     "Screen 2" LeftOf "Screen 1"
EndSection



Section "ServerFlags"
#	Option "Xinerama" "false"
	Option "Composite" "true"
	Option "RANDR" "true"
#	Option "AutoAddDevices" "false"
EndSection


Und hier die Konfiguration mit Xinerama:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Section "Device"
	Identifier "Nvidia Device 1"
	Driver     "nouveau"
	BusID      "PCI:1:0:0"
	Option     "ZaphodHeads" "HDMI-1"
	Screen     0
EndSection

Section "Device"
	Identifier "Nvidia Device 2"
	Driver     "nouveau"
	BusID      "PCI:1:0:0"
	Option     "ZaphodHeads" "DVI-I-1"
	Screen     1
EndSection

Section "Device"
	Identifier "Nvidia Device 3"
	Driver     "nouveau"
	BusID      "PCI:6:0:0"
	Option     "ZaphodHeads" "DVI-I-1"
	Screen     0
EndSection



Section "Monitor"
	Identifier "HDMI Monitor 1"
EndSection

Section "Monitor"
	Identifier "DVI Monitor 1"
EndSection

Section "Monitor"
	Identifier "DVI Monitor 2"
EndSection



Section "Screen"
	Identifier "Screen 1"
	Device     "Nvidia Device 1"
	Monitor    "HDMI Monitor 1"
EndSection

Section "Screen"
	Identifier "Screen 2"
	Device     "Nvidia Device 2"
	Monitor    "DVI Monitor 1"
EndSection

Section "Screen"
	Identifier "Screen 3"
	Device     "Nvidia Device 3"
	Monitor    "DVI Monitor 2"
EndSection



Section "ServerLayout"
	Identifier "Layout"
	Option     "Xinerama" "on"
#	Option     "Clone" "off"
	Screen     "Screen 1" 0 0
	Screen     "Screen 2" RightOf "Screen 1"
	Screen     "Screen 3" LeftOf "Screen 1"
EndSection



Section "ServerFlags"
#	Option "Xinerama" "false"
	Option "Composite" "true"
	Option "RANDR" "true"
#	Option "AutoAddDevices" "false"
EndSection



Wichtig ist halt die kcmdisplayrc anzulegen und danach das System neu zu starten! (kein Witz) :pinch:

6

15.07.2014, 09:25

Falls interessiert, hier sind meine Erfahrungen mit dem Thema: http://www.gentooforum.de/artikel/20720/…3-monitore.html
Bisher keine zufriedenstellende Lösung gefunden. Das Thema liegt aktuell auf Eis da ich aktuell wieder nur 2 Monitore habe.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

7

15.07.2014, 20:58

Ich wechsle am besten auf Wayland :D
Aber ja, ist ein wenig frustrierend, für meinen Fall reicht Xinerama glücklicherweise aus.
Bin aber auch mit einer ATI eyefinity oder nVidia Quadro am liebäugeln... mein Konto sagt dann aber nix da :pinch: