创建一个设备文件的方法

排除自己的认识误区,insmod命令是用来加载内核模块,而mknod则是用来创建设备文件。

创建一个设备文件

①手动创建---mknod

命令格式:mknod filename type major minor

参数含义:

filename:设备文件名
type: 设备文件类型
major: 主设备号
minor: 次设备号

例程:mknod serial0 c 100 0

个人认为手动创建设备文件一般都是为了测试使用。

②自动创建设备文件

函数原型:devfs_register (devfs_handle_t dir,const char *name,unsignedint flags,unsignedint major,unsignedint minor,umode_t mode,void *ops, void *info)

函数功能:在指定的目录中创建设备文件。

参数含义:

dir:目录名,为空表示在/dev/目录下创建;

name:文件名;

flags:创建标志;

major:主设备号;

minor:次设备号;
mode:创建模式;

ops:操作函数集;

info:通常为空

注意:从Linux 2.6.13开始,devfs不复存在,udev成为devfs的替代。相比devfs,udev(mdev)存在于应用层。利用udev(mdev)来实现设备文件的自动创建很简单,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 device_create创建对应的设备。

自动创建设备文件的例子(udev):

struct class *myclass = class_create(THIS_MODULE, “my_device_driver”);
device_create(myclass, NULL, MKDEV(major_num, 0), NULL, “my_device”);

当驱动被加载时,udev( mdev)就会自动在/dev下创建my_device设备文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值