I have a problem with the keyboard mapping in virtualbox guests. 

A number of keys show no action at all or turn out wrong symbols and changing the keyboard layout settings in the guest does not fix it.
Both the host and the guest run in 64 Bit.
The problem occurrs both in windows and linux guests.
On the host I tried Debian 7 with XFCE, Trinity and LXDE and I checked both the virtualbox 4.1 that comes with the distro as well as the current 4.2 installed from the wheezy backports.
I started all new then, with centos 6.4, Gnome desktop. Same issue appeared with virtualbox 4.2 installed from the virtualbox.repo
This is on a remote server which I access through vnc (tightvnc on debian and tigervnc on centos, local client is KRDC)
 
I have a German keyboard layout but I prefer to have the box run in English.
 
On centos 
cat /etc/sysconfig/keyboard
 
KEYTABLE="de"
MODEL="pc105"
LAYOUT="de"
KEYBOARDTYPE="pc"
 
LANG=en_US.UTF-8
 
All is well accessing the machine via ssh, yz at the right places, umlauts and all the symbols at the right place and available. 
All is well still accessing the host through vnc. I open Gedit and doing the same tests as above there is no problem.
In the guest however testing with a linux mint live cd, while zy still have the correct place some keys show no activity, including the key right of the P (udiaeresis Udiaeresis) and the keys right of L that should give odiaeresis and adiaeresis. The key to the left of the 1 and the key to the right of the 0 show no action. 
Other keys including the shift values of 3,7,0 and the symbol-keys on the right side have wrong output.
 
On the linux mint guest I checked the key codes with xev and those keys that show no activity apparently do not evoke a key event when hit. I can type üöäß as long as I want in the guest and xev wont output a single line.
 
Going back to the linux host xev running there outputs:
 
KeyPress event, serial 33, synthetic NO, window 0x3c00001,
root 0xfc, subw 0x0, time 13158645, (431,15), root:(433,68),
state 0x2000, keycode 219 (keysym 0xfc, udiaeresis), same_screen YES,
XLookupString gives 2 bytes: (c3 bc) "ü"
XmbLookupString gives 2 bytes: (c3 bc) "ü"
XFilterEvent returns: False
 
KeyRelease event, serial 33, synthetic NO, window 0x3c00001,
root 0xfc, subw 0x0, time 13158781, (431,15), root:(433,68),
state 0x2000, keycode 219 (keysym 0xfc, udiaeresis), same_screen YES,
XLookupString gives 2 bytes: (c3 bc) "ü"
XFilterEvent returns: False
 
KeyPress event, serial 33, synthetic NO, window 0x3c00001,
root 0xfc, subw 0x0, time 13171357, (431,15), root:(433,68),
state 0x2000, keycode 255 (keysym 0xf6, odiaeresis), same_screen YES,
XLookupString gives 2 bytes: (c3 b6) "ö"
XmbLookupString gives 2 bytes: (c3 b6) "ö"
XFilterEvent returns: False
 
KeyRelease event, serial 33, synthetic NO, window 0x3c00001,
root 0xfc, subw 0x0, time 13171481, (431,15), root:(433,68),
state 0x2000, keycode 255 (keysym 0xf6, odiaeresis), same_screen YES,
XLookupString gives 2 bytes: (c3 b6) "ö"
XFilterEvent returns: False
 
KeyPress event, serial 33, synthetic NO, window 0x3c00001,
root 0xfc, subw 0x0, time 13174995, (431,15), root:(433,68),
state 0x2000, keycode 254 (keysym 0xe4, adiaeresis), same_screen YES,
XLookupString gives 2 bytes: (c3 a4) "ä"
XmbLookupString gives 2 bytes: (c3 a4) "ä"
XFilterEvent returns: False
 
KeyRelease event, serial 33, synthetic NO, window 0x3c00001,
root 0xfc, subw 0x0, time 13175522, (431,15), root:(433,68),
state 0x2000, keycode 254 (keysym 0xe4, adiaeresis), same_screen YES,
XLookupString gives 2 bytes: (c3 a4) "ä"
XFilterEvent returns: False
 
KeyPress event, serial 33, synthetic NO, window 0x3c00001,
root 0xfc, subw 0x0, time 13179885, (431,15), root:(433,68),
state 0x2000, keycode 253 (keysym 0xdf, ssharp), same_screen YES,
XLookupString gives 2 bytes: (c3 9f) "ß"
XmbLookupString gives 2 bytes: (c3 9f) "ß"
XFilterEvent returns: False
 
KeyRelease event, serial 33, synthetic NO, window 0x3c00001,
root 0xfc, subw 0x0, time 13180045, (431,15), root:(433,68),
state 0x2000, keycode 253 (keysym 0xdf, ssharp), same_screen YES,
XLookupString gives 2 bytes: (c3 9f) "ß"
XFilterEvent returns: False
 
=================================
 
So I got it working in the end. There was a bug discussion on virtualbox with helpful info about the way virtualbox handles keyboard input:

I will quickly sumarise how we handle keyboard translation on X11 hosts. In fact we have two algorithms for doing this. The first one, which is the preferred one, is to try to determine whether one of the two standard X.Org PC mappings is in use (kbd or evdev). We do this by checking the keycodes of certain keys that are not likely to vary - like the left side modifier keys, tab, the first eight function keys - and seeing if they match one of the well-known mappings (and we do check for swapped ctrl and caps lock). If they do, we use that mapping, but certain custom keyboard layouts, like Neo and probably like your Dvorak layout, defeat this.

The second algorithm originally came from Wine, although a lot of work has gone into it since then. It works by reading the symbols attached to each keycode and comparing them to standard national layouts, and working back from there to the keyboard mapping. This is needed in particular for Sunray and I believe for X over ssh and VNC (although I should probably add Sunray to the standard layouts).

So this confirmed my suspicion that virtualbox performed some weird voodoo based on what it sees as the keyboard settings. And while all looked well judging from typing on the machine, both in a ssh shell or via vnc and X, I found rather strange tables with Xmodmap -pke . 
I created a valid xmodmap on my desktop box, shortened it to only contain those keys I actually need and use and put that into a file on the remote machine. 
I edited the ~/.vnc/xstartup script of the user who runs the vnc server to include the line 
xmodmap custom-modmap
at the top. And that made the difference.

I will not pretend to understand how things actually work together, my desktop, the remote machine, the xmodmap all use and are set to a German keyboard and still virtualBox now starts and presents an English keyboard to the guest machines. But this is something the guests are happy to remap to German and at least each keypress results in a key event now.

Thunderbird frisst cpu ohne Ende

Sunday, August 18. 2013

 Nichts neues, aber es faellt gerade sehr auf: Thunderbird ist mit weitem Abstand der cpu-hungrigste Prozess auf meinem System. Oft braucht es eine ganze CPU für sich alleine und wenn ich top laufen habe und mit T die ausgabe nach kumulierter Zeit sortieren lasse, dann steht der Donnervogel da mit (bspw) 105 vorne dran, gefolgt von VirtualBox (mit laufenden windows) bei 69 und X und kwin mit 24 und 17. Eine kleine handvoll accounts, imap, einer davon mit vielen Ordnern aber insgesamt gar nicht so viel Bewegung.
Was  macht das Programm nur mit der ganzen Leistung? Offenbar ist es mit aller Kraft damit beschaeftigt, seine mail-Datenbank immer wieder auf und zuzumachen. 
Prüfung und Abhilfe: In den Einstellungsdialog, dort Advanced, Reiter General, Knopf Config Editor rechts unten. Die beschwörende Mahnung, die beim ersten Mal hier kommt, abnicken und dann mail.db.idle-limit ansteuern. Bei mir stand da 300000 (5 Nullen) aber nach den beiden Links wäre hier 30000000 der rechte Eintrag. OK, zwei Nullen, return und die cpu-Last geht von 100 auf 4,3%, dann noch weiter.

 

 

owncloud 5.0

Saturday, March 16. 2013

(owncloud ist in reger Entwicklung und manches Problem, dass ich mit 5.0 sah, hat sich im Laufe der versionen schon erledigt. 
updates am Ende des Artikel.)

Heise berichtet von der eben erschienenen Version 5.0 von ownCloud und deutet auf laestig klingende upgrade-Methoden. Aber ich hab' es doch im repository... hier reicht ein apt-get update && ap-get upgrade und dann erscheint, nach Aufruf der Wolke, ein kurzer Hinweis auf das Upgrade, pling, pling,plong, pling, erfolgreich, weitergeleitet - fertig.
Erstmal login als Administrator, es sind eine Reihe neue Applications dazugekommen und ich aktiviere tasks - Antivir: hat zwar die Anmerkung "recommended", schmeisst mir aber gleich eine Fehlermeldung.
Auf den ersten Blick kommt mir die neue Oberfläche etwas dunkler vor, platzsparender und bedienbarer.
Raus und zweites Login als user, ich bekomme erst einmal minutenlang einen Verlaufsbalken mit dem Titel: "Dateisystem-Cache wird aktualisiert ..." Und dann: "Alles leer - lade etwas hoch!" :-( - da ist schon mal was verlorengegangen. Hoffentlich nur der Link...

Kurz mal durch die anderen Optionen:
Kontakte kennt auf einmal Gruppen! Schon mal ein Schritt in die richtige Richtung.
Aufgaben kennt keine hierarchischen Beziehungen zwischen tasks, also kein "Kapitel 1" .. "Kapitel n" als subTasks zu "Buch". Eine Task hat Title, Kategorie, Ort, Fälligkeit, Fertigstellung scheint Boolean zu sein. Nach Priorität kann man sortieren, aber wo man die setzt, sehe ich erst mal nicht.

Ein Blick in's forum.owncloud.org/ bestätigt, dass andere die Probleme (Dateien, Task/Priority) auch haben.
Es findet sich auch ein Hinweis auf ein Google import app.

Nach etwas stöbern und probieren sieht es für mich, was die fehlenden Inhalte in meinem ownCloud storage angeht, so aus: 
- unbegreiflicherweise sind alle Ordner, die zum Zeitpunkt des upgrade existierten, unsichtbar. Und zwar permanent und aktiv unsichtbar. Ich kann sie aus dem jwlg Verzeichnis verschieben, in der ownCloud-Oberfläche einen neuen, gleichnamigen anlegen, alles wunderbar. Ein Click auf Dateien und die Ordner sind unsichtbar. Dass sie existieren und zugänglich sind, kann man mit etwas Url-Gymnastik leicht feststellen. Aber sie werden eben nicht angezeigt.

Ok, neue Ordnernamen, gefällt nicht wirklich aber ein gangbarer workaround. Aber die Logik dahinter entgeht mir.

Es tut mir leid, das so sagen zu müssen, aber owncloud 5.0 funktioniert derzeit nur im Prinzip. Konkret erlebe ich dagegen einen Sack von Unzuverlässigkeiten, Funktionsausfällen, Überraschungen dass ich es derzeit allenfalls als Ergänzung zu den Google-Diensten nutzen kann, aber nicht als deren replacement.

Update:
Mit einiger Mühe hatte ich 5.0 dann letztlich doch in grundsätzlich funktionierendem status, 5.03 brachte dagegen einen markanten Sprung nach vorn, die erste Version, wo "Bilder" für mich nicht völlig kaputt aussieht....

Update
5.04 ist eben installiert und macht einen weiter verbesserten Eindruck. Allerdings ist auch nur ein rudimentäres subset der Features hier wirklich in Gebrauch, letztlich nur webdav / files. Kontakte sind bei google eben doch noch weit flexibler mit dem tagging zu Gruppen und der sync zu Thunderbirds Adressbuch. Und bislang habe ich noch keinen praktikablen weg gefunden, Kontaktbilder von Google nach owncloud zu ziehen. Nur schade, dass viele der drittseitigen Apps mit 5.x gar nicht laufen.   

Update
5.05 nennt sich selbst in der config.php 5.0.6, aber das war wohl auch bei der Vorversion schon so. Die "Geister" in Musik und Dateien gab es immer noch, daraufhin habe ich mit apt-get purge owncloud und brutaler Gewalt gegenüber der config.php und den Tabellen der mysql-db eine komplette De- und anschliessende Neuinstallation erzwungen. Seither funktionieren Bilder und Musik deutlich besser.

Update 15.5.2013
owncloud hat ganz offenbar eine interne Versionierung, die der veröffentlichten vorauseilt. Außen drauf steht 5.0.6 und so heisst auch das debian package (5.0.6-0) - aber die config.php nennt sich schon 5.0.8'  Das Upgrade selbst geht mit apt-get locker, anschliessend akualisiert sich OC mit dem ersten Aufruf der Seite im Bowser. Kein Problem dabei.
Ich benutze von den Modulen ja faktisch nur Dateien. weil mir für Kalender, Kontakte und Tasks die Synchronisierung mit den entsprechenden Google-Diensten fehlt, Musik geht nicht im Hintergrund weiter. Bilder funktioniert seit 5.0.5 besser als zuvor, ist aber immer noch etwas verwirrend. Der beklagt langsame Upload ist wohl wirklich schneller geworden, wie das release note aufführt, ich habe wie im Testszenario mp3's hochgeladen, über https://, allerdings im intranet. 446 MB in 90 sec. Upload über externe Verbindung steht noch zu testen aus.

Update 17.8. 2013
Owncloud ist bei mir nun schon mehr als einen Monat auch für Kontakte und Kalender an die Stelle von Google getreten und abgesehn von der mühsamen Migration der Kontakte und nur eingeschränkter Unterstützung der Gruppierung von Kontakten im neuen Thunderbird-Addon ist alles wunderbar. Immer mal kommt eine neue Version, derzeit 5.0.10 aber die anfangs teils holprige Update-Prozedur geht inzwischen locker durch.

 

KDE 4.10

Saturday, February 16. 2013

 Wenige Tage nach dem release bot mir pacman die Installation von KDE SC 4.10 an und ohne viel Zögern habe ich es installiert. 
Als kleine Remineszens an alte KDE-Zeiten war danach meine Desktop-Möblierung verschwunden, also die Hintergründe und widgets auf den acht virtuellen desktops. Leise fluchend habe ich sie mir wieder restauriert. Es brauchte dann noch 2 reboots, bis alles wieder lief.

Nepomuk scheint seine Arbeit viel besser und unauffälliger zu erledigen, aber die semantischen Features sind trotzdem zuweilen einfach verschwunden. Die Oberfläche ist chick, teils zu chick, so have ich probleme mit den transparenten popups des Panels unten, die auf überfüllten Desktops skaum noch zu lesen sind.

Und der Pager funktioniert nicht mehr richtig. it meinen vielen virtuellen desktops benutze ich den sehr oft und zwar zum umschalten als auch zur Orientierung. Für jeden virtuellen Desktop gibt es ja eine kleine Preview, wo die Fenster als dunkler Kasten gezeichnet werden, ausserdem gibt es beim Hoover mit der Maus eine popup mit einer Liste der offenen Fenster.

Und das Ding ist wählerisch geworden. Zuerst dachte ich sogar, es würden nun gar keine previews mehr dargestellt, vor vollen desktops und der pager zeigt nicht ein Fenster an. Aber dann entdeckte ich, dass für einige Programme sehr wohl wie gewohnt Fensterumrisse gezeichnet wurden, einige Programme werden nur beim start berücksichtigt, solange sie einen SplashScreen zeigen. Und der grosse Rest wird ignoriert.

Hier mal eine kleine Liste von Programmen in den drei erkannten Klassen:

Solche Fenster werden im Preview berücksichtigt:

  • pager settings
  • ksnapshot
  • AcquireImages
  • Panorama Creator
  • Avahi SSH Server Browser
  • KDE Wallet configuration
  • KsCD
  • Nepomuk Server configuration
  • password dialog of Kdesu
  • Kompare
  • KTimer

Diese Programme schaffen es nur mit dem anfänglichen SplashScreen:

  • Google Earth
  • RetroShare
  • Kdenlive
  • Kwave
  • XMind

und unter den vielen anderen, die ganz ignoriert werden, sind auch:

  • dolphin
  • KInfo
  • Konqueror
  • FireFox, Chrome, Opera
  • LibreOffice
  • Kate
  • KWrite
  • SystemSettings
  • konsole

Leider habe ich vergeblich nach einem anderen report solcher Probleme gesucht und auch zu wenig Ahnung von den Möglichkeiten, Fenster unter KDE zuöffnen, um an der Liste der unterschiedlich behandelten Programme und fensterarten die Ursache ablesen zu können.

Ich habe dazu einen Bug eingetragen und wer was weiss: Tips willkommen!

https://bugs.kde.org/show_bug.cgi?id=315273

 

 update 20.3.2013:

5 Wochen Stille und auf einmal Bewegung im Bugreport, zwei Confirmer, ein workaround:

kwin --replace &
aus der console nach dem Start von KDE korrigiert das Problem jedenfalls für die laufende Session. 
Nicht wirklich elegant - aber damit sollten die Devs im Prinzip genügend Info haben, den Käfer zu klatschen.

update 6.4.2013:
auf arch hält KDE SC 4.10.2 Einzug und der Pager zeigt jetzt gleich nach dem Start (und ohne konsolentricks) previews für alle Fenster aller vDesktops. Wenn man genau hinsieht, stimmen allerdings die Grössen nicht...

Serendipity und IPv6

Saturday, October 6. 2012

Serendipity ist die Software, die dieses Blog liefert, und wegen eines IPv6-bezogenen bug dieser Software war dies blog mehr als einen Tag offline. 
Serendipity hat ein plugin Spamschutz mit einer Reihe von Möglichkeiten, Kommentarspam zu bekämpfen, und eine davon ist, erkannte Spammer per IP vom Zugang zum Blog auszuschliessen. Das hat sich hier gegen bestimmte Serienspammer erstaunlich gut bewährt. 

Bis der erste Spammer mit einer IPv6-Adresse gelogt wurde, danach war mein blog weg.

Das Problem ist: 

serendipity_event_spamblock.php patzt bei der Behandlung von IPv6-Adressen. IPv4 sind kürzer als IPv6 Adressen.
(IPv4: 4 Teile x 3 Stellen + 3 Trenner = 15 Zeichen  IPv6: 8 x 4 + 7 = 39). Darauf ist das plugin nicht eingerichtet.
Wenn man in der config des Plugin "SPAM IP Adressen via HTaccess blocken? " 'Ja' ankreuzt und eine IPv6-IP als Spam erkannt worden ist, dann schreibt das Plugin in die .htaccess etwas ähnliches wie:
 
#SPAMDENY
Deny From 205.189.73.46 205.189.73.64 208.89.211.173 217.157.179.122 24.62.10.133 
2607:5300:10:60 31.135.196.229 37.10.106.185 37.10.112.228 37.10.116.107 37.10.116.35 
#/SPAMDENY
 
Problematisch ist der Eintrag '2607:5300:10:60' Das ist keine gültige IP sondern nur die vordere Hälfte einer IPv6. Und so bekommt man nun bei jedem Versuch, das Blog zu laden, eine wunderschöne 500er-Fehlermeldung mit dem Hinweis auf 'invalid IP'
 
Das Hackstück aus der .htaccess zu löschen hilft auch nicht, denn mit dem naechsten Spammer wird der ganze deny from... - Block neu aus der Datenbank gelesen und eingeschrieben, incl. des fehlerhaften Eintrags. Die zuständige Tabelle heisst serendipity_spamblock_htaccess und ist wohl auch gleich die Schuldige an dem Bug. 
 
Diese Tabelle hat zwei Felder, timestamp vom Typ varchar(19) unsigned und ip vom Typ varchar(15). Eine Breite von 15 ist fuer legacy IPs grad recht, für IPv6 ist das ein Fehler. Benötigt wird eine Feldbreite von varchar(39). 
 
Massnahmen:
- Breite des Feldes ip auf 39 hochsetzen
- alle (in meinem Fall nur 1) defekte IPv6 löschen
o shell öffnen, 
o mysql -u (username) -p (und passwort)
o use (datenbankName)
o delete from `serendipity_spamblock_htaccess` where (`ip` like "%:%");
- auf den nächsten Spammer mit IPv6 warten...
(Page 1 of 5, totaling 23 entries) » next page