La gestion des télécommandes a radicalement changé depuis l'introduction des modules de gestion des télécommandes dans le noyau ( =⇒ 2.6.35)
Depuis la version 2.6.35 (à confirmer), les modules de gestion des télécommandes ont été directement introduit dans les sources du noyau. Ce n'est plus vous qui décidez d'utiliser tel ou tel module pour la gestion de la télécommande, mais c'est le noyau qui décide. Udev détecte votre récepteur et installe le module approprié. Par ailleurs la ré-écriture des modules a conduit à une certaine uniformité dans la gestion des télécommandes. La majeure partie des récepteurs sont désormais vues comme des périphériques d'entrée et assimilé à un clavier.
Ce qui conduit votre télécommande à être directement opérationnelle sans avoir besoin d'installer lirc. Mais en théorie seulement car pour le moment ce mode est totalement inutilisable, toutes les touches des télécommandes ne sont pas reconnues et quand elles sont reconnues, elles le sont selon le clavier US.
Il faut donc encore avoir recours à lirc et faire en sorte que la télécommande ne réagisse plus comme un clavier.
Pour savoir si vous êtes dans la situation décrite précédemment, tapez dans une console
dmesg | grep input ou grep ir ou grep hauppauge ou grep "ma télécommande"
si vous voyez quelque chose comme cela
input: cx88 IR (Hauppauge Nova-S-Plus as /devices/pci0000:00/0000:00:1e.0/0000:02:0c.2/rc/rc0/input5
vous êtes dans le cas précité, confirmez avec cette commande
cat /proc/bus/input/devices
qui doit vous fournir quelque chose comme cela
I: Bus=0001 Vendor=0070 Product=9202 Version=0001 N: Name="cx88 IR (Hauppauge Nova-S-Plus " P: Phys=pci-0000:02:0c.2/ir0 S: Sysfs=/devices/pci0000:00/0000:00:1e.0/0000:02:0c.2/rc/rc0/input5 U: Uniq= H: Handlers=kbd event5 B: EV=100003 B: KEY=100fc312 214a802 0 0 0 0 18000 41a8 4801 9e1680 0 0 10000ffc
On voit que le driver du récepteur est “kbd” (pour keyboard) et que chez moi, il est disponible sous /dev/input/event5
Il fait réaliser 2 étapes
La gestion des périphériques (claviers, souris, télécommandes) dans l'interface graphique est assuré par xorg. Le Xorg.conf n'est plus le fichier de configuration, il faut désormais aller voir du coté de /etc/X11/xorg.conf.d; c'est dans 10-evdev.conf que sont gérés les “events” des périphériques du type clavier/souris/télécommande .
Utiliser la méthode habituelle pour installer lirc.
Procédons dans l'ordre des liens entre les fichiers de configuration. Commençons par le fichier de configuration du démon de lirc (lircd) pour qu'il utilise le bon driver et le bon périphérique. Selon votre distribution ce fichier peut être :
Modifiez ce fichier comme suit :
# # Parameters for lirc deamon # LIRC_DEVICE=name="cx88\?IR\?\?Hauppauge\?Nova-S-Plus\?" # les \? remplacent les caractères spéciaux LIRC_DRIVER="devinput" LIRC_EXTRAOPTS="" LIRC_CONFIGFILE="/etc/lirc/lircd.conf"
En mettant “name=cx88\?IR\?\?Hauppauge\?Nova-S-Plus\?”, vous ne vous souciez plus du numéro d “event” qui peut changer à chaque démarrage. Ce “name” est donné par le résultat de la commande “cat /proc/bus/input/devices”. (astuce donnée par Philippe_PMA)(chez moi, ça fonctionne avec sans le \?)
Vous pouvez également utiliser les nouvelles possibilités de udev qui crée des liens fixes par composant. A découvrir en tapant dans une console
ls -la /dev/input/by-path/ total 0 drwxr-xr-x 2 root root 140 2008-02-07 20:31 . drwxr-xr-x 4 root root 280 2008-02-07 20:31 .. lrwxrwxrwx 1 root root 9 2008-02-07 20:31 pci-0000:00:1a.1-usb-0:2:1.0-event-kbd -> ../event1 lrwxrwxrwx 1 root root 9 2008-02-07 20:31 pci-0000:00:1a.1-usb-0:2:1.1-event-mouse -> ../event2 lrwxrwxrwx 1 root root 9 2008-02-07 20:31 pci-0000:00:1a.1-usb-0:2:1.1-mouse -> ../mouse1 lrwxrwxrwx 1 root root 9 2008-02-07 20:31 pci-4-1--event-ir -> ../event4 lrwxrwxrwx 1 root root 9 2008-02-07 20:31 platform-pcspkr-event-spkr -> ../event3
En utilisant “/dev/input/by-path/pci-4-1–event-ir”, vous vous affranchissez également du numéro d“event”.
Autre solution, mettre ceci
Pour Ubuntu, le fichier de configuration doit ressembler à ceci
# /etc/lirc/hardware.conf # # Arguments which will be used when launching lircd LIRCD_ARGS="" #Don't start lircmd even if there seems to be a good config file #START_LIRCMD=false #Try to load appropriate kernel modules LOAD_MODULES=true # Run "lircd --driver=help" for a list of supported drivers. DRIVER="dev/input" # If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be # automatically used instead DEVICE="/dev/input/by-path/pci-4-1--event-ir" MODULES="" # Default configuration files for your hardware if any LIRCD_CONF="/etc/lirc/lircd.conf" LIRCMD_CONF=""
Si vous avez des rubriques “remote” et “transmiter”, utilisez ceci
#Chosen Remote Control REMOTE="Linux input layer (/dev/input/eventX)" REMOTE_MODULES="" REMOTE_DRIVER="devinput" REMOTE_DEVICE="/dev/input/by-path/pci-4-1--event-ir" REMOTE_SOCKET="" REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf" REMOTE_LIRCD_ARGS="" #Chosen IR Transmitter TRANSMITTER="" TRANSMITTER_MODULES="" TRANSMITTER_DRIVER="" TRANSMITTER_DEVICE="" TRANSMITTER_SOCKET="" TRANSMITTER_LIRCD_CONF="" TRANSMITTER_LIRCD_ARGS=""
Passons au fichier /etc/lirc/lircd.conf qui est chargé de traduire les codes touches (numériques) reçus de la télécommande, en noms de touches. Contrairement à ce que l'on aurait pu espérer, ces codes ne sont pas identiques pour chaque télécommande. De plus, l'entête de ce fichier doit contenir des caractéristiques précises pour la bonne interprétation de ces codes et ces informations peuvent être différentes selon la marque, le modèle, voir la version du matériel. Heureusement LIRC fourni quelques fichiers prédéfinis qu'on peut trouver aux emplacements suivants :
Si vous trouvez votre bonheur parmi les fichiers fournis, il suffit d'ajouter un lien dans /dev/lirc/lircd.conf comme dans cet exemple :
include "/usr/share/lirc/extras/more_remotes/hauppauge/lircd.conf.hauppauge_novat500"
Vous pouvez tester une configuration en faisant ceci dans une console en root
# Stopper le démon LIRC : /etc/rc.d/lircd stop # à adapter selon votre distribution # dans la ligne suivante, remplacer pci-4-1--event-ir par le votre, tapez lircd --help pour plus de détails lircd -H devinput -d /dev/input/by-path/pci-4-1--event-ir -n /etc/lirc/lircd.conf
lircd-0.8.7-CVS[17443]: garbage after 'name' token in line 9 ignored lircd-0.8.7-CVS[17443]: lircd(devinput) ready, using /var/run/lirc/lircd
Ouvrir une autre console en root et tapez
irw # puis tapez sur les touches de votre télécommande
Les codes de votre télécommande devraient s'afficher dans la console sinon il faut essayer avec un autre fichier de correspondance de touches ou en créer un qui sera mieux adapté à votre télécommande.
Pour créer votre propre fichier il faut utiliser irrecord :
# le démon LIRC doit être arrêté # dans la ligne ci-dessous, remplacer le "device" par le votre ainsi que le chemin du fichier qui sera généré irrecord -H devinput -d /dev/input/by-path/pci-4-1--event-ir -n /etc/lirc/nom_fichier_touches.conf
Au départ, irrecord demande d'appuyer sur une touche quelconque de la télécommande pour détecter les fameuses caractéristiques de récupération des codes. Il faut alors rester appuyé sur une touche et ne pas la relâcher tant que irrecord ne réagit pas. Ensuite, irrecord va demander le nom que l'on veut affecter à la prochaine touche puis il faudra appuyer (brièvement cette fois-ci) sur la touche en question.
Pour l'affectation des noms, si on veut éviter d'avoir à changer tous les noms du fichier lircrc (voir ci-dessous), il vaut mieux redonner les mêmes que ceux qui y sont indiqués. De cette manière, on redéfinit entièrement le fichier de correspondance télécommande –> LIRC. Une fois que c'est fait, il faut dire à LIRC d'utiliser notre fichier perso en l'indiquant dans le fichier /etc/lirc/lircd.conf.
Il reste à lier lirc avec Mythtv en créant le fichier
/home/user/.mythtv/lircrc (le "user" doit correspondre à celui qui lance le frontend)
Le paramètre delay est le délai avant répétition. Lorsqu'on reste appuyé sur une touche, elle n'est pas répétée immédiatement. On peut ajuster ce temps d'attente avec le paramètre delay.
Quant au paramètre config il définit ce que doit faire MythTV à l'appui de la touche.
# LIRCRC # Author(s): Mario Limonciello, Nick Fox, John Baab, Edited by Chris Murphy # Created for use with Mythbuntu 10.10 begin remote = devinput prog = mythtv button = KEY_EXIT config = Escape repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_RECORD config = R repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_PLAY config = P repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_REWIND config = < repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_PAUSE config = P repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_FASTFORWARD config = > repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_PREVIOUS config = Up repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_STOP config = Escape repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NEXT config = Down repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_BACKSPACE config = Escape repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_SELECT config = Return repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_CONTEXT_MENU config = Q repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_COMPOSE config = Z repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_ENTER config = Return repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_UP config = Up repeat = 3 delay = 0 end begin remote = devinput prog = mythtv button = KEY_DOWN config = Down repeat = 3 delay = 0 end begin remote = devinput prog = mythtv button = KEY_LEFT config = Left repeat = 3 delay = 0 end begin remote = devinput prog = mythtv button = KEY_RIGHT config = Right repeat = 3 delay = 0 end begin remote = devinput prog = mythtv button = KEY_ESC config = Escape repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_DASHBOARD config = S repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_PROG1 config = Return repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_CYCLEWINDOWS config = I repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_MUTE config = | repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_VOLUMEUP config = ] repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_VOLUMEDOWN config = [ repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_CHANNELUP config = Up repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_CHANNELDOWN config = Down repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_TIME config = F8 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_1 config = 1 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_2 config = 2 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_3 config = 3 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_4 config = 4 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_5 config = 5 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_6 config = 6 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_7 config = 7 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_8 config = 8 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_9 config = 9 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_0 config = 0 repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_POUND config = D repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_NUMERIC_STAR config = ? repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_BOOKMARKS config = C repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_MEDIA config = O repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_ZOOM config = W repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_SCREEN config = F repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_MENU config = M repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_SUBTITLE config = T repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_LANGUAGE config = + repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_VIDEO config = \U repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_AUDIO config = \M repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_CAMERA config = \I repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_TV config = \T repeat = 0 delay = 0 end begin remote = devinput prog = mythtv button = KEY_DVD config = \D repeat = 0 delay = 0 end
Relancer lirc ou mieux relancer votre machine et tester le fonctionnement de la télécommande dans Mythtv.
Rédigé par Gilles74 le 22/11/2010; modifié en 12/2010; corrigé suite aux remarques d'Ookaze en mai 2011