i在纳米型NEO AIR BOARD上运行一个Linux图像(用BuildRoot和4.11.2内核制造),直接在IR引脚上插入了IR传感器。我想使用传感器从IR遥控器中获取数据。
我遵循此处找到的过程,具有相同的驱动程序,并得到了相同的结果,但是我无法从/dev/input/eventX
获取任何数据,也无法让我的遥控器出现在/proc/bus/input/devices
中(我尝试使用远程控制发送数据插入驱动程序,或在驾驶员内置时启动时,但显然没有起作用,我没有找到太多的信息)。
我也尝试了LIRC和EVTEST/INRECORD,但我仍然无法获得任何数据,我相信问题在其他地方。
我用示波器测试了传感器和遥控器,因此我知道传感器正在从遥控器中获取框架。我也很确定这不是驾驶员方面的协议不匹配。
所以我有两个问题:
- 这里的问题在哪里,当我运行
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/proc/bus/intup/设备 ... I:BUS = 0019供应商= 0001产品= 0001版本= 0100 n:name =" sunxi-ir" P:Phys =远程/输入1 S:sysfs =/设备/虚拟/输入/输入1 U:uniq = h:handlers = sysrq kbd event1 cpufreq_interactive B:prop = 0 B:EV = 100003 b:key = fffffff fffffff ffffffff fffffffffffffff fffffff ffffffff fffffff ffffffff ffffffffe
所以现在我想知道我是否也应该在使用的驱动程序中注册该设备,如果是这样,我应该如何做?
我的同事之一解决了问题,问题在DTS中。
在sun8i-h3-nanopi-neo-air.dts
中,仅激活IR:
&ir {
status = "okay";
};
还不够,IR的引脚也必须重新定义:
&ir {
pinctrl-names = "default";
pinctrl-0 = <&ir_pins_a>;
status = "okay";
};
希望这对某人有帮助。