Tips & tricks — LIRC + UDEV
Начал я настраивать LIRC и столкнулся с проблемой.
Мой пульт работает через драйвер devinput, а как известно, устройствам ввода номер event'a при каждой перезагрузке назначается каким-то произвольным образом. Т.е. если мой пульт сейчас висит на /dev/input/event5, то при следующей загрузке компа ему спокойненько могут присвоить /dev/input/event6. Естественно, если наш LIRC в качестве параметра LIRC_DEVICE использует /dev/input/event5, то работать после перезагрузки он перестанет.
Как это вылечить читаем под катом.
1. Ищем наше ИК-устройство:
# cat /proc/bus/input/devices
2. С помощью udevadm выясняем атрибуты нашего устройства:
# udevadm info -a -p /sys/class/input/input5
3. Создаем правило для udev:
# cat /etc/udev/rules.d/10-lirc.rules
4. Теперь при следующей перезагрузке мы получим симлинк /dev/input/irremote на наше ИК-устройство, какой бы номер event'а ему бы не присвоили. И, соответственно, в конфиге LIRC'а мы можем теперь указывать LIRC_DEVICE = /dev/input/irremote
Спасибо за внимание.
Мой пульт работает через драйвер devinput, а как известно, устройствам ввода номер event'a при каждой перезагрузке назначается каким-то произвольным образом. Т.е. если мой пульт сейчас висит на /dev/input/event5, то при следующей загрузке компа ему спокойненько могут присвоить /dev/input/event6. Естественно, если наш LIRC в качестве параметра LIRC_DEVICE использует /dev/input/event5, то работать после перезагрузки он перестанет.
Как это вылечить читаем под катом.
1. Ищем наше ИК-устройство:
# cat /proc/bus/input/devices
1 2 3 4 5 6 7 8 |
I: Bus=0001 Vendor=5168 Product=0138 Version=0001 |
2. С помощью udevadm выясняем атрибуты нашего устройства:
# udevadm info -a -p /sys/class/input/input5
1 2 3 4 5 6 7 8 |
looking at device '/devices/pci0000:00/0000:00:1e.0/0000:02:09.0/input/input5': |
3. Создаем правило для udev:
# cat /etc/udev/rules.d/10-lirc.rules
KERNEL=="event*", ATTRS{name}=="saa7134 IR (LifeView FlyVIDEO30", SYMLINK="input/irremote"
4. Теперь при следующей перезагрузке мы получим симлинк /dev/input/irremote на наше ИК-устройство, какой бы номер event'а ему бы не присвоили. И, соответственно, в конфиге LIRC'а мы можем теперь указывать LIRC_DEVICE = /dev/input/irremote
Спасибо за внимание.