Table des matières

Ajout de matériel sous Linux

Introduction

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 :

  1. Repérer l'identifiant du périphérique USB ou PCI
  2. Installer ou compiler le module prenant en charge le périphérique
  3. Charger le module
  4. Déclarer le périphérique dans le module
  5. Configurer l'interface graphique (si le périphérique s'utilise avec)
  6. Configuration automatique au démarrage

Dans ce tutoriel nous allons prendre l'exemple d'un écran tactile non pris en charge par notre système.

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” 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 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

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 au 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 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 :

Configurer l'interface graphique

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 :

  1. Rechercher le module
  2. Compiler et/ou installer le module dans le répertoire des modules de xorg (utiliser make, dpkg ou rpm)
  3. 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

Configuration automatique au démarrage

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