0

我在 nanopi NEO 空气板上运行 linux 映像(使用 buildroot 和制造商提供的 4.11.2 内核制作),IR 传感器直接插在 IR 引脚上。我想使用传感器从红外遥控器获取数据。

我按照此处找到的程序,使用相同的驱动程序,得到了相同的结果,但我无法从中获取任何数据/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)
  • 旧图像的驱动程序在其 init 函数(硬编码)中注册了以下输入设备,然后我使用它从远程(使用cat /dev/input/event1)获取数据:
    pi@NanoPi-NEO-Air:~$ cat /proc/bus/input/devices
    ...    
    我:总线=0019 供应商=0001 产品=0001 版本=0100
    N:名称="sunxi-ir"
    P:物理=远程IR/输入1
    S: Sysfs=/devices/virtual/input/input1
    U: 唯一=
    H:处理程序=sysrq kbd event1 cpufreq_interactive
    B:道具=0
    B:EV=100003
    B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe

所以现在我想知道我是否也应该在我正在使用的驱动程序中注册该设备,如果是,我应该怎么做?

4

1 回答 1

0

我的一位同事解决了它,问题出在 dts 中。
sun8i-h3-nanopi-neo-air.dts,只需像这样激活 IR:

&ir {
    status = "okay";
};

还不够,IR 的引脚也必须重新定义:

​&ir {
​    pinctrl-names = "default";
​    pinctrl-0 = <&ir_pins_a>;
​    status = "okay";
​};

希望这会对某人有所帮助。

于 2017-12-26T17:25:58.007 回答