Ceci est une ancienne révision du document !
Table des matières
Ajout de matériel sous Linux
Introduction
Cette page à 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 :
- Repérer l'identifiant du périphérique USB ou PCI
- Installer ou compiler le module prenant en charge le périphérique
- Charger le module
- Déclarer le périphérique dans le module
- Configurer l'interface graphique (si le périphérique s'utilise avec)
- Configuration automatique au démarrage
Dans ce tutoriel vous allons prendre l'exemple d'un écran tactile non pris en charge.
Repérer l'identifiant du périphérique USB ou PCI
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” Ubuntu 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.
Installer ou compiler le module prenant en charge le périphérique
Une fois que vous avez trouver le module, il faut l'installer ou le compiler.
Plusieurs méthodes sont possibles pour installer le module :
- make : Pour compiler et installer le module
- dpkg : Si vous avez obtenu le module sous forme de paquetage .deb (Debian, Ubuntu)
- rpm : Si vous avez obtenu le module sous forme de paquetage .rpm (RedHat, Fedora)
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
Charger le module
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
Déclarer le périphérique aux module
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 noeud dans /dev. Il n'est pas facile de repérer le noeud, 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 utilisant notre périphérique. Sinon c'est que vous n'avez pas trouver le noeud, ou le module n'est pas chargé, ou encore qu'il ne fonctionne pas pour ce matériel.
Configurer l'interface graphique
Dans l'étape précédante, nous avons établi le lien entre le matériel et le noeud dans /dev. Cette étape consiste à faire le lien entre l'interface graphique et le neoud de /dev. Il faut dans notre cas pour xorg, un module prenant en charge les périphériques d'entrée, notament 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 :
- Rechercher le module
- Editer le fichier de configuration de xorg pour ajouter notre périphérique d'entrée. Par exemple :
Section "InputClass" Identifier "evdev touchscreen catchall" MatchIsTouchscreen "on" MatchDevicePath "/dev/input/event*" Driver "evdev" EndSection
