Communauté francophone de MythTVCommunauté francophone de MythTV
<< Page précédente Retour au Sommaire Page suivante >>
MythTV n'a pas de logiciel intégré de réception et de décodage de télécommande. Au lieu de cela, des fonctions de télécommande sont implémentées par la coopération avec lirc, le programme de télécommande infrarouge (NdT : Linux Infrared Remote Control, soit LIRC) de Linux. lirc gère le matériel IR (NdT : InfraRouge) et passe des touches clavier à MythTV, qui ensuite agit comme si l'utilisateur avait appuyé sur les touches du clavier. Le fichier keys.txt décrit les touches employées pour commander MythTV.
# urpmi lirc lirc-remotes et éviter les étapes manuelles de compilation décrites ci-dessous en vous rendant à la section Compléter l'installation de lirc. Consultez le fichier contrib/mandrake91.etc.sysconfig.lircd pour un exemple sur la façon de configurer lircd.
Quelques pilotes IR exigent une recompilation du noyau, et d'autres non. Cependant, tous exigent au moins d'avoir les sources du noyau disponibles comme ressource pour le processus de construction de lirc.
Pour installer lirc sur Gentoo, tout ce que vous avez à faire est :
# emerge lirc
Vous allez avoir besoin de télécharger et compiler lircd. Rendez-vous à http://www.lirc.org/ et téléchargez lirc; au 24/01/2008, la version disponible est 0.8.2 (NdT : cette phrase a été mise à jour par rapport au HOWTO original). Récupérez également le fichier remotes.tar.bz2.
$ tar -xjf lirc-0.8.0.tar.bz2 $ cd lirc-0.8.0 $ ./setup.sh
Vous allez avoir besoin de savoir quel type de récepteur vous avez et où il est connecté. Dans le cas d'une carte Pinnacle Studio TV, avec le récepteur IR (NdT : InfraRouge) connecté à COM1 (/dev/ttys0), une fois que le menu de configuration arrive, exécutez la configuration en vous rendant dans Configuration de Pilote→Autre Périphérique Port Série→Systèmes de Réception Pinnacle→OK et sur la page suivante, sélectionnez COM1→OK (NdT : à vérifier).
Chaque télécommande est différente; certains récepteurs de télécommande se connectent directement à la carte d'acquisition et non à un port série, donc assurez-vous que vous avez le bon (NdT : port ?).
Vous cliquez ensuite sur « Sauvegarder la configuration et lancer configure » pour continuer.
Assurez-vous de lire le dernier texte généré par l'étape configure. Il vous dira si vous avez besoin d'une recompilation du noyau, et le nom qu'aura votre module de noyau (si nécessaire). Par exemple un récepteur fait maison peut nécessiter une recompilation du noyau, donc vous seriez notifié que vous devrez avoir à charger le module lirc_serial. Si vous n'avez pas eu un tel message, sautez les étapes de recompilation du noyau ci-dessous et rendez-vous directement à la fabrication et l'installation du pilote lirc.
Une fois l'étape de configuration terminée :
$ make $ su # make install # chmod 666 /dev/lircd
A ce niveau, si vous utilisez un récepteur série, vérifiez que vous avez un périphérique lirc dans /dev :
$ ls -l /dev/li* lr-xr-xr-x 1 root root 5 Jan 27 09:00 /dev/lirc -> ttyS0 srw-rw-rw- 1 root root 0 Jan 27 15:01 /dev/lircd= prw-r--r-- 1 root root 0 Jan 27 09:00 /dev/lircm|
Comme vous pouvez le voir, il y a un lien de /dev/lirc vers ttyS0, c.à.d. « COM1 », ce qui est approprié pour la Pinnacle Systems PCTV Pro. Cependant, vous pourriez apercevoir quelquechose comme cela :
crw------- 1 root root 61, 0 Dec 31 1969 lirc
Certains récepteurs IR (incluant certaines fait main) utilisent un périphérique caractère comme interface de données, à l'opposé d'un lien vers un port série. Si l'étape make install vous a créé un périphérique caractère, ne le remplacez pas par un lien vers un port COM.
Donc, si le lien ou le périphérique caractère n'a pas été créé (mais aurait dû l'être), assurez-vous que vous avez lancé l'étape make install en tant que root. Si cela ne fonctionne toujours pas, il y a alors trois options. La première option est de relire la documentation de lirc pour déterminer si votre récepteur IR est un périphérique caractère ou devrait être un lien vers un port série et pour créer le lien/périphérique caractère manuellement. Dans cet exemple, le dispositif IR est connecté à ttyS0. S'il était connecté à « COM2 », utilisez alors ttyS1, etc.
$ su # cd /dev # ln -sf ttyS0 lirc # exit $
# mknod /dev/lirc c 61 0
Consultez la documentation lirc pour des informations additionnelles. L'installation de lirc devrait vous le créer, donc le créer manuellement indique que votre installation de lirc peut avoir d'autres problèmes.
La deuxième option est de poster votre problème sur la liste lirc, et non pas sur la liste mythtv-users. Les programmeurs lirc sont ceux qui pourront le mieux vous assister.
La troisième option est de carrément se dispenser de lirc et d'acheter un clavier IR (diverses options existent, bien que Chicony semble fonctionner pour certaines personnes) et une télécommande programmable. Le récepteur du clavier IR se branche dans le port clavier PS/2 de votre PC et vous apprendrez à votre télécommande programmable à émuler les diverses touches dans keys.txt de votre clavier IR. Utiliser cette méthode enlève complètement lirc du paysage - votre télécommande enverra des pressions de touches que votre PC « verra » sur le port clavier.
Si le programme de configuration/compilation de lirc n'a rien mentionné au sujet d'un module noyau, alors vous avez fini. S'il mentionnait un module noyau, vous devez éditer le fichier /etc/modules.conf. Ajoutez cette ligne en premier dans le fichier. Elle doit-être au début, sans quoi elle pourrait ne pas fonctionner.
alias char-major-61 XXX
Remplacez XXX par le nom que vous avez déterminé auparavant, qui dans cet exemple était « lirc_serial ».
$ su # modprobe lirc_serial # /sbin/ldconfig
Ensuite, nous allons démarrer lircd manuellement pour la première fois. Utilisateurs de Mandriva 9.1, entrez : #/etc/rc.d/init.d/lircd start au lieu de :
# /usr/local/sbin/lircd
NOTE : lire la section suivante si vous n'êtes pas familer avec la façon dont lirc fonctionne !
Il y a deux fichiers distincts utilisés par lirc, et les deux sont requis pour que votre télécommande fasse quoi que ce soit d'utile. Le premier est le fichier lircd.conf. lircd.conf dit au daemon lirc comment interpréter les impulsions IR qu'il reçoit d'une télécommande et le nom assigné à chaque séquence d'impulsions. Sans entrer dans les détails, une série particulière d'impulsions peut être corrélée à « Chaîne Précédente » (NdT : « Channel Up »). Le fichier lircd.conf contiendra alors une ligne qui ressemble à quelque chose comme cela :
ChannelUp 0x0000000000001020
Le fichier lircd.conf peut avoir de multiples contrôles de télécommandes définis.
Le second fichier est lircrc, qui prend le nom du bouton qui a été pressé (« ChannelUp ») dans l'exemple ci-dessus, et le corrèle à une action à exécuter par un programme utilisant la télécommande. Donc dans MythTV, ChannelUp veut dire une chose, alors que dans mplayer il voudra dire quelque chose de différent. lircrc vous donne la flexibilité de prendre le nom d'un bouton et de le faire exécuter différentes actions selon le programme que vous utilisez à un instant donné.
NOTE : les définitions dans lircd.conf viennent de la communauté des utilisateurs, et il n'y a pas de standard pour les noms de boutons communs. Un fichier lircd.conf peut contenir la définition d'un bouton appelé « ChannelUp », alors qu'un autre peut contenir une définition pour « Chan+ ». Votre fichier lircrc doit par conséquent être configuré de manière appropriée, ou il ne fonctionnera pas.
Si ceci échoue, en se plaignant de l'absence du fichier lircd.conf, alors vous devez en trouver ou en fabriquer un. Recherchez d'abord un fichier de configuration tout fait sur http://lirc.sourceforge.net/remotes/. Utilisateurs de Mandriva 9.1, regardez dans /usr/share/lirc-remotes. Si vous en trouvez un pour votre télécommande sur le site Web ou dans /usr/share, téléchargez ou copiez le fichier, nommez-le lircd.conf et mettez-le dans votre répertoire /etc. Si vous n'avez pu trouver votre télécommande, vous devez créer votre propre fichier lircd.conf.
Pour créer votre propre fichier lircd.conf
$ irrecord myremote
Suivre les directives à l'écran pour programmer votre télécommande et définir les touches. Si votre télécommande fonctionne bien au final, vous devriez penser à soumettre votre fichier lircd.conf aux développeurs de lirc. Une fois fini :
$ su # cp myremote /etc/lircd.conf
Maintenant essayez à nouveau de lancer lircd :
# /usr/local/sbin/lircd
Maintenant, nous allons ajouter les commandes nécessaires pour que lircd se lance à chaque démarrage. Utilisateurs Mandriva 9.1, vous pouvez exécuter :
$ su # chkconfig --level 35 lircd on # exit
Toutes les autres distributions :
# cd /etc/rc.d # cat >> rc.local echo "Starting lircd" /usr/local/sbin/lircd ^D # exit $
Ceci s'occupe de la partie lircd, qui « écoute » les signaux IR. Si tout s'est bien passé, le script d'installation de lircd place un fichier de configuration approprié pour votre télécommande dans /etc/lircd.conf. Ce fichier relie les boutons de la télécommande aux impulsions IR venant du récepteur.
L'étape suivante consiste à convertir ces signaux en quelque chose qui peut être employé pour commander MythTV. MythTV inclut maintenant le support natif de lirc et peut interagir directement avec.
$ cd ~/mythtv-0.20.2/contrib/configfiles $ cp lircrc.example ~/.lircrc
ou
$ cp lircrc.example.pinnaclestudiopctv ~/.lircrc
Si vous possédez une télécommande Pinnacle Studio PCTV.
$ irw
Commencez à appuyer sur les touches de votre télécommande; irw affichera le nom du bouton tel qu'il est défini dans votre /etc/lircd.conf. Si vous ne voyez rien à ce moment, vous devez vérifier plus avant en retournant à la page d'accueil de lirc et investiguer à partir de là.
Si cela fonctionne, alors pressez Ctrl-C pour terminer le programme. Une fois que vous savez que votre télécommande fonctionne, vous pouvez soit recompiler MythTV avec le support natif de lirc en l'activant dans configure, soit vous devez exécuter le programme irxevent, qui prend les pressions de touches et les envoie à MythTV. Si vous employez le support natif de lirc, vous n'avez pas besoin de lancer irxevent. Si vous comptez employer irxevent, alors vous devez le lancer comme ceci :
$ irxevent &
Si irxevent ne fonctionne pas, alors MythTV ne réagira pas à votre télécommande à moins que vous n'employiez le support natif de lirc.
Jetez un coup d'oeil aux fichiers lircrc.example dans le répertoire contrib/configfiles/. Dans mon cas (carte Pinnacle Studio), les fonctions chaîne supérieure et inférieure ne fonctionnaient pas, à cause du fait que les noms de bouton étaient différents du fichier par défaut lircrc.example accompagnant MythTV.
Le fichier lircd.example contient ceci :
begin
prog = irxevent
button = ChannelUp
config = Key Up CurrentWindow
end
begin
prog = irxevent
button = ChannelDown
config = Key Down CurrentWindow
end
mais le /etc/lircd.conf inclus dans le paquet lircd définit ainsi les boutons pour la Pinnacle Studio PCTV :
channel+ 0x0000000000000017
channel- 0x000000000000001C
au lieu de « ChannelUp » et « ChannelDown ». J'ai ajouté ce qui suit à mon fichier /home/[VotreNomUtilisateur]/.lircrc :
begin
prog = irxevent
button = channel+
repeat = 3
config = Key Up CurrentWindow
end
begin
prog = irxevent
button = channel-
repeat = 3
config = Key Down CurrentWindow
end
qui gère les fonctionnalités de base. Puisque la télécommande PCTV Studio a des boutons additionnels, regardez contrib/configfiles/lircrc.example.pinnaclestudiopctv pour un exemple sur la façon de définir les boutons additionnels, et sur la façon de corriger des conflits potentiels de nom de bouton entre le fichier lircrc.example et comment votre télécommande définit les noms de bouton.
En examinant les noms de bouton définis dans /etc/lircd.conf et en utilisant le programme irw pour s'assurer que votre télécommande fonctionne, vous pouvez créer les relations appropriées dans .lircrc pour obtenir une excellente fonctionnalité de télécommande avec MythTV.
Notez le paramètre repeat =. Ceci informe le programme irxevent de laisser passer toute combinaison de trois pressions de touche (NdT : pour modifier la vitesse de répétition de la commande au cas où la touche est maintenue pressée). Par défaut, lirc envoie seulement une pression de touche à l'application, même si vous maintenez la touche appuyée. Le nombre correct pour repeat =* peut varier de système en système, donc expérimentez et voyez quelle valeur fonctionne le mieux pour vous.
Lirc supporte divers émetteurs IR. Un modèle populaire est l'Actisys IR-200L http://store.snapstreamstore.com/accessories.html. Il a été conçu à l'origine pour la communication IRDA, mais peut être employé pour transmettre des codes de télécommande A/V. En employant le pilote lirc SIR, ce dispositif peut facilement être intégré à MythTV. J'ai testé ce dispositif avec un boîtier numérique pour le câble AT&T DCT2000 mais les instructions peuvent être employées pour configurer d'autres dispositifs IRDA et télécommandes A/V.
Suivez les étapes de la section précédente. Lorsque vous lancez setup.sh, choisissez l'option 1, driver configuration. De là choisissez l'option 6, IrDA hardware. Choisissez votre dispositif approprié et le port série correspondant, puis Save configuration & run configure à partir du menu principal. Une fois que configure a terminé, entrez :
$ make
Notez bien : à la différence du récepteur Pinnacle ci-dessus, vous allez compiler lircd en plus d'un module noyau pour l'émetteur SIR. Si vous avez configuré votre pilote de port série comme module du noyau, vous pourriez avoir le message suivant pendant la construction :
lirc_sir.c:56:2: warning: #warning "******************************************" lirc_sir.c:57:2: warning: #warning "Your serial port driver is compiled into " lirc_sir.c:58:2: warning: #warning "the kernel. You will have to release the " lirc_sir.c:59:2: warning: #warning "port you want to use for LIRC with:" lirc_sir.c:60:2: warning: #warning "setserial /dev/ttySx uart none" lirc_sir.c:61:2: warning: #warning "******************************************"
Si vous recevez cet avis, veillez à lancer la commande setserial avant le chargement du module lirc_sir. Continuez avec l'installation :
$ su # make install
Vous noterez que lirc installe le module noyau dans /lib/modules/$(uname - a)/misc. (NdT : cette ligne comprend une erreur dans la doc originale)
La configuration pour démarrer lircd diffère si vous comptez envoyer et recevoir de l'IR au lieu de juste recevoir.
# cd /etc/rc.d # cat >> rc.local echo "Starting lircd" setserial /dev/ttySx uart none # (si requis) modprobe lirc_sir /usr/local/sbin/lircd ^D # exit $
A ce moment, vous devez remplir le fichier /etc/lircd.conf avec les codes appropriés pour votre télécommande A/V. Vous devriez pouvoir trouver votre télécommande dans le fichier tar des télécommandes lirc situé à http://www.lirc.org/remotes.tar.bz2. Dans mon cas, j'ai extrait le fichier à partir de remotes/motorola/DCT2000 (gi-motorola-dct2000) .
Afin de tester le module lirc_sir vous pouvez lancer irw pour vérifier que les codes sont reçus. Si tout est configuré correctement vous devriez voir quelque chose de semblable à ce qui suit :
$ irw 0000000000007ff0 00 1 gi-motorola-dct2000 000000000000bff8 00 2 gi-motorola-dct2000 000000000000f7f0 00 ENTER gi-motorola-dct2000
Après avoir vérifié que lirc fonctionne vous pouvez entrer Ctrl-C pour sortir de irw et configurer le script de changement de chaîne.
Le chemin pour le script de changement de chaîne devra être entré sur l'écran de mythtv-setup pour les Connexions d'Entrées.
Ce script csh sera appelé chaque fois que MythTV doit changer de chaîne. Ci-dessous se trouve une copie du script suivie du script Perl correspondant. Assurez-vous que les deux soient dans votre path (NdT : PATH, chemin d'accès aux binaires). Assurez-vous également de laisser le paramétrage #!/bin/csh et ne pas le changer en Bourne ou bash. Ceci créerait un symptôme frustrant à diagnostiquer où MythTV ne peut pas ouvrir /dev/device. A la différence de Bourne ou de bash, les scripts csh ferment automatiquement les descripteurs parents des fichiers avant de démarrer (NdT : mais du fait de la nature même de csh, il est déconseillé de l'utiliser, tout un tas d'autres problèmes pouvant apparaître. Un équivalent sous bash serait plus approprié, csh n'étant pas en standard sur les distributions Linux).
$ cd /usr/local/bin # su # cat > change_channel.csh #!/bin/csh echo "changing to $1" /usr/local/bin/channel.pl $1 & ^D # chmod a+x change_channel.csh # exit $ exit
Regardez contrib/channel.pl pour le fichier réel. Copiez-le dans /usr/local/bin/.
La dernière instruction du script Perl est la commande rc de lirc. C'est la commande qui transmet le code à votre boîtier câble/DSS. Veillez à avoir le dispositif IRDA à quelques mètres du boîtier.
Rédacteur : Ookaze (24/01/2008) : synchro 2007-12-27, 0.20.27