Wiki

Outils pour utilisateurs

Outils du site


documentation:docmythtvhuit

<< Page précédente Retour au Sommaire Page suivante >>

8. Configuration d'une télécommande

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.

NOTE : Si vous utilisez Mandriva, vous pouvez installer lirc en exécutant : # 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.

<< Retour au Début

8.1 Gentoo

Pour installer lirc sur Gentoo, tout ce que vous avez à faire est :

 # emerge lirc

<< Retour au Début

8.2 Obtenir et compiler 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
  $

NOTE : l'exemple ci-dessus suppose que votre récepteur utilise le pilote série standard. Certains récepteurs ne le font pas, incluant les récepteurs qui se connectent à une carte d'acquisition TV. Vérifiez dans la documentation lirc, mais il peut être nécessaire de remplacer le lien créé ci-dessus avec un pipe caractère :

  # 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.

<< Retour au Début

8.3 Compléter l'installation de lirc

NOTE aux utilisateurs de Mandriva 9.1 : sautez au paragraphe de démarrage manuel ci-dessous.

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.

<< Retour au Début

8.4 Informations supplémentaires pour 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.

<< Retour au Début

8.5 Configuration de lirc pour utiliser un transmetteur IR

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.

<< Retour au Début

Rédacteur : Ookaze (24/01/2008) : synchro 2007-12-27, 0.20.27

<< Page précédente Retour au Sommaire Page suivante >>

documentation/docmythtvhuit.txt · Dernière modification: 18/05/2008 (modification externe)