1 mdev 机制
在驱动入口函数里面创建类和设备,在驱动出口函数里面删除类和设备,参考示例如下:
这样加载驱动模块以后就自动在
/dev
目录下创建对应的设备节点文件。
mdev
是一个用户程序,在
Linux
下通过
mdev
来实现设备文件的创建与删除,
mdev
可以检测系统中硬件设备状态,可以根据系统中硬件设备状态来创建或者删除设备文件。
比如使用modprobe 命令成功加载驱动模块以后就自动在
/dev
目录下创建对应的设备节点文件
,
使用 rmmod 命令卸载驱动模块以后就删除掉
/dev
目录下的设备节点文件。
2 创建和删除类、创建和删除设备
自动创建设备节点前,首先要创建一个
class 类,然后在这个类下创建一个设备。
卸载驱动的时候需要删除掉创建的设备和类。
卸载驱动的时候需要删除掉创建的设备和类。
在驱动入口函数里面创建类和设备,在驱动出口函数里面删除类和设备,参考示例如下:
struct class *class; /* 类 */
struct device *device; /* 设备 */
dev_t devid; /* 设备号 */
/* 驱动入口函数 */
static int __init led_init(void) 7 { 8 /* 创建类 */
class = class_create(THIS_MODULE, "xxx");
/* 创建设备 */
device = device_create(class, NULL, devid, NULL, "xxx");
return 0;
}
/* 驱动出口函数 */
static void __exit led_exit(void)
{
/* 删除设备 */
device_destroy(newchrled.class, newchrled.devid);
/* 删除类 */
class_destroy(newchrled.class);
}
module_init(led_init);
module_exit(led_exit);