Erfahrungen mit fglrx + Ubuntu 10.04 + Dual Monitor

Als ich im Herbst letzten Jahres mit meinen neuen PC zusammengestellt habe, entschloss ich mich vorerst eine OnBoard Grafikkarte zu nehmen und da ich einen AMD Prozessor wollte wurde es eine ATI Radeon HD 4200.

Da der radeon Treiber bei dieser Karte und unter Ubuntu 9,10 noch kein Compositing (Compiz) unterstütze, musste ich (wohl oder übel) den proprietären fglrx von ATI nehmen. Zu meiner Überraschung funktionierte mit diesem alles Problemlo , Suspend-to-Disk genauso wie Suspend-to-Ram.

Danach kam irgendwann das Update auf Ubuntu 10.04 und es lief auch weiterhin alles.

Vor ein paar Wochen nun gesellte sich zu dem (bisher verwendeten) 17″ TFT ein deutlich größerer TFT hinzu und da meine Grafikkarte 2 Anschlüsse besitzt wollte ich auch 2 Monitore gleichzeitig nutzen. Nun kamen die Probleme: Suspend funktionierte nicht mehr. Der PC ist zwar „eingeschlafen“, beim „aufwachen“ allerdings fror der PC ein.

Ein schönes Feature des neuen Monitores ist, dass im Fuß ein Gelenk eingebaut is um den Monitor hochkant zu betreiben. Dieses Feature nennt man Pivot (bzw Pivot-Funktion) und ist beim Lesen von längeren Texten, Feeds und vergleichbarem sehr angenehm. Der Spaß daran wurde mir aber schnell genommen weil der Bildaufbau sehr Ruckelig war und beim scrollen starke Streifen aufwies (diagonal, oben rechts angefangen im 45° Winkel nach unten gehend). Ich dachte, dass dies an der Leistung der OnBoard Grafikkarte hängt.

Dieses Problem beschloss ich vorerst zu ignorieren, das Suspendproblem wollte ich aber lösen.

Xorg[1201]: segfault at c801f88d10 ip 00007ff93806a2d9 sp 00007fff9501aa90 error 4 in fglrx_drv.so[7ff937db5000+6d7000]

Diese Zeile wird nach dem Suspend in die Syslog geschrieben, der Rechner wacht auch normal auf, ist per LAN pingbar nur eben die Monitore bleiben schwarz. Sobald nur ein Monitor angeschlossen ist funktioniert alles.

Nun habe ich gelesen, dass der radeon Treiber in Ubuntu 10.04 meine Grafikkarte unterstützen soll, startete also schnell ein Live Ubuntu (bevor ich mir mit den Tests mein normales Ubuntu zerschieße) und alles lief: Dual Monitor funktioniert, Compositing geht und Suspend auch, wohlgemerkt mit dem freien radeon Treiber. Die Umstellung war dadurch beschlossene Sache und musste nur noch in die Tat umgesetzt werden.

Ein Flottes „apt-get remove fglrx“ sollte zum Erfolg verhelfen, eigentlich…

Es kam nur ein Fehler zurück, gut dachte ich, fglrx wird ja noch verwendet und wollte dafür sorgen, dass beim nächsten Start der Treiber nicht geladen wird. Im restricted-manager deaktivieren war nicht möglich und brach immer mit einem nichtssagenden Fehler ab (bestenfalls, dass dpkg einen Fehler zurückgegeben hat).

Kurz im /etc/modprobe.d/ Verzeichnis geschaut und siehe da: radeon steht auf der Blacklist (angelegt von fglrx), diesen von dieser genommen und „zur Sicherheit“ fglrx hinzugefügt, damit er auf keinen Fall geladen wird. Diese Entscheidung sollte sich aber noch rächen also NICHT nachmachen, großer Fehler.

Nach dem hinzufügen auf die Blacklist der obligatorische Neustart, damit auch das „neue“ Modul verwendet wird. Schwarzer Bildschirm, nichts ging mehr. Gefreut, dass Ubuntu eine Rettungskonsole mitbringt (zweiter Punkt im Grub) und diese gestartet, doch auch diese brachte nur einen schwarzen Bildschirm. Der Spaß ging also erst richtig los. Wie „rettet“ man ein System an diesem man keine Monitore verwenden kann?

Ein live Linux vom Stick oder CD ist dein Freund und Helfer.

Live CD wieder rein, dort dann meine Festplatte gemountet und ein chroot auf diese gemacht, wodurch ich „normal“ arbeiten konnte wie im eigentlichen (eben etwas zerstörten) System, auf der Konsole wohlgemerkt.

Vorher muss  aber /proc, /dev und /sys angelegt werden, dies geht mit

mount -t proc proc /media/pfad_zur_platte/proc

mount -t sysfs sysfs /media/pfad_zur_platte/sys

mount –bind /dev /media/pfad_zur_platte/dev

In der chroot-Umgebung dann ein „apt-get purge fglrx“ ausgeführt, wieder ein Fehler:

Entferne fglrx ...
dpkg-divert: Keine Übereinstimmung mit Paket
  beim Entfernen von »diversion of /usr/lib32/libGL.so.1.2 to /usr/lib32/fglrx/libGL.so.1.2.xlibmesa by fglrx«
  »diversion of /usr/lib/libGL.so.1.2 to /usr/lib/fglrx/libGL.so.1.2.xlibmesa by xorg-driver-fglrx« gefunden
dpkg: Fehler beim Bearbeiten von fglrx (--remove):
 Unterprozess installiertes post-removal-Skript gab den Fehlerwert 2 zurück

Kurz gesucht und auf den folgenden Befehl gestoßen

dpkg-divert --remove /usr/lib32/libGL.so.1.2

Danach funktionierte  auch das Entfernen von fglrx.

Kurz kontrolliert ob die Blacklist der Kernelmodule wieder stimmt und dann der nächste Neustart, von der Live-CD ins normale System, toi toi toi.

Nach einem Login (juhu, der X11 funktioniert wieder) präsentiert sich Gnome in gewohnter Optik. Dual Monitor funktioniert weiterhin, genauso auch Compositing. Kurz Suspend-to-Ram getestet und siehe da: funktioniert auch endlich (wieder).

Beim Surfen dann den Monitor nochmals kurz gedreht und keine Streifen mehr gesehen, Pivot funktioniert nun auch. Der Bildaufbau ist im Hochformat genauso schnell wie im Querformat, sogar das lag am fglrx und nicht wie zuerst gedacht an der Grafikkarte.

Also: regelmäßig überprüfen ob es eventuell bessere Treiber für die eingesetzte Hardware gibt (und nicht nur neue Versionen des eingesetzten Treibers) welche besser funktionieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.