J'ai deux appareils distants. Un dongle USB MCE distant que je souhaite utiliser et un périphérique intégré sur ma carte satellite PCI-E que je n'utilise ni ne souhaite utiliser.
Au démarrage, lirc attribue à ces périphériques un /dev/lircX
périphérique (où X est un nombre). Prenez cette sortie dmesg
comme exemple:
[...] rc rc0: lirc_dev: driver ir-lirc-codec (saa716x) registered at minor = 0
[...] rc rc1: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 1
Ci-dessus, ma télécommande MCE est sous /dev/lirc1
. Le problème est que la prochaine fois que je démarrerai, ce sera /dev/lirc0
. Cela rend la configuration des applications beaucoup plus difficile.
Je veux une de ces choses:
saa716x
dispositif. Notez qu'il s'agit d'un module d'appareil multifonctionnel qui gère également la vidéo pour la diffusion TV.saa716x
n'est pas une option./dev/lircX
est, et encore moins les échanger.Je suis ouvert à tout. Vous devriez pouvoir voir ce que je recherche.
7.3.3.6. L'ordre de dénomination des appareils change de façon aléatoire après le redémarrage
Cela est dû au fait qu'Udev, par sa conception, gère les uevents et charge les modules en parallèle, et donc dans un ordre imprévisible. Cela ne sera jamais "corrigé". Vous ne devez pas vous fier à la stabilité des noms des périphériques du noyau. Au lieu de cela, créez vos propres règles qui créent des liens symboliques avec des noms stables basés sur certains attributs stables de l'appareil, tels qu'un numéro de série ou la sortie de divers utilitaires * _id installés par Udev. Voir Section 7.4, "Gestion des périphériques" et Section 7.5, "Configuration générale du réseau" pour des exemples.
Source: Linux From Scratch: 7.3. Présentation de la gestion des périphériques et des modules
Vérifier les attributs du nœud cible et de ses nœuds parents
udevadm info -a /dev/lirc1
Vérifiez les variables d'environnement du nœud cible (quelque chose de différent qui peut être utilisé pour la correspondance des règles)
udevadm info /dev/lirc1
Créer un nouveau fichier de règles UDEV
Sudo nano /etc/udev/rules.d/99-lirc-symlinks.rules
#2 or only setup link for usb device
ACTION=="add", KERNEL=="lirc?", ATTRS{idVendor}=="1934", ATTRS{idProduct}=="5168", SYMLINK+="lirc90"
lirc90
qui est loin d'être atteint de toute façon.
Règles de rechargement
Sudo udevadm control -R
Déclenchez une demande d'événement, rebranchez le périphérique USB ou vous devrez peut-être redémarrer.
Sudo udevadm trigger
Configurez votre application pour utiliser /dev/lirc90
Remarques:
Il existe de nombreuses façons d'implémenter une règle pour le même appareil. Je peux donc en écrire un autre pour le dongle USB:
ACTION=="add", KERNEL=="lirc?", DRIVERS="mceusb", SYMLINK+="lirc90"
KERNELS
, SUBSYSTEMS
, DRIVERS
, ATTRS
recherche le chemin de développement vers le haut pour une correspondance. voir man udev
.