Compiz-Bug in Java

Bei Verwendung von 3D-Desktops unter Linux, wie z.B. Compiz(-Fusion), kommt es zu einem Bug der mir bisher noch gar nicht aufgefallen war. Mit Swing entwickelte Anwendungen zeigen (teilweise reproduzierbar) ein leeres Fenster:

Abhilfe schafft das Installieren von libXP und Wechsel des Toolkits via export AWT_TOOLKIT=MToolkit. Laut Kommentar im Fedorablog ist das aber nur ein grober Workaround, da anschließend wohl einige Maße nicht mehr stimmen.

Sun hat dafür auch einen Bugreport. Das Problem ist allerdings schon ziemlich alt. Scheinbar wird oder wurde daran zwar gearbeitet aber angesichts des Alters und der bisher nur sporadisch greifenden Fixes ist fraglich, wann das Problem endgültig behoben wird. Hilft wohl erstmal nur, bei Swing-Entwicklung Compiz abzuschalten. :(

uvesafb mit mehr als 60Hz

Nachdem nun schon seit einer Weile vesafb nicht mehr aktiv war, wollte ich letztens die Auflösung des Konsolen-Framebuffers wieder erhöhen. Dabei stellte sich heraus, daß vesafb durch uvesafb abgelöst wurde, welches einige Funktionen in den Userspace verlagert. Außer der Aktivierung der Kerneloption werden noch (unter Gentoo) eine Neukompilierung von klibc und als Userspace-Teil v86d benötigt. Eine genaue Anleitung gibts auf der Projektseite beim Autor.

Gegenüber vesafb ändert sich im besten Fall nicht viel in den Kernelparametern. In meinem Fall lautete der neue Eintrag:

video=uvesafb:ywrap,1280x1024-32@85

Nur auf 85Hz kam ich nach einem Reboot leider nicht, stattdessen flimmerte der Monitor mit 60Hz vor sich hin. Scheinbar können von vielen Nvidia-Karten die Werte des Monitors nicht ausgelesen werden. Allerdings lassen sich ersatzweise 3 Parameter übergeben, mit denen der Wechsel in die höhere Bildwiederholrate gelingt:

  1. maxhf – maximale horizontale Frequenz
  2. maxvf – maximale vertikale Frequenz
  3. maxclk – Takt des Grafikchips

Die ersten beiden Werte hat man schonmal in /etc/X11/xorg.conf eingetragen, Section Monitor, in meinem Fall HorizSync 30.0 - 96.0 und VertRefresh 50.0 - 160.0. Den Takt verrät Xorg beim Start und lässt sich im Logfile wiederfinden. cat /var/log/Xorg.0.log | grep -i hz liefert bei mir: (--) NVIDIA(0): STN SAMTRON (CRT-1): 350.0 MHz maximum pixel clock

So lassen sich dann folgende Parameter ergänzen: video=uvesafb:ywrap,1280x1024-32@85,maxhf:96,maxvf:160,
maxclk:350

dmesg meldet dann:
uvesafb: NVIDIA Corporation, NV28 Board, Chip Rev A0, OEM: NVIDIA, VBE v3.0
uvesafb: protected mode interface info at c000:e740
uvesafb: pmi: set display start = c00ce785, set palette = c00ce80a
uvesafb: pmi: ports = b4c3 b503 ba03 c003 c103 c403 c503 c603 c703 c803 c903 cc03 ce03 cf03 d003 d103 d203 d303 d403 d503 da03 ff03
uvesafb: VBIOS/hardware doesn't support DDC transfers
uvesafb: monitor limits: vf = 160 Hz, hf = 96 kHz, clk = 350 MHz
uvesafb: scrolling: ywrap using protected mode interface, yres_virtual=4915
uvesafb: framebuffer at 0xd8000000, mapped to 0xf8880000, using 24576k, total 65536k

Linux auf dem iBook G4

Linux läuft bekanntlich überall. Daß es nicht überall gleich gut läuft ist auch bekannt. Daß es aber – in meinen Augen – nahezu unbrauchbar auf dem iBook G4 ist, hat selbst mich überrascht. Aber erstmal von Anfang an:

Motivation
Mein iBook wurde unter OS X subjektiv immer langsamer. Besonders wenn einige große Anwendungen, wie z.B. Eclipse liefen, dann war das arme Notebook einfach beim Multitasking überfordert. Das kann u.a. am RAM gelegen haben (512MB), muss aber nicht zwangsläufig, da es einige Zeit zuvor – subjektiv – schneller und flüssiger lief. Nachdem ich letztes Jahr auf dem Desktop zum Arbeiten komplett auf Linux umgestiegen bin, fingen mich auch einige andere Dinge an zunehmend zu nerven, so z.B. das irrsinnig langsame – wenn überhaupt noch funktionierende – X11 (brauche ich z.B. für Inkscape) oder das seltsame, unkomfortable Terminal an dem man sich dauernd stößt sobald man via SSH woanders einloggt. Java 1.6 gibts auch nicht und obs das für PPC überhaupt noch geben wird ist eh fraglich. Das Speichermanagement erscheint mir sehr ineffektiv (abgesehen vom statischen Linken aller Programme) und ob sich Leopard performancemäßig lohnen würde stand auch in den Sternen. Was tun, sprach Zeus? Ganz klar: Linux muss her! Also Backup gefahren, Partitionen neu aufgesetzt, OS X reinstalliert und Gentoo Live-CD eingelegt. Das war im Oktober und ich war guter Dinge. Leider sollte meine Euphorie schnell verfliegen….

Es folgt eine ziemlich lange Anleitung zur Lösung vieler vor allem plattformspezifischer Probleme. Continue reading “Linux auf dem iBook G4”