Weißer Schnee mit ATI Radeon Treiber mit Ubuntu
2013-09-05INIT
Vor ein wenig mehr als einer Woche habe ich mitbekommen das der Dritter Snapshot von Ubuntu 12.04 veröffentlicht wurde. Meine Neugier wurde geweckt. Neuer Kernel und neue Xserver aus dem Raring Release (13.04) das klang spannend.
Also schnell die Pakete installiert.
sudo apt-get install -y linux-generic-lts-raring und xserver-xorg-lts-raring
Einen LTS System so neue Komponenten zu verpassen ist schon ein wenig gewagt, sollte sich aber bei den meisten ohne Probleme installieren lassen. Bei mir leider nicht :( nach der Installation gab es ein paar Fehlermeldungen (leider nicht dokumentiert) aber immerhin gab es eine grafische Oberfläche.
Lösung
Um es vorweg zu nehmen das eigentlich Problem hat sich erst nach der Installation des Radeon Treibers ergeben! Schönes Weißes Rauschen …
Danach ging der Spaß erst mal richtig los :) Da ich meine ATI Mobility Radeon HD 4550 natürlich mit dem Fglrx Treiber benutzt habe, schwante mir da was. Die Unterstützung für den installierten 3.8 Kernel + Xserver war natürlich nicht mehr vorhanden! Gut ich meine nicht das ich den freien Radeon Treibern nicht aufgeschlossen bin, der einzige Grund auf den fglrx Treiber zu setzten war das die Lüftersteuerung. Beim freien Treiber lief der Lüfter leider fast immer, da die Energieverwaltung nicht optimal war.
Also musste der Fglrx Treiber erst mal entfernt werden. Eine ausführliche Anleitung zur Deinstallation gibt es bei ubuntuusers.
sudo apt-get purge fglrx fglrx-modaliases fglrx-amdcccle
Danach die freien Radeon Treiber installiert und neu gestartet.
sudo apt-get install -y xserver-xorg-video-ati-lts-raring xserver-xorg-video-ati-lts-rarin
Nach dem booten ist mir schon aufgefallen wir lange das System bracht um LightDM zu laden, ich war sehr erstaunt als der Bildschirm nur weißes Rauschen gezeigt hat. Meine erste Reaktion war in den alten Kernel zu booten. Das hat auch funktioniert. Nach einigen Neustarts trat bei dieses auch das gleiche Problem auf WTF? Ich habe nichts verändert.
Nach relativ langen debuggen, bin ich durch Zufall darauf gestoßen das wenn ich die Zeile gfxmode $linux_gfx_mode aus dem Grub menuentry entferne (habe das direkt beim booten ausprobiert) alles wieder wie gewohnt funktionierte.
Nach noch mehr debuggen habe ich endlich in Erfahrung gebracht das wenn ich die Variable GRUB_GFXPAYLOAD_LINUX in der /etc/default/grub mit dem entsprechenden Hexwert setzt, alles dauerhaft wieder funktioniert.
Ich bin der Meinung das auch eine ganz normale Auflösung hätte eingetragen werden können aber sicher ist sicher :)
Woher stammt dieser Hexwert nun? Um dieses zu ermitteln gibt es zwei Möglichkeiten
Mittels hwinfo
Damit habe ich aber nicht alle möglichen Auflösungen gelistet bekommen!
sudo hwinfo --framebuffer
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.464]
Unique ID: rdCR.QOJHFkjgnM2
Hardware Class: framebuffer
Model: "(C) 1988-2005, ATI Technologies Inc. M92"
Vendor: "(C) 1988-2005, ATI Technologies Inc. "
Device: "M92"
SubVendor: "ATI ATOMBIOS"
SubDevice:
Revision: "01.00"
Memory Size: 16 MB
Memory Range: 0xd0000000-0xd0ffffff (rw)
Mode 0x0300: 640x400 (+640), 8 bits
Mode 0x0301: 640x480 (+640), 8 bits
Mode 0x0303: 800x600 (+832), 8 bits
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x0307: 1280x1024 (+1280), 8 bits
Mode 0x0310: 640x480 (+1280), 15 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Mode 0x0313: 800x600 (+1600), 15 bits
Mode 0x0314: 800x600 (+1600), 16 bits
Mode 0x0316: 1024x768 (+2048), 15 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x0319: 1280x1024 (+2560), 15 bits
Mode 0x031a: 1280x1024 (+2560), 16 bits
Mode 0x030d: 320x200 (+640), 15 bits
Mode 0x030e: 320x200 (+640), 16 bits
Mode 0x0320: 320x200 (+1280), 24 bits
Mode 0x0393: 320x240 (+320), 8 bits
Mode 0x0395: 320x240 (+640), 16 bits
Mode 0x0396: 320x240 (+1280), 24 bits
Mode 0x03b3: 512x384 (+512), 8 bits
Mode 0x03b5: 512x384 (+1024), 16 bits
Mode 0x03b6: 512x384 (+2048), 24 bits
Mode 0x03c3: 640x350 (+640), 8 bits
Mode 0x03c5: 640x350 (+1280), 16 bits
Mode 0x03c6: 640x350 (+2560), 24 bits
Mode 0x0333: 720x400 (+768), 8 bits
Mode 0x0335: 720x400 (+1472), 16 bits
Mode 0x0336: 720x400 (+2944), 24 bits
Mode 0x0353: 1152x864 (+1152), 8 bits
Mode 0x0355: 1152x864 (+2304), 16 bits
Mode 0x0356: 1152x864 (+4608), 24 bits
Mode 0x0363: 1280x960 (+1280), 8 bits
Mode 0x0365: 1280x960 (+2560), 16 bits
Mode 0x0366: 1280x960 (+5120), 24 bits
Mode 0x0321: 640x480 (+2560), 24 bits
Mode 0x0322: 800x600 (+3200), 24 bits
Mode 0x0323: 1024x768 (+4096), 24 bits
Mode 0x0324: 1280x1024 (+5120), 24 bits
Mode 0x0343: 1400x1050 (+1408), 8 bits
Mode 0x0345: 1400x1050 (+2816), 16 bits
Mode 0x0346: 1400x1050 (+5632), 24 bits
Config Status: cfg=new, avail=yes, need=no, active=unknown
Was mich type ein wenig stutzig gemacht hat, ist das da Auflösungen Fehlen! Als ich die Auflösungen wie weiter unten beschrieben habe mittels Grub Shell bestimmt habe, waren diese auch vollständig.
Direkt in Grub
Eine weitere Möglichkeit ist den Befehl vbeinfo direkt in der Grub Shell auszuführen, das Ergebnis sollte wie bei hwinfo aussehen.
vbeinfo
...
...
Der Hexwert der gewünschten Auflösung muss in die Datei /etc/default/grub der Variablen GRUB_GFXPAYLOAD_LINUX zugewiesen werden. Es kann sein das diese erst noch erstellt werden muss.
GRUB_GFXPAYLOAD_LINUX=0x1e6
Danach muss die Grub Konfiguration aktualisiert werden! Ansonsten werden die gemachten Änderungen nicht aktiv.
sudo update-grub
Ergebnis
Nach ungewohnt langen debuggen und wirklich vielen Neustarts habe ich endlich wieder ein System bekommen. Was normal bootet und mich mit einer grafischen Oberfläche begrüßt.
Vielleicht sollte ich das nächste mal nicht ganz so fix beim Updaten sein, aber irgendwas ist ja immer.
Die einzigen Nachteile die mir beim freien Radeon Treiber bis jetzt aufgefallen sind, ist der höhere Stromverbrauch und der fast ständig laufende Lüfter. Schade das dass immer noch so ist aber im Kernel 3.11 soll sich ja noch mal viel getan haben. Vielleicht schaue ich mir das ganze mal bei Gelegenheit mit diesen Kernel unter Arch Linux an :)