驱动开发--自动创建节点udev机制的实现过程分析

一,创建设备文件的机制

1,mknod:手动创建设备节点

2,devfs:创建设备节点的逻辑在内核空间,2.5版本后淘汰

3,udev:自动创建设备节点的机制,逻辑在用户空间,常用

4,mdev:轻量级的udev机制

二,udev创建设备节点的过程分析

驱动开发--自动创建节点udev机制的实现过程分析_第1张图片

1,注册驱动,register_chrdev()函数

2,获取设备信息(设备树相关文件,目前为指定寄存器地址)

3,创建一个设备类(向上提交目录信息),会在内核中申请一个struct class对象,并且初始化,此时会在/sys/class/目录下创建一个以类名为名的目录

4,创建一个设备对象(向上提交设备节点信息),会在内核中申请一个struct device对象,并且初始化,此时会在上一步创建好的目录下创建存放设备节点信息的文件

5,当创建好存放设备节点信息的文件后,内核会发起hotplug event事件,激活用户空间的hotplug进程

6,hotplug进程激活后,会通知udev进程在刚创建的存放设备节点信息的文件中查询设备节点相关信息

7,udev查询设备节点相关信息后,会在/dev目录下创建设备节点

你可能感兴趣的:(驱动开发,驱动开发,linux,ubuntu,嵌入式硬件)