内核中的register_chrdev()
函数注册了一个字符设备:
int register_chrdev(unsigned int major, const char*name,
struct file_operations*ops));
如果major
是0
,内核会动态分配一个主编号,寄存器函数会返回它。
现在,我们假设模块foo.ko
想要将/dev/foo
与动态主号码一起使用。用户空间如何了解要传递给mknod
以创建/dev/foo
的主要数字?
答案 0 :(得分:1)
只要字符设备注册了动态主编号,相应的信息就会显示在/proc/devices
中,因此可以通过用户空间应用程序/脚本检索,以便创建适当的节点。
有关更好的示例,您可以参考Linux设备驱动程序书籍(第3版),例如,this页面上会显示阅读/proc/devices
的脚本。