Добавлю свои "пять копеек", вдруг кому пригодиться.
Приобрел
вот такой вот карт-ридер со встроенным IR-приемником (это было неожиданностью при его покупке). Со смарт-картами в Linux свои заморочки, это отдельная песня, занялся IR-приемником.
Пульм у меня от телевизора JVC - RM-C360, под него и настраивал. Задача немного осложняется наличием в системе TV-тюнера AverMedia, у которого тоже есть свой приемник, но он не подключен. Начинаем...
Для начала смотрим в dmesg:
[root@ws01 ~]# dmesg | grep input
[ 1.368150] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[ 1.453245] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input2
[ 1.453334] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[ 6.342441] input: PC Speaker as /devices/platform/pcspkr/input/input5
[ 6.359363] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:14.2/input/input7
[ 6.389159] input: saa7134 IR (Avermedia AVerTV St as /devices/pci0000:00/0000:00:14.4/0000:03:06.0/rc/rc0/input6
[ 6.917152] input: Media Center Ed. eHome Infrared Remote Transceiver (0bda:0161) as /devices/pci0000:00/0000:00:13.2/usb2/2-1/2-1:1.2/rc/rc1/input8
[ 6.934143] input: MCE IR Keyboard/Mouse (mceusb) as /devices/virtual/input/input9
[ 7.575292] input: ImPS/2 Generic Wheel Mouse as /devices/platform/i8042/serio1/input/input4
[ 11.862681] systemd-logind[523]: Watching system buttons on /dev/input/event2 (Power Button)
[ 11.862842] systemd-logind[523]: Watching system buttons on /dev/input/event1 (Power Button)
Меня заинтересовали 6,7 и 8 строки - кто-то из них должен быть приемником из карт-ридера. Смотрим в lsusb:
[root@ws01 ~]# lsusb
Bus 002 Device 002: ID 0bda:0161 Realtek Semiconductor Corp. Mass Storage Device
Bus 002 Device 003: ID 8564:1000 Transcend Information, Inc. JetFlash
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Первая строчка - явно мой карт-ридер. Уже хорошо. Хорошо потому, что в Windows мне пришлось устанавливать драйверы для него, иначе смарт-карты и приемник не определялись.
Пробуем перебирать эвенты в /dev/input, на пульт ответил /dev/input/event6, как ни странно. Остальные ничего не показывали. В /dev также есть устройство lirc0, которое также реагирует на пульт. Значит, придется экспериментировать с устройствами.
Запускаем в одной консоли lircd:
lircd --nodaemon -H devinput -d /dev/input/event6
В другой консоли запускаем irw и начинаем жать кнопки на пульте. На выходе ничего. В это же время нашелся
конфиг для моего пульта. Копируем его содержимое в /etc/lircd.conf и пробуем снова. Ничего...
Правильная конфигурация в итоге обнаружилась при такой строчке:
lircd --nodaemon -H default -d /dev/lirc0 /etc/lircd.conf
Ее и заносим в /etc/sysconfig/lircd. Конечно, без первого ключа. При указанных параметрах irw показывает названия кнопок пульта и генерирует по два события на каждое нажатие: нажатие и отпускание кнопки.