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

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 recepteur, plusieurs transmetteurs, ou plusieurs recepteurs, 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 tutorial 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 certain récepteur vous trouverez des informations complémentaire en bas de cette page).

Prérequis

les dépôts Universe, multiverse et backports doivent être activés.

installez les paquets lirc lirc-modules-source module-assistant. En 1 clic sous Gutsy:

  1. Certaines télécommandes sont directement supportées par le kernel voir la section "managed i2c devices".
  2. Pour les récepteurs des cartes hauppage PVR-150 voir 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 FIXME ??? adaptateur port série ???).
Pour les PVR-150 sélectionnez 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 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"

lirc - exemples "hardware.conf"

Le nouveau kernel ne supportant pas le module gpio, il faut configurer lirc pour utiliser le driver 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…

Pour ceux qui possèdent une carte wifi 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 vos précautions avant!! (récupérer les drivers pour les installer sans l'aide du paquet restricted-module)
TRES IMPORTANT : lorsque vous aurez suivi toutes les étapes données dans le dernier post 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 relachez rapidement plusieurs fois, vous devez voir des points apparaitre à l'écran, continuez à "cliquer" 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é à chaque mise à jour du noyau.
Voir la section "Reconstruction_des_modules" pour plus d'information.

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

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

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.

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

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

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

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 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
  • lirc_brouillon.1210258357.txt.gz
  • Dernière modification: Le 18/04/2011, 14:42
  • (modification externe)