Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !



Traduction en cours

LIRC - Installation & maintenance

Cette procédure n'est plus valable pour Hardy Heron. Consultez la documentation anglophone (la procédure est devenue nettement plus simple).

LIRC permet d'utiliser une télécommande infrarouge. Presque toutes (mais pas toutes) sont compatibles.

Comparé à la version 6.06 d'Ubuntu, LIRC s'est nettement amélioré. Par défaut, Les scripts d'initialisation de LIRC sont correctement configurés pour la gestion d'un seul appareil, mais en réalité les scripts du pilote peuvent en gérer plusieurs. Si vous cherchez à configurer un transmetteur infrarouge et un récepteur, plusieurs transmetteurs, ou plusieurs récepteurs, commencez d'abord par configurer un seul appareil et vérifiez son bon fonctionnement. Après cela seulement, vous pourrez vous intéresser à la section traitant la configuration de multiples appareils.

Ce didacticiel explique comment configurer LIRC avec le pilote « lirc_mceusb ». C'est un exemple, si vous souhaitez utiliser LIRC avec un autre type de récepteur, vous pouvez le compiler directement avec un autre pilote (pour certains récepteurs vous trouverez des informations complémentaires en bas de cette page).

Prérequis

Les dépôts universe, multiverse et backports doivent être activés.

Installez les paquets apt://lirc et apt://lirc-modules-source module-assistant.

  1. Certaines télécommandes sont directement supportées par le noyau (voir la section « managed i2c devices »).\
  2. Pour les récepteurs des cartes Hauppage PVR-150, voir la section « récepteur IR de PVR-150 ».

Configurer lirc-modules-source

Durant la configuration des modules LIRC vous devrez sélectionner le type de récepteur infrarouge que vous allez utiliser.

sudo dpkg-reconfigure lirc-modules-source
Informations diverses sur les périphériques IR supportés. (Flèches haut et bas pour faire défiler).
Sélectionner OK grâce à la touche de tabulation (→).
Sélectionnez le (les) module(s) que vous souhaitez configurer. Pour certains modules, consultez les informations_complementaires (comme pour les récepteurs sur port série et les FIXME ??? adaptateur port série ???).
Pour les PVR-150, sélectionnez i2c et PVR150.
(utilisez les flèches haut et bas pour naviguer et la barre d'espace pour sélectionner ; tabulation pour aller sur le bouton <OK>)
Le script vous propose de compiler automatiquement les modules. Sélectionnez <non>.
Vous avez maintenant différentes options pour remplacer le fichier lirc-modules-source.conf. Sélectionnez « Installer la version du responsable du paquet ».

Modification de /etc/lirc/hardware.conf

Éditez le fichier /etc/lirc/hardware.conf avec les droits administrateurs.

Jonas : Le fichier n'existait pas quand quand j'ai voulu l'éditer. J'ai alors lancé lircd dans une console et je l'ai stoppé, ce qui à créé le fichier.
  • Modifiez LOAD_MODULES=false en LOAD_MODULES=true.
  • Remplissez la section « MODULES » avec le nom de votre module entre guillemets, préfixé de l'acronyme « lirc_ » (par exemple pour le pilote mceusb, mettez « lirc_mceusb »).
  • Pour les récepteurs des cartes PVR-150:
LIRCD_ARGS="--device=/dev/lirc0" 
LOAD_MODULES=true
MODULES="lirc_dev lirc_pvr150"
Sur le site du projet LIRC, une page recense les matériels supportés avec les modules appropriés (colonne « Required LIRC kernel modules »). Suivant le récepteur utilisé, on utilise soit un module, comme indiqué précédemment, soit un pilote.

La page lirc - exemples "hardware.conf" de la documentation donne des exemples de fichier hardware.conf.

Le nouveau noyau ne supportant pas le module gpio, il faut configurer LIRC pour utiliser le pilote dev/input et recompiler le noyau avec un patch sur le module bt878 de bttv ! Voilà qui ne s'annonce pas de tout repos. Pour les plus motivés, la solution est dans les derniers messages de ce fil de discussion du forum anglophone : Ubuntuforums. Profitez-en pour compiler un noyau optimisé pour votre architecture…

Pour ceux qui possèdent une carte Wi-Fi ou des pilotes graphiques nécessitant linux-restricted-modules (comme le gestionnaire de pilotes propriétaires nvidia) ce paquet n'est pas compatible avec les noyaux recompilés. Prenez donc vos précautions avant ! (Récupérez les pilotes pour les installer sans l'aide du paquet restricted-module)
Très important : lorsque vous aurez suivi toutes les étapes données dans le dernier message du lien ci-dessus, il est très probable que la commande irrecord vous renvoie une erreur du type « gap not found ». Dans ce cas, réessayez et ,au lieu de maintenir le bouton enfoncé, appuyez et relâchez rapidement plusieurs fois, vous devez voir des points apparaître à l'écran. Continuez d'appuyer sur le bouton jusqu'à l'obtention du message suivant. Le paramétrage de la télécommande devrait pouvoir commencer.

Compilation des modules LIRC

Les modules LIRC ont besoin d'être recompilés à chaque mise à jour du noyau.
Voir la section "Reconstruction_des_modules" pour plus d'informations.

Commencez par préparer votre système à une compilation de nouveaux modules noyau (cette étape lui fait préparer les bons headers) :

sudo m-a update,prepare

Nettoyez le système ancienne version du module LIRC :

sudo rm /usr/src/lirc*deb
sudo m-a clean lirc

Compilez et installez les modules du noyau :

sudo m-a a-i lirc

Mettez à jour la liste des modules :

sudo depmod -a

Le fichier lircd.conf

Le fichier lircd.conf liste les correspondances entre le signal IR et la fonction de la touche. Il existe deux façons de créer le fichier lircd.conf :

  • trouver un fichier déjà fait pour votre télécommande ;
  • créer votre propre fichier.

Utiliser un fichier lircd.conf existant

Vous pouvez chercher le fichier de configuration pour votre télécommande ici. Éditez le fichier /etc/lirc/lircd.conf et remplacer son contenu par celui trouvé précédemment.

Créer son fichier lircd.conf

FIXME à compléter/vérifier avec attention

Si vous souhaitez créer votre propre fichier ou que vous n'avez pas trouvé de fichier déjà fait pour votre télécommande. Vous pouvez utilisez irrecord

Chargez le module nécessaire à votre télécommande.

Exemple:

sudo modprobe lirc_mceusb

S'il y a une erreur au chargement du module, c'est sans doute un sale coup de notre ami m-a (le module assistant qu'on utilise depuis le début) qui n'aura pas voulu vous mettre le pilote i2c. Il faudra donc forcer l'installation de celui-ci et réessayer le modprobe :

sudo dpkg -i /usr/src/lirc-modules-2.6.*.deb
sudo modprobe lirc_mceusb

Pour enregistrer les touches de votre télécommande :

sudo irrecord -d /dev/lirc0 lircd.conf

Une fois l'enregistrement des touches terminé, déplacez votre fichier dans /etc/lirc/lircd.conf.

sudo mv lircd.conf /etc/lirc
Au lieu de déplacer le fichier, vous pouvez le copier avec la commande suivante :
sudo cp lircd.conf /etc/lirc/

Démarrage de LIRC et test

Les modules seront chargés au démarrage de LIRC. Démarrez LIRC puis irw (l'utilitaire de test) :

sudo /etc/init.d/lirc start
irw

Le terminal ne doit se mettre en « attente » (on ne peut plus taper de commande). Appuyez sur les touches de votre télécommandes. Elles devraient s'afficher dans le terminal. Pour quitter, pressez <ctrl> + 'C'.

Si irw se termine immédiatement (vous pouvez taper une commande après le lancement de celui-ci), c'est que le module ne s'est pas chargé correctement. Essayez de redémarrer votre ordinateur. Si ça ne fonctionne toujours pas, regardez si le module s'est bien chargé grâce à la commande

dmesg | grep lirc

Si au lancement de LIRC vous avez ceci :

$ sudo /etc/init.d/lirc start
##################################################
## LIRC IS NOT CONFIGURED ##
## ##
## read /usr/share/doc/lirc/html/configure.html ##
##################################################

C'est que vous n'avez pas bien créé votre lircd.conf. Retournez à la section "création du fichier lircd.conf".

Création du fichier .lircrc

Le fichier ~/.lircrc indique ce que les boutons déclenchent.

Méthode standard

Créer le fichier .lircrc en utilisateur.

La syntaxe basique pour l'action d'un bouton est

begin
    prog = PROGRAMME
    button = BOUTON
    config = ACTION
end

Où :

  • PROGRAMME est le programme qui va utiliser ce bouton, par exemple : PROGRAMME sera mythtv, mplayer, xine, vlc ou bien irexec ;
  • BOUTON est le nom du bouton qui se trouve dans /etc/lirc/lircd.conf ;
  • ACTION est l'action qui sera lancée quand on appuie sur le bouton.

Un tutoriel spécifique existe pour la création des fichiers lircrc (fichiers définissant l'interprétation des commandes IR par les logiciels).

Vous pourrez trouver des fichiers d'exemples sur cette page (mais en cherchant un peu sur Internet, vous trouverez certainement un fichier plus adapté à votre utilisation).

Pour des informations plus détaillées sur ce fichier, consultez la documentation de lirc sur son site (en anglais).

Méthode alternative - IRKick

Si vous êtes un utilisateur de KDE, vous pouvez vous servir de IRKick.

FIXME Jonas : Je n'utilise pas KDE, est-ce que IRKick a besoin de toutes ces explication ?
zetotof : Non je ne pense pas ou alors il faudra faire une page spécifique pour lui.
If you're a KDE user, you may find it more convenient to set up functionality using irkick. This requires you already have your lircd.conf and hardware.conf set up, but you won't need an lircrc file if you take this approach.

Installez les paquets lirc-x kdelirc.

Next, start up IRKick - It's in the Utilities menu.

IRKick contains extensions to easily setup the remotes functions with Amarok, Kaffeine, Noatun, and Konqueror, but can be made to perform any terminal command or dcop call.

To add functionality for a button - just click add (on the right-hand side).
To add a new mode for the remote, click on the left add and give it an appropriate name. Note: when adding a new mode, you'll also need to assign a button to switch to that mode. This allows you to have buttons do different things in different modes. Select the mode on the left before adding new functions for buttons.

Click apply when you're done making changes, and that's it, no configuration files to play with :)

Note spécifique pour quelques applications utilisant LIRC

Une multitude d'applications peuvent se servir de LIRC. Vous pouvez séparez les actions de ces différentes applications dans les fichiers lircrc en créant des blocs débutant par begin et finissant par end.

MythTV

Si vous utilisez MythTV, vous aurez besoin de créer un fichier réservé à MythTV dans ~/.mythtv/lircrc ou de créer un lien symbolique vers votre fichier ~/.lircrc.

IRexec

IRexec permet de lancer une application sur la pression d'une touche. La syntaxe est la suivante :

begin
    prog = irexec
    button = BOUTONS
    config = APPLICATION
end

APPLICATION est le chemin vers l'exécutable à lancer.

Une fois que LIRC fonctionne avec une télécommande, vous pouvez modifier la configuration pour supporter des télécommandes supplémentaires.

Cette section n'a pas encore été traduite car elle s'adresse à un nombre d'utilisateur bien moins important.
Mais si vous avez du temps à consacré a cette traduction n'hésitez pas !

Après avoir fait fonctionner LIRC avec un seul appareil, vous pouvez modifier vos scripts pour inclure le support de plusieurs autres. La première chose à faire sera de vous assurer que votre noyau contient tous les pilotes nécessaires pour faire fonctionner ce matériel supplémentaire. Si lors de la configuration pour un seul appareil, vous aviez construit les modules dont vous pensiez avoir besoin pour les autres, vous pouvez sauter l'étape suivante.

Compiler les modules supplémentaires dont on a besoin

* Nettoyez les vieux modules

sudo rm /usr/src/lirc*deb
sudo m-a clean lirc

* Arrêtez lirc et déchargez tous les modules correspondants

sudo /etc/init.d/lirc stop
sudo rmmod LOADED_LIRC_MODULES
* Remplacez LOADED_LIRC_MODULES par le nom des modules lirc que vous aviez chargés.

* Reconfigurez lirc-modules-source. Choisissez tous les modules dont vous aurez besoin, y compris ceux d'avant.

sudo dpkg-reconfigure lirc-modules-source

* Compilez/installez tout ça

sudo m-a a-i lirc
  • Si vous avez un message qui dit qu'il n'arrive pas à installer, vous pouvez forcer ceci.

sudo dpkg -i /usr/src/lirc*deb

Modification des scripts d'initialisation

* éditez le fichier /etc/lirc/hardware.conf

  • Assurez vous que tous vos modules figurent sur la ligne MODULES="". Prenez garde à l'ordre dans lequel vous les mentionnez. Ce sera l'ordre dans lequel lirc reconnaitra les appareils, c'est donc important si vous voulez faire une différence entre ceux-ci.
  • Modifiez les lignes du côté de LIRCD_ARGS="" pour faire correspondre le tout à
LIRCD_ARGS="--device=/dev/lirc0 --output=/dev/lircd1 --pidfile=/var/run/lircd1.pid --listen"
LIRCD2_ARGS="--device=/dev/lirc1 --output=/dev/lircd --pidfile=/var/run/lircd.pid --connect=localhost:8765"

* Éditez le fichier /etc/init.d/lirc

  • Changez :
      LIRCD_ARGS=`build_args $LIRCD_ARGS`
      start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- $LIRCD_ARGS 
                < /dev/null

en :

      LIRCD_ARGS=`build_args $LIRCD_ARGS`
      LIRCD2_ARGS=`build_args $LIRCD2_ARGS`
      start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- $LIRCD_ARGS 
                < /dev/null
      /usr/sbin/lircd $LIRCD2_ARGS 
               < /dev/null

* Faites les manipulations sur /etc/lirc/hardware.conf et /etc/init.d/lirc pour chaque nouvel appareil.

Test

* Démarrez lirc

sudo /etc/init.d/lirc start

* Vous devriez avoir deux lircd actifs. Tout processus lirc qui tentera d'interagir avec lircd devra se faire spécifier un paramètre lui indiquant à quelle instance il s'adresse.

Périphériques supportés

Ces pilotes supportent : * lirc_pvr150 * lirc_serial * lirc_mceusb2

Managed I2C Devices

Ubuntu Edgy a introduit directement dans son noyau la gestion de quelques télécommandes via le bus i2c. Pour ces télécommandes, il est déconseillé d'utiliser lirc. Vous devriez pouvoir presser les touches et qu'elles soient reconnues directement comme des touches ordinaires du clavier. Si les comportements de ces touches ne vous plaisent pas, utilisez xmodmap.

Si vous vous entêtez à vouloir garder lirc, il existe un tuto en anglais pour adapter votre noyau à cet usage : [http://www.ubuntuforums.org/showthread.php?t=288229 HOWTO: Lirc in Edgy].

Sous Intrepid, on peut parvenir au même résultat en indiquant simplement à HAL d'ignorer le périphérique, ce qui permet à lirc de le détecter et de l'utiliser. Pour cela éditez le fichier /usr/share/hal/fdi/preprobe/20thirdparty/lirc.fdi, à la ligne :

<match key="info.product" contains_ncase="saa7134 ir">

remplacez "saa7134 ir" par l'info.product de votre télécommande, que l'on peut trouver à l'aide de la commande lshal. Après redémarrage la télécommande devrait être accessible pour LIRC avec le pilote dev/input.

Récépteur IR de PVR-150

Packages

Le récepteur de la PVR-150 a besoin d'une version de LIRC patchée.

Ajouter le dépots suivant :

Attention ! ce dépot n'est pas officiel il peut nuire à la stabilité de votre système !
#Mario's Lirc Repository (superm1@ubuntu.com)
deb http://people.atrpms.net/~mlimonciello/personal edgy lirc
deb-src http://people.atrpms.net/~mlimonciello/personal edgy lirc

Ajouter la clef public du dépots :

wget http://people.atrpms.net/~mlimonciello/personal/80DF6D58.gpg -O- | sudo apt-key add -

Mettez à jours votre liste des paquets et (ré)installer lirc. Lors de la configuration de lirc_modules-source choisissez les modules lirc_i2c et lirc_pvr150 lors de la compilation.

Micrologiciel PVR-150

Téléchargez le firmware Hauppauge et ajoutez le codeset approprié à votre fichier lircd.conf pour le périphérique que vous voulez contrôler.

Le firmware peut être trouvé ici : here. Téléchargez-le et placez-le dans ~+`/lib/firmware`+~

Les codesets sont ici : here. Ce fichier contient les codesets de tous les périphériques de la Base de Données. Extrayez-en l'information de votre périphérique et insérez-le dans le fichier /etc/lirc/lircd.conf – en prenant soin de sauvegarder l'original dans un lieu sûr.

Une fois ces deux étapes effectuées, Redémarrez l'ordinateur avant de continuer.

Adding the blaster codeset

You will need to determine the codeset of your device. To help you determine the possible codeset, consult the list here: [http://www.blushingpenguin.com/mark/lmilk/IRcodesets.html here]. Note that finding the correct codeset for your device can be tricky- but the master list can usually help you track them down by process of elimination.

Once you have determined a codeset, you need to extract those codes from the master file you downloaded and add them to your /etc/lirc/lircd.conf as another remote.

For example, to blast a 'Power Button' a Motorola DCT6200 series cable box, you would use the POWER button raw code from codeset 85. If you are linking it to a key on your remote, you want to change the button name to the name reported by irw.

sudo nano /etc/lirc/lircd.conf

First, add the blaster header:

begin remote

  name          blaster
  bits          32
  flags         RAW_CODES
  eps           0
  aeps          0
  plead         0
  gap           333333
  repeat_bit    0
  begin raw_codes

Next, find the power button in codeset 85- since this is a cable box, it is prefixed in the master file as 0_85:

    name 0_85_KEY_POWER
    5570570

then make it conform to how irw reports the keypress- in this case, irw reports it as POWER, so that is what to name it:

   name POWER
   5570570

Keep adding your buttons (only the ones you want to control with the blaster). When you are finished, add:

end raw_codes
end remote

to close out that remote definition. In this example, the entire remote definition for the power button only looks like:

begin remote

  name          blaster
  bits          32
  flags         RAW_CODES
  eps           0
  aeps          0
  plead         0
  gap           333333
  repeat_bit    0
  begin raw_codes
  name 0_85_KEY_POWER
  5570570
 end raw_codes
end remote

After saving the new lircd.conf, restart lirc:

sudo /etc/init.d/lirc restart

and test it. In the example the command:

irsend SEND_ONCE blaster POWEROFF

turns the DCT6200 cable box on and off. Even if it does not control the device as intended, you should see the blaster flashing.

Troubleshooting codeset selection, blaster placement, etc. is beyond the scope of this guide. A wealth of information is readily available via [http://www.google.com Google]

MCEUSB2 IR Transmitter

Packages included in edgy-backports include support for the mceusb2 IR transmitter. Configuration is the same as standard serial transmitters.

Récepteur / Emetteur sur port série

Si vous utilisez le pilote lirc_serial vous devez désactivé le support série du kernel.

Commencer par Installez le paquet setserial.

Ensuite vous pouvez utilisé 2 méthodes différentes. (jonas j'ai utilisé la seconde qui semble plus simple et qui a fonctionné).

1ère méthode

(Source : Forum TechnoPenguin & TrubbleMaker)\ Nous allons utilisé "modprobe.conf" Éditer le fichier /etc/modprobe.conf et ajouter les lignes suivante :

alias char-major-61 lirc_serial
options lirc_serial irq=4 io=0x3f8
install lirc_serial /bin/setserial /dev/ttyS0 uart none ;
    /sbin/modprobe --ignore-install lirc_serial

(Ces lignes sont valables si votre récepteur est connecté sur le 1er port série si ce n'est pas la cas adaptez /dev/ttyS0, IRQ et le port IO.

2ème méthode

Utilisation de la configuration debian de setserial

sudo dpkg-reconfigure setserial
  • Choisissez "manuel"
  • Modifiez /var/lib/setserial/autoserial.conf.
  • Ajoutez (ou modifiez si les ligne sont déjà présente) (mettez ttyS1 si vous utilise le 2ème port)
/dev/ttyS0 uart none
  • Copier ce script dans /etc/serial.conf
sudo cp /var/lib/setserial/autoserial.conf /etc/serial.conf

Si vous avez besoin de recompiler un module (après une mise à jour du noyau) il suffira de taper les lignes suivantes :

sudo rm /usr/src/lirc*deb
sudo m-a clean lirc
sudo m-a update,prepare
sudo m-a a-i lirc
sudo depmod -a Method

Et vous aurez certainement besoin de rédémarrer lirc

sudo /etc/init.d/lirc restart
  • lirc_brouillon.1264429162.txt.gz
  • Dernière modification: Le 25/01/2010, 15:19
  • par Julius22