Provided by: manpages-fr_4.27.0-1_all 

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.9.1 2 mai 2024 lirc(4)