Cette page a pour objectif de décrire une méthodologie pour ajouter un nouveau matériel non pris en charge par le système de base.
Les étapes sont les suivantes :
Dans ce tutoriel nous allons prendre l'exemple d'un écran tactile non pris en charge par notre système.
Pour répérer le périphérique lancer l'une des commandes suivantes :
lspci -vv lsusb -vv
Parmis les nombreux périphériques, nous repérerons notre écran tactile par supposition. Le résultat de la commande lsusb
nous indique parmis les nombreuses informations, le numéro unique du périphérique (1926:007a), le nom du contructeur (NextWindow) et le nom du produit (Touchscreen):
Bus 002 Device 002: ID 1926:007a ... idVendor 0x1926 idProduct 0x007a ... iManufacturer 1 NextWindow iProduct 2 Touchscreen ...
A cette étape, nous sommes en mesure de faire quelques recherche sur Internet pour mettre la main sur le module qui permettra de faire fonctionner notre matériel. Avec un peu de chance, sur Google, vous pouvez indiquer la recherche “1926:007a” et vous tomberez peut-être sur un forum abordant la difficulté à intégrer le matériel.
Ou bien, vous pouvez tenter de faire une recherche, directement sur le site du contructeur, voir si à tout hasard il n'a pas le driver pour Linux.
Si vous n'arrivez pas à mettre la main sur un driver fonctionnel, il ne vous reste plus qu'à solliciter le constructeur.
Une fois que vous avez trouvé le module, il faut l'installer ou le compiler.
Plusieurs méthodes sont possibles pour installer le module :
Dans notre cas, nous avons la chance d'obtenir un .deb. Nous installerons toutes les dépendances pré-requises et finirons par installer le module :
apt-get install xserver-xorg-input-evtouch evtest dkms dpkg -i nwfermi-0.1_i386.deb
Si votre module .ko est installé dans le bon répertoire (variable en fonction des distributions), la commande modprobe va vous permettre de le charger.
modprobe nw-fermi
Pour vérifier qu'il est bien chargé :
lsmod |grep nw-fermi
A cette étape, notre module est bien chargé, mais le “lien” entre notre module et le périphérique n'est pas établi.
Nous allons donc informer notre module quel périphérique il doit prendre en charge en indiquant l'identifiant que nous avons repérer à la première étape :
echo "1926 007a" > /sys/bus/usb/drivers/nwfermi/new_id
Cette action, doit automatiquement nous créer un nœud dans /dev. Il n'est pas facile de repérer le nœud, si c'est un périphérique d'entrée, il devrait apparaitre dans /dev/input. Dans notre cas, il nous a créé /dev/input/event6
Pour tester qu'il se passe bien quelque chose, nous allons le vérifier en lançant par exemple :
cat /dev/input/event6
ou
evtest /dev/input/event6
Nous devons voir des caractères s'afficher en manipulant notre périphérique. Sinon ce n'est pas le cas c'est soit :
Dans l'étape précédante, nous avons établi le lien entre le matériel et le nœud dans /dev. Cette étape consiste à faire le lien entre l'interface graphique et le nœud de /dev. Il faut dans notre cas pour xorg, un module prenant en charge les périphériques d'entrée, notamment l'écran tactile. Soit le module de la distribution fonctionne, soit il faut s'en procurer un sur Internet avec quelques recherches. Le principe pour ajouter le module est le suivant :
Section "InputClass" Identifier "evdev touchscreen catchall" MatchIsTouchscreen "on" MatchDevicePath "/dev/input/event*" Driver "evdev" EndSection
Editer le fichier /etc/modules
et ajouter le nom du module à charger :
nw-fermi
Editer le fichier /etc/rc.local
et ajouter la déclaration du périphérique :
echo "1926 007a" > /sys/bus/usb/drivers/nwfermi/new_id