Ceci est une ancienne révision du document !
LIRC - Installation & maintenance
Description
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).
Installation et configuration pour une télécommande
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.
- Certaines télécommandes sont directement supportées par le noyau (voir la section « managed i2c devices »).\
- 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 du modules lirc vous devrez sélectionner le type de récepteur infra rouge que vous allez utiliser.
sudo dpkg-reconfigure lirc-modules-source
Informations diverses sur les périphériques IR supporté. (Flèche haut/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 certain modules consultez les informations supplémentaires (comme pour les récepteurs sur port série et les ![]() i2c et PVR150 \ (Haut/bas pour naviguer; barre espace pour sélectionner; tabulation pour "<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 /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 un consoles et je l'ai stoppé ce qui à crée le fichier.
- Modifiez
LOAD_MODULES=false
enLOAD_MODULES=true
. - Remplissez la section MODULES avec le nom de votre module entre guillemets, préfixé de l'acronyme "
lirc_
" ( par exemple pour le pilotemceusb
, mettez "lirc_mceusb
"). - Pour les récepteurs des cartes PVR-150:
LIRCD_ARGS="--device=/dev/lirc0" LOAD_MODULES=true MODULES="lirc_dev lirc_pvr150"
**__Note pour les utilisateurs de gutsy.__**
Le nouveau kernel 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 !! Voila qui ne s'annonce pas de tout repos, pour les plus motivés, la solution est dans les derniers posts de ce topic : Ubuntuforums Profitez-en pour compiler un noyau optimisé pour votre architecture…
Compilation des modules lirc
Commencez par préparer votre systeme à 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 kernel
sudo m-a a-i lirc
Mettez à jours 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çon 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 sont contenu par celui trouvé précédemment.
(Si vous avez trouvé un fichier de configuration sautez la section suivante.)
Créer son fichier lircd.conf
à 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 que vous venez de compiler.
Exemple:
sudo modprobe lirc_mceusb
S'il 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 touche de votre télécommande
sudo irrecord -d /dev/lirc0 lircd.conf
Une fois l'enregistrement des touche terminé, déplacez votre fichier dans /etc/lirc/lircd.conf
.
sudo mv 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 c'est pas chargé correctement. Essayez de redémarrer votre ordinateur. Si ça ne fonctionne toujours pas, regardez si le modules c'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 basic pour l'action d'une touche est
begin prog = PROGRAME button = BOUTONS config = ACTION end
Où :
PROGRAME
Est le programe qui va utiliser ce boutons, par exemple :PROGRAME
sera'mythtv
','mplayer
','xine
','vlc
', ou'irexec
'.BOUTONS
est le nom du boutons qui se trouve dans/etc/lirc/lircd.conf
.ACTION
est l'action qui sera lancer quand on presse sur le boutons.
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 peut sur internet vous trouverez certainement un fichier plus adapter à 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 êtres un utilisateur de KDE vous pouvez vous servir de IRKick.
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 utilissant lirc
Une multitude d'application peuvent se servir de lirc. Vous pouvez séparez les actions de ces différentes applications dans les fichier .lircrc en créant des bloc débutant pas begin
et finissant pas 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 un application sur la pression d'une touche. La syntaxe est la suivante :
begin prog = irexec button = BOUTONS config = APPLICATION end
Où APPLICATION est le chemin vers l'executable à lancer.
Configuration et installation pour plusieurs télécommandes
Une fois que lirc fonctionne avec une télécommande vous pouvez modifier la configuration pour supporter des télécommandes supplémentaires.
Après avoir fait marcher 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.
Informations complémentaires
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 :
#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
Reconstruction du modules
Si vous avez besoin de recompiler le module (après une mise à jours du kernel) il suffira de taper les ligne suivante :
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