Macs in Media

Gnome, KDE und Xgl

Die letzten beiden Tage habe ich mich an die Installation und Konfiguration von Xgl und dem ganzen drum herum, also compiz sowie gnome-window-decorator, gemacht. Ich wollte gleich die Gelegenheit nutzen und das “neue” Gnome 2.14 ausprobieren. Davon war ich allerdings (ein erneutes Mal) schwer enttäuscht, da sich mir zahlreiche Fehler präsentierten und ansonsten auch alles irgendwie schief lief. Trotzdem versuchte ich Xgl unter Gnome und KDE einzurichten um es auch miteinander vergleichen zu können.

Auf Anhieb ging erst einmal gar nichts, außer dass ich Xgl in einem Fenster starten konnte. Das war schon ein großer Fortschritt. Dank der wirklich guten Xgl und Gentoo Seite im Gentoo Wiki konnte ich dann aber gdm und kdm zum Laufen bewegen, so dass sich jetzt eine Xgl-Oberfläche standardmäßig beim Login präsentiert. Die Effekte sind wirklich sehenswert, vor allem im Vergleich zum aktuellen Mac OS X und Windows, die beide nicht über so schicke Spielereien verfügen. Ich habe mir insbesondere die Funktion Fenster transparent darzustellen angewöhnt, da sie sehr praktisch ist, wenn man schnell sehen will, was gerade im Fenster dahinter passiert. Der Cube-Effekt ist noch ein bisschen irritierend, wenn zwischen den Desktops noch mindestens ein zusätzlicher Desktop liegt und er dann so schnell umschaltet. Ansonsten ist der wobbly wobbly wobbly Verschiebeeffekt ganz nett, jedoch nur als weitere Spielerei anzusehen. Was sich jedoch als wirklich praktisch dargestellt hat ist der neue Anwendungsumschalter (Alt+Tab), der im Fenster gleich die aktuellen Previews der Fenster anzeigt, also zum Beispiel auch laufende Filme. Ein weiteres Feature, was wahrscheinlich einige Benutzen werden ist das neue Expose-artige Anzeigen aller Fenster auf dem aktuellen Desktop. Ich persönlich habe immer virtuelle Desktops mit wenigen Anwendungen bevorzugt. Eine Kombination aus beiden Techniken kann die Arbeitsgeschwindigkeit jedoch erhöhen.

Nachteilig an der ganzen Sache ist, dass man nichts konfigurieren kann. Ich habe zum Beispiel meine Buttons gerne an der linken, anstatt an der rechten Seite (so wie unter Mac OS X). Solche Parameter, genau so wie das gesamte Aussehen sind momentan noch hardgecodet. Es bleibt also noch eine Menge Arbeit zu erledigen, das was vorhanden ist, lässt sich jedoch schon gut präsentieren. Ein graphischer Dialog zur Konfiguration, anstatt dem manuellen Eintragen von Schlüsseln und den dazugehörigen Paaren wäre angebracht, genau so wie getrennte Versionen für KDE und Gnome. Der kde-window-decorator funktioniert momentan noch überhaupt nicht, es ist aber zumindest einer in Planung.

Wenn es um die Performance und den Prozessor- / Speicherhunger geht, so bin ich durchaus positiv überrascht. Bei 2 GB RAM verbraucht Xgl nicht mehr als 6-7% Speicher. Die CPU-Performance liegt in etwa bei 20-25%, sofern man Xgl relativ “normal” benutzt ohne die einzelnen Effekte ausreizen zu wollen. Wenn ich ein Terminal laufen lasse, auf dem sich top befindet, darüber einen Film lege, der halbtransparent abgespielt wird und zusätzlich mit einem halbtransparenten weiteren Fenster wie wild über den entsprechenden Bereich hin- und herfahre, so steigt die Prozessorlast maximal auf 45%, was auch noch akzeptabel ist in dem jetzigen Entwicklungsstadium. Man bedenke, dass Anwendungen wie zum Beispiel amaroK oder KMail öfters 15-20% der Prozesserlast benötigen, was ich als enorm viel für solche Anwendungen empfinde.

Xgl läuft bei mir mit dem nVidia Treiber sehr stabil, ich hatte bis jetzt noch keinen einzigen Absturz. Ich habe es auch hinbekommen, dass Xgl Anti-Aliasing verwendet, was momentan leider nicht mehr läuft. Die gesamte Oberfläche sieht sehr schön aus und ist zudem noch funktional. Was mir noch sehr fehlt ist eine “Stay on top”-Funktion für die Fenster, denn erst dann macht die Funktion Fenster transparent darzustellen richtig Sinn. Es existiert auch schon ein Patch für dieses Feature, jedoch warte ich bis es in die offizielle Version eingepflegt wird. Dank Gentoo ließ sich alles auch relativ einfach aus einem Overlay kompilieren und auch dies wahrscheinlich nur dank der guten Anleitung, die sich unter http://gentoo-wiki.com/HOWTO_XGL im Gentoo Linux Wiki befindet.

Gentoo Kernelproblem

Vorgestern machte ich ein Gentoo-Kernel Update von 2.6.12-gentoo-r10 auf 2.6.13-gentoo-r3 und auf einmal hing sich das System auf, aber auch nicht richtig, da außer der Tastatur so ziemlich alles lief. Ich warf einen Blick in die Logs und fand folgendes:

Oct 24 22:57:57 [kernel] Unable to handle kernel NULL pointer dereference at 0000000000000020 RIP:

Zuerst dachte ich mir: O.K., dann machste wieder den alten Kernel drauf und alles wird laufen… Leider war das nur ein Gedanke, denn der Fehler tratt auf einmal auch mit dem alten Kernel auf, obwohl ich ihn nicht neu kompiliert habe!?

Also begab ich mich auf die Suche, zuerst in den Gentoo Foren, dann im Web allgemein. Ich fand eine unheimliche Anzahl an Beiträgen, die die gleichen Symptome beschrieben und angeblich aus Problemen mit dem Kernel und dem nvidia-Treiber hervorgingen. Blindäugig versuchte ich also mein Bestes, probierte verschiedene Treiberversionen mit den beiden Kerneln aus und versuchte alle möglichen Kombinationen durchzutesten, leider ohne Erfolg. Als nächsten Schritt deaktivierte ich einfach den nvidia-Treiber und trug “nv” anstatt “nvidia” in die xorg.conf ein - auch dies verlief ohne positive Resultate. Dadurch wusste ich, dass es einfach nicht an der Grafikkarte liegen kann. Parallel dazu ließ ich noch einige Male MemTest86+ durchlaufen um zu sehen, dass der Speicher nicht kaputt ist, da solche Fehlermeldungen oft die Ursache für solch einen Defekt sind. Der Test lief mehrere Male durch, so dass ich mir sicher gehen konnte diese Fehlerquelle auch auszuschließen.

Anschließend recherchierte ich ein wenig nach der Funktion do_dbs_timer, da sie anscheinend die Ursache für den Kernelhänger war. Sofort fand ich heraus, dass die Funktion für das “CPU Frequency Scaling” verwendet wird, inklusive PowerNow! Also deaktivierte ich das Frequency Scaling in der local.start und alles läuft seitdem problemlos. Schade, dass ich PowerNow! nicht mehr verwenden kann, da heutige Prozessoren viel Strom verbrauchen und ich gerne Energie sparen würde. Die Frage, die sich mir stellt, ist, ob ich einen Bug posten soll oder ob es an meiner Kernelkonfiguration bzw. dem Prozessor liegt? Für jegliche Anregungen / Problemlösungen wäre ich dankbar.

Langwierige Portage Laufzeit

Seit einer bestimmten Zeit dauert ein emerge –sync einfach Ewigkeiten auf meinen Systemen, auch wenn sie mit neuwertiger Hardware ausgestattet sind. Ich wollte den Ursprung des Problems herausfinden und begab mich auf eine Suche in den offiziellen Gentoo Foren. Dort stieß ich nach kurzer Suche auf viele Beiträge zu dem gleichen Thema. Viele Vorschläge bezogen sich lediglich auf den Wechsel des Dateisystems (hauptsächlich auf ReiserFS, wobei viele die hohe Prozessorlast abschreckte) oder auf das Entfernen spezieller Bereiche, die viele Dateien beinhalten, wie zum Beispiel den gesamten KDE Baum. Zwei Beiträge widmeten sich dem dem Thema Anpassung von Portage, so dass es mit einem Datenbankbackend arbeitet, wobei konkret MySQL und CDB erwähnt sind und auch die entsprechenden HOWTOs dazu vorliegen. Da viele User die relativ niedrigen Performancegewinne beim Einsetzen von Portage mit MySQL beklagten, probierte ich den Weg über CDB, der insgesamt vielleicht zwei Minuten dauerte. Vor dem Anpassen führte ich noch ein time emerge –sync durch, um die Zeit für die Ausführung zu messen und kam zu folgendem Ergebnis:

real    3m25.751s
user    0m12.159s
sys     0m5.700s

Nach der Installation des Moduls habe ich erneut den gesamten Baum synchronisieren lassen (Sorry Gentoo Admins, verstößt gegen die Netiquette, musste aber sein), wobei folgende Werte herausgekommen sind:

real    1m39.389s
user    0m12.103s
sys     0m5.275s

Auf meinem AMD Athlon 64 3200+ scheint die Umstellung auf das CDB Backend durchaus etwas gebracht zu haben, ich werde diese Performancetests auch noch auf anderen Computern ausprobieren, die größtenteils eine schwächere Hardware haben. Auf die Ergebnisse der messbaren Leistungsunterschiede, die dabei herauskommen werden, bin ich jetzt schon gespannt.

Aktuelle Arbeiten

Erst einmal herzlich willkommen auf meiner neu aufgesetzten Seite. Ich bin kein Fan von großen Begrüßungsaktionen, also komme ich gleich zur Sache…

Momentan arbeite ich an zahlreichen Projekten, wobei ich denke, dass ich Erfahrungen, die ich während der Projektarbeiten sammeln werde, hier zur Verfügung stelle. Als kleinere Projekte sehe ich die Webseite für eine spezialisierte Bank, sowie die voluntäre Arbeit an der Webseite für die Evangelisch-Freikirchliche Gemeinde in Nienburg / Weser. Bei diesen beiden Projekten arbeite ich strikt nach dem XHTML / CSS Muster und werde sehen, was herauskommt. Bisher habe ich mich aus Kompatibilitätsgründen gescheut zu 100% auf die beiden Techniken umzusteigen und sie auch so umzusetzen, wie vom Konsortium gewollt. Hinzu kommt noch ein wenig Logogestaltung für einen kleinen Modelleisenbahnvertrieb und natürlich die laufenden Arbeiten an der Universität Bremen für unser e-Learning Projekt, das in kürzerer Zeit in die nächste Phase geht.