gpt4 book ai didi

linux - 无法使用官方驱动程序从嵌入式 Linux 上的红外传感器获取数据

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:50 27 4
gpt4 key购买 nike

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

我按照程序找到了 here ,使用相同的驱动程序,并得到相同的结果,但我无法从 /dev/input/eventX 获取任何数据,也无法让我的 Remote 出现在 /proc/bus/input/devices (我尝试在插入驱动程序时使用 Remote 发送数据,或者在内置驱动程序时在启动时尝试发送数据,但显然没有用,我没有找到太多相关信息)。

我也尝试了 lirc 和 evtest/irrecord,但我仍然无法获取任何数据,我相信问题出在其他地方。

我用示波器测试了传感器和 Remote ,所以我知道传感器正在从 Remote 获取帧。我也相当确定这不是驱动程序端的协议(protocol)不匹配。

所以我有两个问题:

  • 这里的问题在哪里,为什么我运行 cat/dev/input/eventX 时什么也得不到?
  • 我的 Remote 是否应该显示在 /proc/bus/input/devices 中?是否有我应该注意的配对过程?

如果这些是微不足道的问题(我以前从未从事过 IR),请原谅,在此先感谢您。

编辑

我已经设法让我的 Remote 与制造商提供的旧图像之一(内核 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

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

最佳答案

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

&ir {
status = "okay";
};

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

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

希望这对某些人有帮助。

关于linux - 无法使用官方驱动程序从嵌入式 Linux 上的红外传感器获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47461271/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com