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