【问题标题】:How to access a dynamic character device from userspace?如何从用户空间访问动态字符设备?
【发布时间】:2017-09-11 15:05:45
【问题描述】:

内核中的register_chrdev()函数注册一个字符设备:

int register_chrdev(unsigned  int  major,  const  char*name,
 struct file_operations*ops));

如果major0,内核会动态分配一个主编号,并且寄存器函数会返回它。

现在,让我们假设一个模块 foo.ko 想要使用带有动态主编号的 /dev/foo。用户空间如何知道将哪个主号码传递给mknod 以创建/dev/foo

【问题讨论】:

    标签: linux-kernel mknod


    【解决方案1】:

    一旦字符设备通过动态主号码注册,相应的信息就会出现在/proc/devices 中,因此可以由用户空间应用程序/脚本检索以创建适当的节点。

    如需更好的示例,您可以参考 Linux Device Drivers book(第 3 版),例如,阅读 /proc/devices 的脚本显示在 this 页面上。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多