自动创建设备节点
来源:互联网 发布:Mac ps扩展未正确签署 编辑:程序博客网 时间:2024/04/28 03:31
驱动程序编写好后,还需要创建设备节点,有两种方式,一是通过mknod命令去手动创建,例如:mknod /dev/hello c 250 0,/dev/hello为设备节点名字,c代表字符设备,250和0代表它的主次设备号。二是使用udev或mdev来实现自动创建设备节点。使用mknod手动创建设备节点不够灵活,如果是动态分配的设备号怎么办,难道每次加载驱动后去查看/proc/devices文件中查看它的主设备号,要是产品发布时怎么办,显然不太现实
利用udev(mdev)来实现设备节点的自动创建,udev(mdev)存在于应用层。
包含头文件
#include<linux/device.h>
新建一个class结构体指针
static struct class *my_class;
在初始化函数中调用class_create()函数创建一个类,参数分别为模块所有者和class结构name字段,在/sys/class/下体现。
my_class= class_create(THIS_MODULE, "my_class");
if(IS_ERR(my_class))
{
printk("Err: failed increating class.\n");
return -1;
}
调用device_create()函数创建设备节点,参数分别为所从属类,这个设备的父设备,没有就制定NULL,设备号,设备的私有数据,最后一组参数指定设备节点名,比如这里的名为hello。函数原型:
extern struct device *device_create(struct class *cls, structdevice *parent,
dev_t devt, void *drvdata,
const char *fmt, ...)
具体实现在drivers/base/core.c中
程序中使用
device_create(my_class,NULL,dev_n,NULL,"%s","hello");
或者
device_create(my_class,NULL,dev_n,NULL,"hello");
设备卸载删除类和设备节点
device_destroy(my_class,dev_n);
class_destroy(my_class);
- 自动创建设备节点
- 自动创建设备节点
- 自动创建设备节点
- 自动创建设备节点
- 自动创建设备节点
- 自动创建设备文件节点
- 自动创建设备节点 device_create
- Linux自动创建设备节点
- 设备驱动-----自动创建节点
- 设备驱动--自动创建节点
- linux 自动创建设备节点
- 自动创建设备节点笔记
- linux自动创建设备节点
- 自动创建设备节点 device_create
- linux自动创建设备节点
- 设备节点的自动创建
- 字符设备自动创建设备节点
- 《Linux设备节点创建》手动与自动创建设备节点
- 观点:PC还能存在多少年?
- 初写游戏引擎
- c++常见类型转化方法
- synclvodm 命令
- 窗口风格(Window style
- 自动创建设备节点
- Android* 应用性能调试
- linux 安装 informix
- 利用信号量使线程进入等待状态
- 网页中常用的简单横向和纵向菜单
- 关于Web开发,每个程序员都应了解的那些事
- RMAN备份数据
- POJ 3352 || POJ3177
- setTextColor()的参数设置方式