Provided by: manpages-fr_4.19.0-7_all bug

NOM

       lirc — périphériques lirc

DESCRIPTION

       Les  périphériques caractères /dev/lirc* fournissent une interface bidirectionnelle de bas
       niveau pour les télécommandes infrarouges (IR). La plupart de  ces  périphériques  peuvent
       recevoir et certains peuvent émettre. Lors de la réception ou de l’émission de données, le
       pilote fonctionne dans deux modes différents selon le matériel sous-jacent.

       Certains matériels (typiquement les cartes TV) décodent le signal infrarouge en interne et
       fournissent  des  décodages  d’appui de bouton sous forme de code d’analyse d’évènement du
       clavier (scancode). Les pilotes de cette sorte  de  matériel  fonctionnent  dans  le  mode
       LIRC_MODE_SCANCODE.  De  tels matériels habituellement ne gèrent pas l’émission de signaux
       infrarouges. De plus, de tels matériels ne peuvent décoder seulement qu’un  nombre  limité
       de  protocoles,  habituellement  seulement  le  protocole  de la télécommande particulière
       fournie avec, par exemple, une carte TV.

       D’autres  matériels  fournissent  un  flux  d’impulsions/intervalles.  De   tels   pilotes
       fonctionnent  dans  le  mode  LIRC_MODE_MODE2.  De  tels  matériels  peuvent être utilisés
       (presque) avec n’importe quelle sorte de télécommande. Ce  genre  de  matériel  peut  être
       aussi  utilisé  dans  le  mode  LIRC_MODE_SCANCODE,  auquel  cas les décodeurs IR du noyau
       décoderont les signaux infrarouges. Ces  décodeurs  peuvent  être  écrits  en  BPF  étendu
       (consulter bpf(2)) et attachés au périphérique lirc. Quelquefois ce genre de matériel gère
       l’émission de données par IR.

       L’ioctl LIRC_GET_FEATURES (voir ci-après) permet de savoir si l’émission et  la  réception
       sont prises en charge, et, entre autres caractéristiques, dans quels modes.

   Lecture de l’entrée avec le mode LIRC_MODE_MODE2
       Dans le mode LIRC_MODE_MODE2, les données renvoyées par read(2) fournissent des valeurs en
       32 bits représentant une durée d’intervalle ou d’impulsion. La  durée  (en  microsecondes)
       est encodée dans les 24 bits de plus faible poids. L’impulsion (pulse aussi appelée flash)
       indique une durée de lumière infrarouge détectée et l’intervalle (space aussi appelé  gap)
       indique  une  durée  sans infrarouges. Si la durée de l’intervalle excède la temporisation
       (timeout) d’inactivité, un paquet spécial de temporisation est émis qui marque la  fin  du
       message. Les 8 bits de poids le plus fort indiquent le type de paquet :

       LIRC_MODE2_SPACE
           La valeur indique une durée d’intervalle (microsecondes)

       LIRC_MODE2_PULSE
           La valeur indique une durée d’impulsion (microsecondes)

       LIRC_MODE2_FREQUENCY
           La valeur indique une fréquence (Hz); consulter l’ioctl LIRC_SET_MEASURE_CARRIER_MODE.

       LIRC_MODE2_TIMEOUT
           La  valeur  indique  une  durée  d’intervalle  (microsecondes).  Le paquet indique une
           temporisation ; consulter l’ioctl LIRC_SET_REC_TIMEOUT_REPORTS.

       LIRC_MODE2_OVERFLOW
           Le récepteur IR est victime d’un débordement, et en conséquence des  données  manquent
           (depuis Linux 5.18).

   Lecture de l’entrée avec le mode LIRC_MODE_SCANCODE
       Dans le mode LIRC_MODE_SCANCODE, les données renvoyées par read(2) reflètent les décodages
       d’appui sur les boutons dans la structure lirc_scancode. Le scancode est  stocké  dans  le
       champ scancode, et le protocole IR est stocké dans rc_proto. Ce champ a une des valeurs de
       enum rc_proto.

   Écriture de la sortie avec le mode LIRC_MODE_PULSE
       Les données écrites sur le périphérique caractère en utilisant write(2) sont une  séquence
       d’impulsions/intervalles  de  valeurs  entières.  Les  impulsions  et les intervalles sont
       marqués implicitement par leur position. Les données doivent débuter et  se  terminer  par
       une   impulsion,  par  conséquent  elles  doivent  toujours  inclurent  un  nombre  impair
       d’échantillons. La  fonction  write(2)  bloque  jusqu’à  ce  que  les  données  aient  été
       transmises  par  l’appareil.  Si  plus de données sont fournies que ce que l’appareil peut
       envoyer, l’appel write(2) échoue avec l’erreur EINVAL.

   Écriture de la sortie avec le mode LIRC_MODE_SCANCODE
       Les données écrites sur le périphérique caractère doivent  être  en  une  seule  structure
       lirc_scancode.  Les champs scancode et rc_proto doivent renseigner, tous les autres champs
       doivent être être 0. Les encodeurs IR du noyau convertiront le scancode en  impulsions  et
       intervalles.  Le protocole ou le scancode est non valable, ou le périphérique lirc ne peut
       pas transmettre.

COMMANDES IOCTL

       #include <linux/lirc.h>    /* Mais voir BOGUES */

       int ioctl(int fd, int cmd, int *val);

       Les opérations d’ioctl(2) suivantes sont fournies par le périphérique caractère lirc  pour
       examiner ou modifier les réglages lirc du matériel.

   Commandes toujours prises en charge
       Les périphériques /dev/lirc* gèrent toujours la commande suivante :

       LIRC_GET_FEATURES (void)
           Renvoi   d’un  masque  de  bits  des  bits  combinés  de  fonctionnalités ;  consulter
           FONCTIONNALITÉS.

       Si un périphérique renvoie un code d’erreur  pour  LIRC_GET_FEATURES,  il  est  normal  de
       présumer que ce n’est pas un périphérique lirc.

   Commandes facultatives
       Quelques  périphériques  lirc  prennent  en charge les commandes listées ci-après. À moins
       d’être déclarées autrement, elles échouent avec l’erreur ENOTTY si l’opération  n’est  pas
       gérée, ou avec l’erreur EINVAL si l’opération échoue ou si des arguments non valables sont
       fournis. Si le pilote n’annonce pas que certaines  fonctionnalités  ne  sont  pas  gérées,
       l’invocation des ioctls correspondants échouera avec l’erreur ENOTTY.

       LIRC_GET_REC_MODE (void)
              Si  le  périphérique  lirc  n’a  pas  de  récepteur,  cette opération échouera avec
              l’erreur ENOTTY. Sinon le mode de réception sera renvoyé et sera un des suivants :

              LIRC_MODE_MODE2
                     le pilote renvoie une séquence de durées d’impulsion/intervalles ;

              LIRC_MODE_SCANCODE
                     le pilote renvoie les valeurs de la structure lirc_scancode, chacune d’elles
                     représentant le décodage d’appui d’un bouton.

       LIRC_SET_REC_MODE (int)
              Réglage  du  mode de réception. val est soit LIRC_MODE_SCANCODE ou LIRC_MODE_MODE2.
              Si le périphérique lirc n’a pas de récepteur, cette opération échoue avec  l’erreur
              ENOTTY.

       LIRC_GET_SEND_MODE (void)
              Renvoi du mode d’émission. LIRC_MODE_PULSE ou LIRC_MODE_SCANCODE sont gérées. Si le
              périphérique lirc ne peut pas émettre, cette opération échoue avec l’erreur ENOTTY.

       LIRC_SET_SEND_MODE (int)
              Réglage du mode d’émission. val est soit LIRC_MODE_SCANCODE ou LIRC_MODE_PULSE.  Si
              le  périphérique  lirc  ne  peut  pas émettre, cette opération échoue avec l’erreur
              ENOTTY.

       LIRC_SET_SEND_CARRIER (int)
              Réglage de la fréquence de modulation. L’argument est la fréquence (Hz).

       LIRC_SET_SEND_DUTY_CYCLE (int)
              Réglage du cycle opératoire de la porteuse. val est  un  nombre  dans  l’intervalle
              [0,100]  qui  décrit  la  largeur  d’impulsion comme un pourcentage du cycle total.
              Actuellement, aucune signification spéciale n’est donnée  à  0  ou  100,  mais  ces
              valeurs sont réservées pour une utilisation future.

       LIRC_GET_MIN_TIMEOUT (void), LIRC_GET_MAX_TIMEOUT (void)
              Certains  périphériques  ont  des minuteurs internes qui peuvent être utilisés pour
              détecter lorsqu’il n’y a pas eu d’activité IR depuis  un  long  moment.  Cela  peut
              aider  lircd(8)  dans  la  détection  qu’un signal IR a cessé, et peut accélérer le
              processus de décodage. Ces opérations  renvoient  des  valeurs  entières  avec  une
              temporisation  minimale  ou maximale pouvant être définie (microsecondes). Certains
              périphériques   ont   une   temporisation   fixe.    Pour    de    tels    pilotes,
              LIRC_GET_MIN_TIMEOUT et LIRC_GET_MAX_TIMEOUT échoueront avec l’erreur ENOTTY.

       LIRC_SET_REC_TIMEOUT (int)
              Réglage de la valeur entière pour la temporisation d’inactivité IR (microsecondes).
              Pour  être  acceptée  la  valeur  doit  être  entre  des   limites   définies   par
              LIRC_GET_MIN_TIMEOUT  et  LIRC_GET_MAX_TIMEOUT. Une valeur de 0 (si acceptée par le
              matériel) désactive toutes les temporisations de matériel et les données  devraient
              être annoncées le plus tôt possible. Si la valeur exacte ne peut être réglée, alors
              la valeur supérieure possible la plus proche  de  la  valeur  donnée  devrait  être
              définie.

       LIRC_GET_REC_TIMEOUT (void)
              Renvoi de la temporisation actuelle (microsecondes). Depuis Linux 4.18.

       LIRC_SET_REC_TIMEOUT_REPORTS (int)
              Activation  (val  est 1)  ou désactivation (val est 0) des paquets de temporisation
              dans LIRC_MODE_MODE2. Le comportement de cette opération a varié selon les versions
              du noyau :

              •  Depuis  Linux 5.17 :  les  paquets de temporisation sont toujours activés et cet
                 ioctl ne produit aucun effet.

              •  Depuis Linux 4.16 : les paquets de temporisation sont activés par défaut. Chaque
                 fois  que le périphérique lirc est ouvert, l’opération LIRC_SET_REC_TIMEOUT peut
                 être utilisée pour désactiver  (et,  si  désiré,  réactiver  ultérieurement)  la
                 temporisation sur le descripteur de fichier.

              •  Dans Linux 4.15 et précédents : les paquets de temporisation sont désactivés par
                 défaut et leur activation (à l’aide de LIRC_SET_REC_TIMEOUT) sur n’importe  quel
                 descripteur  de fichier associé avec le périphérique lirc a pour effet d’activer
                 les  temporisations  pour  tous  les  descripteurs  de  fichier  référant  à  ce
                 périphérique (jusqu’à ce que les temporisations soient désactivés de nouveau).

       LIRC_SET_REC_CARRIER (int)
              Réglage  de  la limite supérieure de la fréquence de la porteuse de réception (Hz).
              Consulter LIRC_SET_REC_CARRIER_RANGE.

       LIRC_SET_REC_CARRIER_RANGE (int)
              Réglage de la limite inférieure de la fréquence de la porteuse de  réception  (Hz).
              Pour  que  ces  réglages  soient  effectifs, il faut régler la limite inférieure en
              utilisant  l’ioctl  LIRC_SET_REC_CARRIER_RANGE,  puis  la  limite   supérieure   en
              utilisant l’ioctl LIRC_SET_REC_CARRIER.

       LIRC_SET_MEASURE_CARRIER_MODE (int)
              Activation (val vaut 1) ou désactivation (val vaut 0) du mode de mesure. Si activé,
              lors   du   prochain   appui   de   touche,   le   pilote   enverra   des   paquets
              LIRC_MODE2_FREQUENCY. Par défaut, cela devrait être désactivé.

       LIRC_GET_REC_RESOLUTION (void)
              Renvoi de la résolution du pilote (microsecondes).

       LIRC_SET_TRANSMITTER_MASK (int)
              Activation de l’ensemble des émetteurs indiqués dans val, qui contient un masque de
              bits ou chaque émetteur activé est un 1. Le premier émetteur est encodé par le  bit
              de  poids  le plus faible, etc. Quand un masque de bits non valable est fourni, par
              exemple un bit est défini bien que le périphérique n’ait  pas  autant  d’émetteurs,
              cette  opération  renvoie le nombre d’émetteurs disponibles et ne fait rien d’autre
              autrement.

       LIRC_SET_WIDEBAND_RECEIVER (int)
              Certains périphériques sont équipés d’un récepteur large bande qui est  prévu  pour
              découvrir  la sortie d’une télécommande existante. Cet ioctl peut être utilisé pour
              activer (val vaut 1) ou désactiver (val vaut 0)  cette  fonctionnalité.  Cela  peut
              être  utile pour des périphériques qui autrement ont des récepteurs à bande étroite
              pour empêcher une utilisation avec certaines télécommandes. Les récepteurs à  large
              bande  peuvent  être  aussi  plus  précis. D’un autre côté, leur désavantage est en
              général une réduction de la bande de réception.

              Remarque : le récepteur large bande peut être implicitement activé si les  annonces
              de porteuse sont activées. Dans ce cas, il sera désactivé aussitôt que les annonces
              de porteuse seront désactivées. Essayer de déactiver un récepteur large bande alors
              que les annonces de porteuse sont activées est sans effet.

FONCTIONNALITÉS

       L’ioctl  LIRC_GET_FEATURES  renvoie  un  masque  de  bits décrivant les fonctionnalités du
       pilote. Les bits suivants peuvent être renvoyés dans le masque :

       LIRC_CAN_REC_MODE2
              Le pilote peut recevoir en utilisant LIRC_MODE_MODE2.

       LIRC_CAN_REC_SCANCODE
              Le pilote peut recevoir en utilisant LIRC_MODE_SCANCODE.

       LIRC_CAN_SET_SEND_CARRIER
              Le pilote  gère  la  modification  de  la  fréquence  de  modulation  en  utilisant
              LIRC_SET_SEND_CARRIER.

       LIRC_CAN_SET_SEND_DUTY_CYCLE
              Le    pilote    gère   la   modification   du   cycle   opératoire   en   utilisant
              LIRC_SET_SEND_DUTY_CYCLE.

       LIRC_CAN_SET_TRANSMITTER_MASK
              Le pilot gère les émetteurs actifs en utilisant LIRC_SET_TRANSMITTER_MASK.

       LIRC_CAN_SET_REC_CARRIER
              Le  pilote  gère  le  réglage  de  la  fréquence  de  la  porteuse   en   utilisant
              LIRC_SET_REC_CARRIER.  N’importe  quel périphérique lirc depuis que les pilotes ont
              été intégrés dans Linux 2.6.36 peut avoir LIRC_CAN_SET_REC_CARRIER_RANGE déclaré si
              la fonctionnalité LIRC_CAN_SET_REC_CARRIER est activée.

       LIRC_CAN_SET_REC_CARRIER_RANGE
              Le pilote gère LIRC_SET_REC_CARRIER_RANGE. La limite basse de la porteuse doit être
              d’abord définie en utilisant l’ioctl LIRC_SET_REC_CARRIER_RANGE,  avant  d’utiliser
              l’ioctl LIRC_SET_REC_CARRIER pour définir la limite supérieure.

       LIRC_CAN_GET_REC_RESOLUTION
              Le pilote gère LIRC_GET_REC_RESOLUTION.

       LIRC_CAN_SET_REC_TIMEOUT
              Le pilote gère LIRC_SET_REC_TIMEOUT.

       LIRC_CAN_MEASURE_CARRIER
              Le   pilote   gère   la   mesure   de  la  fréquence  de  modulation  en  utilisant
              LIRC_SET_MEASURE_CARRIER_MODE.

       LIRC_CAN_USE_WIDEBAND_RECEIVER
              Le pilote gère le mode d’apprentissage en utilisant LIRC_SET_WIDEBAND_RECEIVER.

       LIRC_CAN_SEND_PULSE
              Le pilote gère l’émission en utilisant LIRC_MODE_PULSE ou LIRC_MODE_SCANCODE

BOGUES

       L’utilisation de ces périphériques nécessite le fichier source d’en-tête du noyau  lirc.h.
       Ce fichier n’était pas disponible avant Linux 4.6. Les utilisateurs de noyaux plus anciens
       peuvent utiliser le fichier disponible dans ⟨http://www.lirc.org⟩.

VOIR AUSSI

       ir-ctl(1), lircd(8), bpf(2)

       ⟨https://www.kernel.org/doc/html/latest/userspace-api/media/rc/lirc-dev.html⟩

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier  <barbier@debian.org>,  David  Prévot <david@tilapin.org> et Jean-Paul Guillonneau
       <guillonneau.jeanpaul@free.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.