Primo le matériel :
- un USB-UIRT
- une télécommande universelle
Pourquoi ce choix. Simple, le module USB-UIRT présente plusieurs avantage :
- il est reconnu nativement par le noyau Linux
- il est reconnu nativement par le noyau Linux (c’est doublement important)
- il n’est pas seulement un récepteur infrarouge il est aussi un émetteur infrarouge ! Ceci ouvre plein de possibilité intéressante comme par exemple, le contrôle d’un ventilateur mural
Hostilité 1 : on branche
Le UIRT est reconnu directement via le module ftdi_sio. On modprobe et on l’ajoute dans /etc/modules. Une fois fait on voit dans le /var/log/messages un très rassurant :
Oct 17 16:38:32 motoko kernel: [14802.381280] USB Serial support registered for FTDI USB Serial Device
Oct 17 16:38:32 motoko kernel: [14802.381405] ftdi_sio 3-3:1.0: FTDI USB Serial Device converter detected
Oct 17 16:38:32 motoko kernel: [14802.381435] usb 3-3: Detected FT232RL
Oct 17 16:38:32 motoko kernel: [14802.381501] usb 3-3: FTDI USB Serial Device converter now attached to ttyUSB0
Oct 17 16:38:32 motoko kernel: [14802.381516] usbcore: registered new interface driver ftdi_sio
Oct 17 16:38:32 motoko kernel: [14802.381519] ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver
Hostilité 2 : le daemon lirc
lirc est un daemon en espace utilisateur qui prend en compte les signaux capté par notre émetteur et les transforme en code compréhensible. Il est la pièce maîtresse de notre installation :
aptitude install lirc lirc-modules-source
Le gentil script post-install va vous demander votre type de récepteur. Sélectionnez USB-UIRT. Une fois le daemon démarré vous devriez voir dans le /var/log/message :
lircd-0.8.3[10254]: uirt2_raw: checksum error
lircd-0.8.3[10254]: uirt2_raw: UIRT version 0905 ok
Vous pouvez ignorer la ligne checksum error pour le moment. La présence de la deuxième ligne avec un ok indique que notre récepteur est correctement reconnu. Il est tant d’éditer le fichier /etc/lirc/hardware.conf pour quelques ajustements :
REMOTE="Custom"
REMOTE_MODULES=""
REMOTE_DRIVER="usb_uirt_raw"
REMOTE_DEVICE="/dev/ttyUSB0"
REMOTE_LIRCD_CONF=""
REMOTE_LIRCD_ARGS=""
TRANSMITTER="USB_UIRT"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER="usb_uirt_raw"
TRANSMITTER_DEVICE="/dev/ttyUSB0"
TRANSMITTER_LIRCD_ARGS="-d /dev/ttyUSB0"
START_LIRCD="true"
LOAD_MODULES="false"
LIRCMD_CONF=""
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""
Le paramètre le plus important est REMOTE_DEVICE dont la valeur doit être votre récepteur USB-UIRT (chez moi /dev/ttyUSB0). Si vous disposer d’un autre périphérique comportant un convertisseur USB->Série vous devrez ajouter une règle udev afin que votre USB-UIRT soit toujours étiqueté de la même façon.
A ce stade vous pouvez faire un cat /dev/ttyUSB0. En pressant n’importe quoi sur votre télécommande, vous devriez voir des caractères s’afficher dans votre terminal. Si oui votre récepteur IR est opérationnel.
Hostilité 3 : fichier de configuration de la télécommande
Oké maintenant la partie la plus relou. Il vous faut rédiger le fichier de configuration /etc/lirc/lircd.conf qui va associer chaque code a un bouton virtuel pouvant être utilisé par d’autres programmes. Ce fichier est spécifique a votre télécommande. Si vous avez de la chance vous trouverez ici un fichier tout fait. Dans le cas contraire vous allez devoir le faire vous même :
- stopper
lirc - faite un
irrecord -f --device=/dev/ttyUSB0 --driver=usb_uirt_raw lircd.conf - suivez patiemment les instructions. Lorsqu’on vous dit Press enter to stop vous devez entrer le nom du bouton (un
irrecord --list-namespacevous les donnera) puis tapper entrée puis pressez le bouton en continu jusqu’à ce qu’il soit reconnu. On vous demandera alors un autre bouton, etc. - une fois la procédure terminée relancer
lirc
Vous pouvez tester votre configuration avec la commande irw. Pressez la touche de votre télécommande et le nom du bouton associé devrait s’afficher dans le terminal.
Hostilité 4 : irkick
Ok il reste maintenant a associer des actions a vos boutons virtuels afin de piloter les applications de votre bureau. C’est ici qu’intervient un programme du projet KDE tout simplement indispensable j’ai nommé irkick. Son interface est très intuitive et vous ne devriez avoir aucun mal a configurer toutes vos application standard (Amarok, Dragon Player, SoundMixer, Okular, etc.). Le seul cas un peu spécial est VLC. Il faut penser à activer le contrôle via DBUS (Outils->Préférence->Tous->Interfaces->Interfaces de Contrôle) sinon le “pilotage” ne fonctionnera pas.