QVINTVS · SCRIBET

Busybox-Keymaps kompilieren

Es scheint relativ unbekannt zu sein, aber Busybox unterstützt das Laden anderer Keymaps als derjenigen für die US-Tastatur.

Seit ich mich relativ intensiv mit meinem 101G9-Tablet von ARCHOS auseinandersetze, komme ich zwangsweise in engeren Kontakt mit sog. »Embedded Systems«, also Linux auf »eingebetteten«, sprich in sich abgeschlossenen Systemen wie Tablets oder Smartphones es sind. Im Zuge dessen trifft man immer dann auf Busybox, wenn es darum geht, einen (Root-)Shellzugriff auf diesen Geräten zu bekommen. Ist dieser einmal eingerichtet, ärgert man sich als europäischer bzw. deutscher Nutzer immer wieder gerne über das US-Tastaturlayout, das der Linuxkernel, sofern er nicht anders konfiguriert wurde, einem standardmäßig aufzwingt.

Erfreulicherweise habe ich vor kurzem festgestellt, dass Busybox ein Applet namens loadkmap bietet, was grob dem loadkeys der meisten Linux-Distributionen entspricht und die Tastenbelegung anhand einer sogenannten »Keymap« verändern kann. Solche Keymaps bringt jede Linux-Distribution mit, meist im Verzeichnis /usr/share/kbd/keymaps oder /usr/share/keymaps und dessen Unterverzeichnissen. Leider besteht die Busybox auf »kompilierten« bzw. »binären« Keymaps, liefert aber keine genaue Erklärung dazu, was das eigentlich sein soll. Dieser Blogger hat sich mit dem Problem auseinandergesetzt und das loadkeys-Programm so umgeschrieben, dass es in der Lage ist, das von Busybox erwartete Format auszugeben. Zumindest ArchLinux hat diese Patches übernommen und so ist es möglich, mithilfe von

$ loadkeys -b de-latin1 > de-latin1.bmap

etwa die Keymap für deutsche Normtastaturen ins Busybox-Format zu übersetzen. Debians loadkeys unterstützt die -b-Option allerdings leider nicht; zu anderen Linux-Distributionen kann ich mangels Installation wenig sagen.

Im Busybox-Prompt kann man die so erzeugte Keymap dann wie folgt laden:

$ loadkmap < de-latin1.bmap

Wie ihr die Datei allerdings in die Umgebung der Busybox einschleust, müsst ihr selbst herausfinden; bei meinem Tablet kann ich hinten einfach einen USB-Stick einstecken, einhängen und habe dann alles notwendige da.

Valete.