====== 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 : - 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 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 : * [[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 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 : * que vous n'avez pas trouvé le nœud * que le module n'est pas chargé * 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 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 : - Rechercher le module - Compiler et/ou installer le module dans le répertoire des modules de xorg (utiliser [[make]], [[dpkg]] ou [[rpm]]) - 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