Nvidia-Treiber und das Spielesystem: Zurück zu Debian Stable

In den vergangenen Monaten habe ich einige leidvolle Erfahrungen mit dem Nvidia-Treiber gemacht und dieses schlimme Unbill unter dem Schlagwort Nvidia in diesem Blog kundgetan. Nun mischten sich unter den Ärger mit den proprietären Grafikkartentreibern anderweitige Hardwareprobleme mit meinem Mainboard und es war nicht immer einfach das auseinanderzuhalten. Zu Nvidias Ehrenrettung muss ich noch hinzufügen, dass es für einen Grafikkartenhersteller auch nicht immer ganz einfach ist, das gesamte Sortiment an Modellen fortwährend mit aktuellen Linuxtreibern zu versorgen, wenn die ABI des X-Servers scheinbar monatlich wechselt. Das mag aber auch meine laienhafte Sicht der Dinge sein und am Ende hat immer derjenige die Torte im Gesicht, der unfreie Treiber anbietet und den Quellcode unter Verschluss hält oder?
Tatsache ist, dass ich seit der Version 1.10 des X-Servers und dem Nvidia-Treiber 275.36 kein vernünftiges X plus Treiberpaar mehr auf meinem Rechner benutzen konnte. Alles was danach kam war schlicht unbrauchbar. In meinem /var/log/Xorg.0.log war dann z.B.

Increasing EQ size to 512 to prevent dropped events

oder

EQ overflow continuing. 100 events have been dropped

zu lesen. Aktuell hängt bei mir jedes Mal das gesamte System, wenn ich z.B den Webbrowser oder ein Spiel wie OpenArena schließe. Wenn ich Glück habe hört es irgendwann von alleine auf, wenn ich Pech habe friert der Computer ein. Keine wirklich guten Voraussetzungen für eine dauerhafte Beziehung, weswegen ich auf einem zuerst reinen Debian Sid mittlerweile den alten X-Server und Nvidia-Treiber aus den Backports von Squeeze beziehe und auf Hold gesetzt habe.
Nicht wirklich überraschend holte mich der gleiche Fluch auch mit Ubuntu 12.04 ein. Meine kleine Sammlung von Tipps zum Lösen der Nvidia-Probleme ist, man glaubt es kaum, seit der Veröffentlichung einer der meistgelesenen Artikel dieses Blogs. Ich denke, es klingt zu Unrecht etwas gehässig, aber ich bin froh, dass ich da draußen nicht alleine mit meinem Nvidia-Ärger bin. 😛
Nach wie vor halte ich es so, dass ich zuerst die freien Nouveau-Treiber installiere. Auf den älteren Laptops sind natürlich noch ganz andere Grafikkarten verbaut (Stichwort Neomagic). Überall dort wo ich ein paar Mails abrufe, im Netz surfe oder einen Film anschaue, reicht das aber ohne Probleme aus.

Das Spielesystem

Gleiches kann ich von einem Spielesystem nicht mehr behaupten. Hier ist 3D-Performance schlicht ein Muss. Um jeden Fehler meinerseits auszuschließen, habe ich nochmal versucht ein sauberes Wheezy mit allen momentan zur Verfügung stehenden Treibern zum Laufen zu bringen. Leider Fehlanzeige. Sowohl 295 aus den Backports, 302 in Wheezy oder sogar der brandneue 304 aus Experimental, immer das gleiche niederschmetternde Ergebnis. Und dabei sollte doch schon mit Version 295.59 meine 9600GT wieder zu den Gewinnern zählen.
Man sieht daran aber auch, es liegt nicht an Debian Sid. Als ich vor einem Jahr das Multiboot-System aufgesetzt habe, wollte ich auch herausfinden wie sinnvoll ein solches System für Spieler ist. Heute bin ich mir sicher: Ja, man kann Debian Unstable benutzen, aber was nützt die marginale Performance-Verbesserung des Treibers, wenn er nicht funktioniert?
Ich habe ein altes Backup eingespielt und in der sources.list die Quellen von Sid auf Wheezy geändert. Da ich außer den Spielen und dem Grafikkartentreiber keine neuere Version der Software vermisst und ich diese Versionen fast ausschließlich auch über die Backports bekommen hätte, bleibt als Fazit nur zu sagen:
Zurück zu Debian Stable

Nvidia, Xorg 1.11.1 und etwas Licht am Horizont

Es gibt mal wieder etwas Positives von der Bugfront zu berichten. Ich hatte vor kurzem erwähnt, dass nach dem Update auf Xorg 1.11.1 plötzlich Iceweasel und andere Anwendungen heftig in meinem Debian-Testing-System laggten und die CPU-Last stark angestiegen ist.
Bei einem so offensichtlichen Problem kann man sich praktisch immer sicher sein, dass noch viel mehr Leute davon betroffen sind. Ich hatte damals keine Lust tiefer in die Problemlösung einzusteigen, da ein Wechsel zum freien Nouveau-Treiber das Problem für mich gelöst hatte und ich volle 3D-Unterstützung auf diesem System sowieso nicht benötige. Lediglich das laute Lüftergeräusch wegen des mangelhaften Powermanagements des Nouveau-Treibers blieb ein Makel.
Brandaktuell erfuhr ich dann vor einer Stunde beim Überfliegen der Debian-Devel-Mailingliste indirekt von der Lösung des Problems. Debian Bug #642757 beschäftigt sich nämlich mit dem gleichen Übel. Bisher sind schon 13 weitere Fehlerberichte damit zusammengeführt worden.
In Kürze, Xorg ist nicht schuld, sondern der proprietäre Nvidia-Treiber. Moment mal, werden sicher einige sagen. Nvidia funktionierte doch einwandfrei bis zum Update auf X 1.11.1. Das stimmt auch, aber solange der freie Nouveau-Treiber mit dem veränderten Xorg funktioniert, hat der Nvidia-Treiber vorerst die Torte im Gesicht.
Im Nvidia-Forum gibt es hierzu auch einen Thread mit einem offiziellen Beitrag eines Nvidia-Mitarbeiters, der das Problem technisch so erklärt:

I tracked this down to this commit to the X server:
http://cgit.freedesktop.org/xorg/xserver/commit/?id=788ccb9a8bcf6a4fb4054c507111eec3338fb969
It removed our ability to accelerate part of the trapezoid rendering process and forces the whole thing (even the part we can accelerate) to fall back to software on GPUs that do not support full trapezoid acceleration. I've started a discussion on the xorg-devel@lists.x.org mailing list to see how the X community wants to solve this problem:
http://lists.x.org/archives/xorg-devel/2011-October/026050.html

Trapezoid Rendering Process wird mich nun sicherlich noch nächtelang im Schlaf verfolgen...
Im gleichen Thread gibt es auf Seite 2 einen inoffiziellen Patch, der scheinbar für einige dort funktioniert hat. Ich bin bei so etwas immer etwas vorsichtig und ehrlich gesagt kann ich auch noch eine Weile auf den offiziellen Fix warten. Doch für alle, die wirklich dringend eine Lösung suchen, weil sie morgen in der ESL wieder ihren Unterhalt verdienen müssen oder der nächste Raid vor der Tür steht, ist der Fix vielleicht ein Hoffnungsschimmer.
Für mich interessant ist aber die Diskussion, die das Ganze (vermutlich) anstoßen wird. Um solche gravierenden Bugs nämlich vor dem Update zu erkennen, gibt es ein Debian-Programm namens apt-listbugs, welches vor der Installation ausdrücklich warnt, falls ein Paket ein ernstes Problem verursachen würde.
In diesem Fall befanden sich die Fehlerberichte jedoch alle im Nvidia-Paket und nicht in den Xorg-Paketen, weshalb apt-listbug keinen Alarm auslöste. Wie es damit weitergeht? Keine Ahnung. Debian entwickelt sich immer weiter und was scheinbar im ersten Moment einfach nur ärgerlich war, führt plötzlich zu einer Verbesserung des Projekts an einer ganz anderen Stelle.
Übrigens, auf dem gleichen Rechner habe ich das Problem mit Debian Unstable nicht, obwohl ich dort die gleichen Xorg- und Nvidia-Pakete verwende und das verwirrt mich im Moment wirklich am meisten. 😉
Update 07.11.2011: Seit wenigen Tagen gibt es in Debian Sid ein Update der Nvidia-Pakete, welches das Problem beseitigt.

Nvidia oder Nouveau: Xorg 1.11.1 und das Dilemma mit den Treibern

Wie einige vielleicht wissen, bin ich im April auf ein Multi-Boot-System umgestiegen. Anstelle von Ubuntu als einziges Betriebssystem auf dem Dual-Core-Rechner, dient dieses nun als Video- und Bildbearbeitungsplattform, Debian Sid in der Minimalinstallation als Spielesystem und Debian Testing erledigt die Hauptarbeit mit Bürosoftware, E-Mail-Programm und Webbrowser. 90 % der Zeit mit dem Dual-Core-Rechner verbringe ich dann auch mit Debian Testing.
Vor wenigen Tagen gab es ein Update auf die aktuelle Version des Xorg-Servers 1.11.1. Seitdem verursachen manche Seiten in Iceweasel und anderen Browsern eine hohe CPU-Last und selbst das kurze Überfahren des AWN-Docks mit dem Mauszeiger bringt die CPU wegen der Compositing-Effekte schon ins Schwitzen.
Da es in mehreren Applikationen auftritt, liegt der Verdacht nahe, dass das letzte X-Update dafür verantwortlich ist. Wie meldet man aber so einen Bug und formuliert das Problem richtig? Immerhin gibt es ja nicht nur ein Paket zum X-Server. Ein simples: "Iceweasel ruckelt. Es muss an eurem X-Server liegen. Macht was" hilft sicher nicht weiter.
Ich suchte erst noch einmal etwas genauer im Netz und fand irgendwo den Hinweis, dass nicht unbedingt X, sondern die Nvidia-Treiber schuld seien. Und tatsächlich, als ich auf die freien Nouveau-Treiber umgestellt hatte, gab es plötzlich kein Geruckel mehr.
Damit wäre die Sache eigentlich erledigt, der Bug und das Problem aber nicht beseitigt. Das X-Team von Debian würde mich mit Sicherheit direkt zu Nvidia verweisen, da unfreie Pakete wegen dem verschlossenen Quellcode nicht von Debian gefixt werden können. Wahrscheinlich könnte Nvidia dann nur sagen, dass vor dem Update der Treiber wie beabsichtigt funktionierte und Xorg der Übeltäter sei.
Hier hilft außer ein Warten auf ein Xorg- oder Nvidia-Update nicht viel. Natürlich könnte man versuchen ein Downgrade auf die letzte Version von X zu machen. Sinnvoller wäre es auf die freien Treiber auszuweichen. Warum nutze ich die eigentlich nicht? Immerhin habe ich ja schon ein parallel installiertes OS für Spiele.
Das große Problem von Nouveau ist weniger der experimentelle 3D-Support, sondern auch die mangelhafte Unterstützung von Powermanagement-Funktionen. Der Lüfter meiner "Nvidia 9600 GT"-GraKa dreht nämlich permanent auf 100%. Hinzu kommen kleinere Fehler z.B. flackert mein Cursor auf manchen Webseiten plötzlich. Mit nvclock gelang es mir bisher leider ebenfalls nicht die Lüftergeschwindigkeit anzupassen.
Für mich heißt das erst einmal warten auf Gnome 3. Sollte Nouveau hier ähnlich gut funktionieren wie bei Arch Linux, erwäge ich den Umstieg, nehme auch das lautere Lüftergeräusch in Kauf und drehe in Zukunft die Musik einfach etwas lauter auf. 😉