Installation - activer uinput
Charger uinput
Il nous reste à faire deux choses : vérifier que le module uinput est chargé, si nécessaire, et vérifier les droits d'accès uinput.
Essayez de trouver le dispositif uinput, vérifiez laquelle de ces commandes vous renvoit une réponse non vide, et notez le chemin pour plus tard :
$ ls -l /dev/input/uinput $ ls -l /dev/uinput $ ls -l /dev/misc/uinput
Si toutes ces commandes ne renvoient rien, il est probale que le module uinput n'est pas chargé. Il faut donc le charger, et pour éviter d'avoir à le faire à chaque redémarrage, vérifier que le module est automatiquement chargé au démarrage - ceci dépend de la distribution linux, je vous donne le code pour gentoo (avec les droits super utilisateur, bien entendu) :
# modprobe uinput # echo "uinput" >> /etc/modules.autoload.d/kernel-2.6 # echo "uinput" >> /etc/conf.d/modules // si utilise baselayout-2
Ne le faites pas si ce n'est pas nécessaire, c'est-à-dire si votre distribution charge déjà automatiquement le module uinput, ou bien si uinput est construit dans le noyau, auquel cas charger le module est inutile (et impossible !).
Vérifier les permissions uinput
Dans la majorité des cas, vous n'aurez pas l'accès en écriture au dispositif uinput, qui est nécessaire. Vérifiez le résultat de la commande ls ci-dessus, si celle-ci vous renvoit quelque chose comme :
crw-rw---- 1 root root 10, 223 Dec 31 2009 /dev/input/uinput
Il est alors clair que root est propriétaire du dispositif, et ne permet pas aux utilisateurs non root l'accès. Deux manières de résoudre ce problème existent, la version sale-et-rapide, et la version permanente et propre. Pour la première, à refaire après chaque redémarrage :
# chmod 666 /dev/input/uinput
Pour la seconde, vous pouvez utiliser les règles udev fournies avec les sources chmfp (à renommer si vous voulez), et les copier dans le bon répertoire (dépend une fois encore de la distribution, exemple pour gentoo). Je crée ensuite un groupe uinput et j'y affecte les utilisateurs (si vous préférez utiliser un groupe différent, modifiez le fichier).
# cp /usr/local/src/chmfp-0.6.0/14-uinput.rules /etc/udev/rules.d/. # udevadm control restart # groupadd uinput # usermod -a -G uinput <username>