本次文章是基于内核2.6.32.2开发所写的,通过查阅资料发现,关于自动创建设备节点的函数,Linux是有提供的,并非必须通过手动mknod去创建设备节点。解析如下:
register_chrdev()函数 //只注册设备信息不创建设备节点文件。
2.6.29内核或更早的内核版本,创建设备节点的函数名为:class_create()和class_device_create();
注销设备节点的函数名为:class_destory()和class_device_destory();
2.6.32内核版本,创建设备节点的函数名为:class_create()和device_create();并且在驱动程序的头文件中加入#include<linux/device.h> ←该头文件位于/linux2.6.32.2/include/linux下 。
简例:
#include<linux/device.h>
char_reg_setup_cdev () //该函数下创建设备节点
{
my_class = class_create(THIS_MODULE, "my_class");
device_create( my_class, NULL, MKDEV(hello_major, 0), "hello" "%d", 0 ); //register your own device