0

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

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

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

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

4

1 回答 1

1

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

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

于 2017-09-11T15:40:05.113 回答