首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pwm-ir-tx模块时没有可用的用户空间chardev

使用pwm-ir-tx模块时没有可用的用户空间chardev
EN

Stack Overflow用户
提问于 2018-06-15 11:19:36
回答 2查看 211关注 0票数 0

我尝试使用一个脉宽调制输出引脚作为红外发射器使用RAMIPS SoC和PWM IR TX kernel module。我运行的是linux 4.14.37,并在dts文件中添加了以下条目:

代码语言:javascript
复制
   pwm_ir_tx1: pwm-ir-transmitter1 {
    compatible = "pwm-ir-tx";
    pwms = <&pwm 1 100>;
  };

我正在加载rc-core和pwm-ir-tx内核模块:

代码语言:javascript
复制
lsmod | grep pwm
pwm_ir_tx               2032  0 
pwm_mediatek_ramips     1744  1 
rc_core                19348  2 pwm_ir_tx

当pwm-ir-tx模块加载时,内核记录:

代码语言:javascript
复制
[ 3754.108259] rc rc0: PWM IR Transmitter as /devices/platform/pwm-ir-transmitter1/rc/rc0

sysfs节点似乎已正确加载:

代码语言:javascript
复制
ls -la /sys/class/rc/
drwxr-xr-x    2 root     root             0 May 29 00:18 .
drwxr-xr-x   23 root     root             0 Jan  1  1970 ..
lrwxrwxrwx    1 root     root             0 May 29 01:16 rc0 -> ../../devices/platform/pwm-ir-transmitter1/rc/rc0

但是在/dev中没有列出用户空间(chardev) lirc设备,所以我不确定我应该如何与该设备交互。理想情况下,我希望使用Remote Controller API,但这需要在/dev中有一个chardev。

代码语言:javascript
复制
ls /dev
autofs              mtd2ro              network_throughput
console             mtd3                null
cpu_dma_latency     mtd3ro              port
full                mtd4                ptmx
gpiochip0           mtd4ro              pts
gpiochip1           mtd5                random
gpiochip2           mtd5ro              shm
gpiochip3           mtd6                tty
i2c-0               mtd6ro              ttyS0
kmsg                mtdblock0           ttyS1
log                 mtdblock1           ttyS2
memory_bandwidth    mtdblock2           urandom
mtd0                mtdblock3           watchdog
mtd0ro              mtdblock4           watchdog0
mtd1                mtdblock5           zero
mtd1ro              mtdblock6
mtd2                network_latency

我尝试在pwm-ir-tx模块之前和之后加载lirc_dev模块,但/dev中仍然没有显示任何内容,当我加载lirc_dev模块时,出现以下输出:

代码语言:javascript
复制
[ 4775.367966] lirc_dev: IR Remote Control driver registered, major 251

但在/dev中仍然没有lirc用户空间设备...我认为lirc_dev模块是必需的,因为它提供了lirc用户空间api,但它与pwm-ir-tx模块之间似乎没有任何连接,并且它不会在/dev中创建任何lirc chardevs。

EN

回答 2

Stack Overflow用户

发布于 2018-06-15 21:08:06

pwm_ir_tx模块似乎或多或少是对脉宽调制驱动器的一个搭载。而pwm驱动程序似乎可以在/sys/class/pwm/上找到。参见https://www.kernel.org/doc/Documentation/pwm.txt

顺便说一句,在rc0/中没有lirc链接并不少见-并不是所有的驱动程序都实现了这一点。

票数 0
EN

Stack Overflow用户

发布于 2018-06-16 03:14:11

在阅读了内核中的一些rc源文件后,很明显,ir-lirc-codec模块也是必需的。基本上,pwm-ir-tx驱动器被定义为一种RC_DRIVER_IR_RAW_TX。当rc-core模块使用RC_DRIVER_IR_RAW或RC_DRIVER_IR_RAW_TX类型注册驱动程序时,它会调用ir_raw_event_prepare函数,该函数会尝试加载ir-lirc-codec模块。此模块可用后,将显示以下内核日志:

代码语言:javascript
复制
[   10.004460] lirc_dev: IR Remote Control driver registered, major 251
[   10.131011] IR LIRC bridge handler initialized
[   10.471561] rc rc0: PWM IR Transmitter as /devices/platform/pwm-ir-transmitter1/rc/rc0
[   10.487456] rc rc0: lirc_dev: driver ir-lirc-codec (pwm-ir-tx) registered at minor = 0

在/dev中有一个可用的lirc chardev设备:

代码语言:javascript
复制
 ls /dev/li*
/dev/lirc0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50868664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档