Sie sind nicht angemeldet.

1

10.11.2013, 19:07

X-Server, Nvidia, Kernel 3.10.17 - EDID kann nicht abgefragt werden

OK, ich hab genug gelitten. Jetzt reicht's - entweder einer von euch kann mir helfen, oder ich bin einfach zu dämlich und muss zu Arch wechseln.
Ich sitze jetzt hier seit 36 Stunden dran, meine Augen tun mir weh, und ich werde morgen auf der Arbeit hervorragent motiviert sein - sei's drum.

Ich habe hier ein Lenovo Ideapad G580 mit einem i7, einem Intel HD Chip und einer Geforce 635M mit 2048 MB VRAM. Und ich Stöpsel dachte mir, hey, du bist doch jetzt seit gut 2 1/2 Jahren mir Linux gut gefahren, kannst deinen Kernel kompilieren, kennst DKMS (komme von Debian), kennst deine Hardware so ein bisschen, willst aber ein optimal auf deine Maschine ausgerichtetes System und die neusten Pakete. Also ... Gentoo!

Ja denkste. Grundinstallation funktioniert erst mal nicht, weil die CD keinen ALX-Treiber für meine Ethernet-Karte mitbringt (W-LAN? Bei Linux ohne Grafikmanager? Nur über meine Leiche! :cursing: ). Bin dann hier auf den unwahrscheinlich hilfreichen Hinweis gestoßen, dass es reicht, wenn man unter einem normalen Linux-System das stage3-Archiv entpackt und dann mit chroot in die Gentoo-Umgebung wechselt. Wieder was gelernt, bin euch dankbar dafür.

Mein Hauptproblem ist, dass der X-Server nicht hochfahren will. Der Kernel bootet, ich komme ins Grundsystem, ACPID läuft, alles gut. Dann starte ich X, und entweder bricht der Server ab oder zieht mein komplettes System mit in den Abgrund. Was anderes als Schwarz habe ich bisher nicht gesehen.
Ich muss dazu sagen, ich habe mehrerer Konfigurationen versucht. Erst mit dem 3.12-Kernel (der Optimus kann) Intel und nVidia-Treiber (in der /etc/portage/make.conf), der nVidia-Treiber versteht sich aber nicht mit 3.12, da muss wohl noch gebastelt werden. Dann nur mit dem i915-Treiber eingestellt, da schmierte mir der komplette Laptop ab, ich bekam nur ein schwarzes Bild und konnte nicht mal mehr die ttys wechseln. Bin dann schweren Herzens auf 3.10.17 umgestiegen, mit dem nouveau wird meine Grafikkarte wohl noch nicht unterstützt, die Xorg.0.log zeigt mir eine Reihe von GraKas an und meine ist nicht dabei. Zumindest komme ich danach wieder auf die Konsole X( . Der nouveau hat aber auch unter meinem Debian nicht funktioniert, von da her ... und mit dem nVidia bekomme ich die unten beschrieben Probleme.

Ich verwende jetzt linux-3.10.17-gentoo, meine Kernel-Konfig im Amhang, meine /var/log/messages ebenfalls, ich verwende diesen Befehl, um den Kernel zu installieren:

Quellcode

1
# make -j9 clean && make -j9 && make modules_install && make install && genkernel --install --compress-initramfs-type=best initramfs && mv /boot/initramfs-genkernel-x86_64-3.10.17-gentoo /bootinitrd.img-3.10.17-gentoo


Meine Xorg.0.log haut mir diese Warnungen raus:

Quellcode

1
2
3
4
5
6
# cat Xorg.0.log | grep WW
[...]
[	31.582] (WW) Unresolved symbol: fbGetGCPrivateKey
[	31.839] (WW) NVIDIA(GPU-0): Unable to read EDID for display device CRT-0
[	31.846] (WW) NVIDIA(0): Unable to get display device CRT-0's EDID; cannot compute DPI
[	31.846] (WW) NVIDIA(0): 	from CRT-0's EDID.


Die EDID wird, das weiß ich inzwischen, vom Treiber abgefragt, um zu prüfen, welche Auflösungen der Monitor unterstützt.
Fun Fact 1: Den Fehler hatte ich vor kurzem mal bei einem Kollegen - hier war die Ursache: lockeres VGA-Kabel.
Fun Fact 2: Meine Maschine ist ein Laptop, da gibt's kein lockeres VGA-Kabel.
Fun Fact 3: Debian und Windows haben keine Probleme beim Abfragen der EDID.

Fehler habe ich nur einen, und der zeigt mir, dass X-Bashing sich immer noch lohnt (siehe hier):

Quellcode

1
[	34.597] (EE) Server terminated successfully (0). Closing log file.


Toll, wa? :whistling: Der fbGetGCPrivateKey-Fehler kommt übrigens vom fb-X-Modul

Den lscpi -k unter dem "Host-System" (Kernel-Version 3.7, auch selbstkompiliert, den alx-Treiber habe ich manuell eingefügt) gibt's auch noch dazu - wenn euch noch ein Treiber einfällt, den ich in der Maschine habe, aber aus der Kernel-Konfiguration entfernt habe, würde ich mich über einen Hinweis freuen. Toll wäre natürlich, wenn dann auch noch der X-Server funktioniert.

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
# lspci -k
00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
	Subsystem: Lenovo Device 3977
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (rev 09)
	Kernel driver in use: pcieport
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
	Subsystem: Lenovo Device 3901
	Kernel driver in use: i915
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
	Subsystem: Lenovo Device 3977
	Kernel driver in use: xhci_hcd
00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04)
	Subsystem: Lenovo Device 3977
	Kernel driver in use: mei
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
	Subsystem: Lenovo Device 3977
	Kernel driver in use: ehci_hcd
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
	Subsystem: Lenovo Device 3977
	Kernel driver in use: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4)
	Kernel driver in use: pcieport
00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4)
	Kernel driver in use: pcieport
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
	Subsystem: Lenovo Device 3977
	Kernel driver in use: ehci_hcd
00:1f.0 ISA bridge: Intel Corporation HM76 Express Chipset LPC Controller (rev 04)
	Subsystem: Lenovo Device 3977
	Kernel driver in use: lpc_ich
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
	Subsystem: Lenovo Device 3977
	Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04)
	Subsystem: Lenovo Device 3977
01:00.0 VGA compatible controller: NVIDIA Corporation Device 0de3 (rev a1)
	Subsystem: Lenovo Device 3901
02:00.0 Ethernet controller: Atheros Communications Inc. AR8162 Fast Ethernet (rev 10)
	Subsystem: Lenovo Device 3979
	Kernel driver in use: alx
03:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
	Subsystem: Broadcom Corporation Device 0587
	Kernel driver in use: bcma-pci-bridge


PS: Verzeihung, wenn das alles ein wenig wirr wirkt, aber langsam bin ich echt verzweifelt. Und ich bin ein Programmierer, und ich bekomm es nicht hin, was für ein Armutszeugnis ist das denn? :(
»Hacking4Fun« hat folgende Dateien angehängt:
  • xorg.conf.txt (1,51 kB - 1 mal heruntergeladen - zuletzt: 10.11.2013, 20:01)
  • .config.txt (75,56 kB - 1 mal heruntergeladen - zuletzt: 10.11.2013, 20:01)
  • Xorg.0.log.txt (19,42 kB - 0 mal heruntergeladen)
  • messages.txt (69,52 kB - 1 mal heruntergeladen - zuletzt: 10.11.2013, 22:08)

2

10.11.2013, 22:08

Dann versuche ich mal zu helfen. Du hast eine hybride Grafikkarte. Diese werden aktuell nur rudimentär unterstützt. Prüfe als erstes im BIOS welche Einstellungen Du dazu hast. Oft hat man (unterschiedlich benannt) "Sparsam" (=nur Intel), Automatisch (=hybrid) und Performance (=nur nvidia). Falls "Performance" da ist (bei meinem Lap nicht der Fall :( ) überlege ob Du auf Kosten etwas höheren Strom-Verbrauchs nicht eine "richtige" Nvidia haben willst. Damit wäre es viel einfacher. Wenn Du keine Grafik-Power brauchst, kannst Du es auch mit nur Intel versuchen.
Wenn Du hybrid haben willst, so ist erstmal rauszufinden wie Deine Kartie tickt. Bei den Hybriden ist einer der Chips führend. Dh. die Anschlüsse sind nur an diesem Chip. Der zweite Chip schleust das Bild in den primären ein. Bei mir ist die "Intel" die führende, bei Dir wahrscheinlich auch. Du musst den X-Server erstmal entsprechend der führenden Grafikkarte konfigurieren (also nur Intel). Deaktiviere mal CONFIG_FB_EFI. Intel X-Server Treiber funktioniert nur mit dem eigenen KMS Framebuffer richtig. Und aktiviere natürlich CONFIG_DRM_I915 und CONFIG_DRM_I915_KMS.
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.

3

10.11.2013, 22:23

Habe im BIOS bereits nachgeschaut. Hier war anfangs keine Gastunterstützung für virtuelle Betriebssysteme akiviert, aber sonst habe ich die Einstellungen bereits eingetragen, als ich den Laptop erworben habe.
Die Grafikkarte kann man auswählen, indem man entweder "UMA" (GPU teilt sich den Hauptspeicher mit der CPU) oder "Switchable Graphcis" (das "Schlachtschiff" wird dazugeschaltet mit seinen eigenen 2 GB VRAM) setzt. Unter Windows funktioniert es ja. :)

Und das habe ich ja - also überlegt, was ich haben will. Da ich weiß, dass "hybride Grafik" erst korrekt mit 3.12 läuft und sich darunter der nVidia-Treiber nicht reinkompilieren lässt, habe ich mich entschieden, dass mein Laptop lieber über das Schlachtschiff rendern soll. Deswegen hat die xorg.conf auch nur einen Grafik-Device.

Mo-mo-moment. Wenn ich dich richtig verstehe, soll ich den Intel-Treiber und den nVidia-Treiber in den Kernel kompilieren, und den nVidia in der /etc/portage/make.conf für X drinlassen? Derzeit ist VIDEO_CARDS nur auf "nvidia" gesetzt. Wenn aber eine Grafikkarte "führend" ist, wie du sagest ... ach was, ich probier's einfach aus. :)

EDIT: Sol ich den VGA_SWITCHEROO-Treiber auch reinpacken?