设备节点的自动创建
在写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,
实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,
并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。
内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,
内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,
一旦创建好了这个类,再调用device_create(…)函数来在/dev目录下创建相应的设备节点。
这样,加载模块的时候,用户空间中的udev会自动响应device_create(…)函数,去/sysfs下寻找对应的类从而创建设备节点。
通过device_destroy();class_destroy();来注销类和节点