【问题标题】:/dev/uio0 char device node not showing up/dev/uio0 char 设备节点未显示
【发布时间】:2017-11-12 14:35:48
【问题描述】:

我尝试实例化一个 uio (driver/uio/uio_pdrv_genirq.c) char 设备 捕获用户空间中的一些 gpio 中断。

一切似乎都是 设置正确,出现 /sys/class/uio/uio0/ 并且 /proc/interrupts 显示我的中断已注册。

但是我想念的是 /dev/uio0 条目。

我通过 driver/uio/uio.c:__uio_register_device() 和 device_create() 确实成功了,所以我想知道为什么 /dev/uio0 没有 出现。我不能使用 mknod 因为主号码是动态的 由 driver/uio/uio.c 分配。

我需要启用一些额外的内核配置,以便 /dev/uio0 自动出现还是我错过了什么?我没有启用CONFIG_DEVTEMPFS,是否需要这样才能自动出现/dev/uio0?

【问题讨论】:

  • 您是否使用过 dts 覆盖来提升 /sys/class/uio/uio0?尝试在 RPI0 上使用 uio_pdrv_genirq,但没有创建正确的 dts 覆盖文件...
  • 您需要启用驱动程序,但还要指定要使用的“兼容”标签。您可以通过 cmdline 选项执行此操作,例如: uio_pdrv_genirq.of_id=generic-uio 。然后你可以在dtb中添加“compatible = generic-uio”,驱动与设备匹配。

标签: linux linux-kernel linux-device-driver embedded-linux


【解决方案1】:

挂载 devtempfs 或将内核配置为自动挂载 /dev 上的 devtempfs 是解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    相关资源
    最近更新 更多