Blog

Okt112014

elementary OS 0.2 und BGR-Monitore

Heute möchte ich etwas von meinem Senf zu elementary OS loswerden.
Basierend auf Ubuntu 12.04 LTS (dessen Benutzeroberfläche mal gar nicht geht) ist es unter der Haube doch sehr stabil und zuverlässig.
Deshalb haben die Macher von elementary OS es ja auch als Basis für ihr Betriebssystem gewählt.
Erstaunlicherweise aber hatte das Canonical-Team beim Erstellen des Betriebssystems Ubuntu 12.04 LTS und deren Nachfolgerversionen 12.04.1 bis nunmehr 12.04.5 keine Anstalten gemacht, den Font-Renderer der Cairo-Bibliothek zu aktualisieren, so dass auch Monitore mit BGR-Subpixel-Anordnung ein klares Bild darstellen können, obwohl diese Aktualisierung bereits ein halbes Jahr vor Veröffentlichung von Ubuntu 12.04 erschien.
Nunja, es ist ja auch schwierig, ein einzelnes "break;" in einen Quelltext einzufügen, besonders, wenn es schon ein halbes Jahr alt ist.

Nun haben sich meine Eltern aber einen Fernseher als PC-Monitor hingestellt, der wirklich die schrecklichste aller denkbaren Kombinationen darstellt. Nicht nur, dass die legacy-ATI-Karte verhindern, ein aktuelles Ubuntu oder debian aufzuspielen, nein auch solch sinnlose Aktionen wie Underscan und Interlaced Full-HD machten mir zu schaffen.

Doch am schlimmsten war die Geschichte mit der BGR-Subpixelanordnung.
Da ich es als Atari-Programmierer gern so habe, dass der Computer macht, was ich will und nicht umgekehrt, habe ich mir gedacht, diesen längst bekannten Patch auch bei dem PC meiner Eltern anzuwenden und das eine break; in den Quelltext einzufügen und diesen Patch zu verwenden. Damit meine Leidensgenossen nicht das selbe durchmachen müssen wie ich ...
mkdir ~/Projekte/font-rendering
cd ~/Projekte/font-rendering
apt-get source cairo
cd cairo...
vi/vim/scratch-text-editor src/cairo-ft-font.c
# nach Zeile 1337 ein break; einfügen
# und die Datei speichern
dpkg-source --commit
# irgend einen Namen eingeben, z.B. fix_bgr
debuild
# und warten

... stelle ich hiermit das gepatchte Paket in der 64-Bit-Version zur Verfügung (Verwendung auf eigene Gefahr!).

Installiert habe ich es mit den Befehlen
sudo mv /usr/share/doc/libcairo2/changelog.Debian.gz /usr/share/doc/libcairo2/changelog.Debian.gz.backup
sudo dpkg -i libcairo2_1.10.2-6.1ubuntu3_amd64.deb

(2 Befehle), da sich dpkg über Änderungen in oben genannter Datei beschwert hatte.

Da ich für gewöhnlich aufhöre, an etwas zu arbeiten, wenn ich das gewünschte Ergebnis erzielt habe, nämlich dass BGR jetzt funktioniert, hab ich mir bisher keine Mühen gemacht, das Paket vorschriftsmäßig zu installieren, a) ohne dass ich den ersten Befehl eingeben muss und b) ohne dass apt-get auf die ursprüngliche Distributions-eigene Version aktualisieren will.
Wer mit dazu Tipps geben möchte, bitte gern per E-Mail!

Bei der Originalversion gab es außerdem das Problem, dass sich das Antialiasing ohne Subpixel auch nicht einschalten ließ (VRGB und VBGR jedoch funktionieren). Dies ist durch diesen Patch nicht behoben.

Tags: