内核中的 register_chrdev()
函数登记一个字符设备:
int register_chrdev(unsigned int major, const char*name,
struct file_operations*ops));
如果major
是0
,则可以动态分配一个主要数字,并且寄存器功能将其返回。
现在,假设一个模块foo.ko
想要使用具有动态主要数字的/dev/foo
。用户空间如何学习将什么主要数字传递给mknod
创建/dev/foo
?
一旦字符设备被动态主要编号注册,相应的信息将在/proc/devices
中出现,因此可以通过用户空间应用程序/脚本检索,以创建适当的节点。
有关更好的示例,您可以参考Linux设备驱动程序(第三版),例如,在此页面上显示了要读取/proc/devices
的脚本。