У меня есть два удаленных устройства. Удаленный аппаратный ключ MCE одного USB, который я хочу использовать, и встроенное устройство на моей спутниковой карте PCI-E, которую я никакой использую или хочу.
Когда вещи загружаются, lirc присваивает эти устройства a /dev/lircX
устройство (где X число). Возьмите это dmesg
вывод как пример:
[...] 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
Выше, мое удаленное MCE находится под /dev/lirc1
. Проблема время затем, что я загружаюсь, это будет /dev/lirc0
. Это подает заявки конфигурирования это намного тяжелее.
Я хочу одну из этих вещей:
saa716x
устройство. Обратите внимание, что это - модуль устройства мультифункции, который также обрабатывает видео для телевизионной потоковой передачи.saa716x
не опция./dev/lircX
уже не говоря о подкачивают их.Я открыт для чего-либо. Необходимо смочь видеть то, что я после.
7.3.3.6. Устройство, называющее изменения порядка случайным образом в честь перезагрузки
, Это - то, вследствие того, что Udev, дизайном, обрабатывает uevents и загружает модули параллельно, и таким образом в непредсказуемом порядке. Это никогда не будет “fixed”. Вы не должны полагаться на имена устройств ядра, являющиеся стабильным. Вместо этого создайте свои собственные правила, которые делают символьные ссылки со стабильными именами на основе некоторых стабильных атрибутов устройства, таких как порядковый номер или вывод различных * _id утилиты установленный Udev. Посмотрите Раздел 7.4, “Managing Devices” и Раздел 7.5, Сеть “General Configuration” для примеров.
Источник: Linux С нуля: 7.3. Обзор Устройства и Модуля, Обрабатывающего
<час>Проверка на атрибуты целевого узла и его родительских узлов
udevadm info -a /dev/lirc1
Проверка, переменные среды целевого узла (что-то другое, что может использоваться для соответствия правила)
udevadm info /dev/lirc1
Создают новый файл
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
правил UDEV, который должен далеко быть достигнут так или иначе.
правила Перезагрузки
sudo udevadm control -R
запрос события Trigger, повторно включите USB-устройство, или Вам, возможно, понадобится перезагрузка.
sudo udevadm trigger
Установка Ваше приложение для использования /dev/lirc90
Примечания:
существуют много много способов реализовать правило для того же устройства. Таким образом, я могу записать другой для аппаратного ключа USB:
ACTION=="add", KERNEL=="lirc?", DRIVERS="mceusb", SYMLINK+="lirc90"
KERNELS
, SUBSYSTEMS
, DRIVERS
, ATTRS
ищут devpath вверх соответствие. см. man udev
.