如何从用户空间访问动态角色设备?

时间:2017-09-11 15:05:46

标签: linux-kernel mknod

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

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

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

现在,我们假设模块foo.ko想要将/dev/foo与动态主号码一起使用。用户空间如何了解要传递给mknod以创建/dev/foo的主要数字?

1 个答案:

答案 0 :(得分:1)

只要字符设备注册了动态主编号,相应的信息就会显示在/proc/devices中,因此可以通过用户空间应用程序/脚本检索,以便创建适当的节点。

有关更好的示例,您可以参考Linux设备驱动程序书籍(第3版),例如,this页面上会显示阅读/proc/devices的脚本。