Provided by: manpages-fr_4.23.1-1_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 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.

Pages du manuel de Linux 6.8                       2 mai 2024                                            lirc(4)