Я запускаю образ Linux (созданный с помощью buildroot и ядра 4.11.2, предоставленного производителем) на воздушной плате nanopi NEO с ИК-датчиком, подключенным непосредственно к ИК-контакту. Я хочу использовать датчик для получения данных с ИК-пульта дистанционного управления.
Я следовал процедуре, найденной здесь, с тем же драйвером, и получил те же результаты, но я не могу получить какие-либо данные из /dev/input/eventX
, и я не могу заставить свой пульт отображаться в /proc/bus/input/devices
(я пытался отправить данные с помощью пульта дистанционного управления при вставке драйвера или при загрузке, когда драйвер встроен, но он очевидно, не сработало, и я не нашел много информации об этом).
Я также пытался использовать lirc и evtest/irrecord, но все еще не могу получить данные и думаю, что проблема в другом.
Я проверил датчик и пульт с помощью осциллографа, поэтому знаю, что датчик получает кадры с пульта. Я также совершенно уверен, что это не несоответствие протокола на стороне водителя.
Итак, у меня есть два вопроса:
- В чем здесь проблема и почему я ничего не могу получить, когда запускаю
cat /dev/input/eventX
? - Должен ли мой пульт отображаться в
/proc/bus/input/devices
и существует ли процедура сопряжения, о которой мне следует знать?
Прошу извинить, если это тривиальные вопросы (я никогда раньше не занимался IR), и заранее спасибо.
ИЗМЕНИТЬ
Мне удалось заставить мой пульт работать с одним из старых образов, предоставленных производителем (ядро 3.4.39-h3), и я заметил, что:
- Драйвер, который я использую, не работает (он никогда не переходит в функцию прерывания, которая считывает FIFO, а физические адреса, связанные с FIFO, всегда равны 0)
- Драйвер для старого образа регистрирует следующее устройство ввода в своей функции инициализации (жестко запрограммировано), которую я затем использую для получения данных с удаленного устройства (используя
cat /dev/input/event1
):
pi@NanoPi-NEO-Air:~$ cat /proc/bus/input/devices ... I: Bus=0019 Vendor=0001 Product=0001 Version=0100 N: Name="sunxi-ir" P: Phys=RemoteIR/input1 S: Sysfs=/devices/virtual/input/input1 U: Uniq= H: Handlers=sysrq kbd event1 cpufreq_interactive B: PROP=0 B: EV=100003 B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe
Итак, теперь мне интересно, должен ли я также зарегистрировать это устройство в драйвере, который я использую, и если да, то как мне это сделать?
eventX
или фактический номер, связанный с вашим устройством, напримерevent0
? На той странице, на которую вы ссылаетесь, есть документация, в которой показано, как получить номер для вашего конкретного устройства (если у вас его еще нет). - person JNevill   schedule 27.11.2017event0
, иevent1
, просто чтобы быть уверенным, но теперь я думаю, что проблема на самом деле связана с драйвером. Я только что отредактировал свой пост, чтобы отразить это. - person Prewitt   schedule 27.11.2017