RSS: Blog | Wiki | Forum

Clavier

Un article de Easyneuf.

Sommaire

[modifier] Keyboard / Clavier

Cette page décrit comment ajouter un nouveau clavier/keymap pour l'easyGate. L'objectif n'est pas de rendre la chose simple mais de recenser tous les programmes et les implications dans le fonctionnement de l'OS.

[modifier] Clavier en mode console

Le clavier pour le mode console est géré par le kernel. Il faut utiliser l'utilitaire "loadkmap" pour charger une nouvelle keymap. Malheureusement, ce fichier est directement un dump de la table du kernel. Il faut donc générer le fichier depuis un linux qui a les outils "console-tools" et "busybox".

[modifier] Génération de la table de caractère

Le clavier est chargé depuis le fichier "/etc/init.d/S30console", qui se trouve dans l'arborescence buildroot dans "target/generic/target_skeleton/etc/init.d/S30console". La liste des claviers disponible sur un système linux se trouve dans le répertoire "/usr/share/keymaps/"

Exemple: pour le clavier suédois (se)

# ls -1 /usr/share/keymaps/i386/qwerty/
...
se-fi-ir209.kmap.gz 
se-fi-lat6.kmap.gz 
se-ir209.kmap.gz 
se-lat6.kmap.gz 
se-latin1.kmap.gz 
...

# loadkeys se-latin1 (charge le fichier se-latin1 dans le kernel)
# busybox dumpkmap > /tmp/se.kmap (dump la table des caractères pour la lire sur l'easyGate)
# busybox loadkmap < /tmp/se.kmap (commande utilisée pour charger la table des caractères)

[modifier] Modification du clavier dans l'OS

# cp /tmp/se.kmap buildroot/target/generic/target_skeleton/etc/console/
# vi buildroot/target/generic/target_skeleton/etc/init.d/S30console
Replace line:
  /sbin/loadkmap < /etc/console/fr.kmap
by
  /sbin/loadkmap < /etc/console/se.kmap


[modifier] Clavier en mode graphique (X window)

Configuration de xorg.conf

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"  
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "fr"
        Option          "XkbVariant"    "latin9"
EndSection

Le clavier est ignoré dans la version actuelle, puisque les touches ont été hardcodé dans le fichier à la compilation de l'OS (buildroot/package/xorg/xorg.mk)

Compilation du clavier fr.xkm

XXX

Installation du clavier fr.xkm

L'installation se fait en utilisant une option du buildroot (BR2_PACKAGE_INSTALL_COMPILED_KEYMAP et BR2_PACKAGE_COMPILED_KEYMAP)

XXX

[modifier] Changement de clavier à la volée

[modifier] Détection du clavier

[modifier] Sélection du clavier par l'utilisateur