- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mdev的使用和原理
mdev 的使用方法和原理。 收藏
mdev 的使用方法和原理
mdev 是busybox 自带的一个简化版的udev ,适合于嵌入式的应用埸合。其具有使用简单的
特点。它的作用,就是在系统启动和热插拔
或动态加载驱动程序时,自动产生驱动程序所需的节点文件。在以busybox 为基础构建嵌入
式linux 的根文件系统时,使用它是最优
的选择。
mdev 使用
mdev 的使用在busybox 中的mdev.txt 文档已经将得很详细了。但作为例子,我简单讲讲我
的使用过程:
(1)在编译时加上对mdev 的支持 (我是使用的是busybox1.10.1 ):
Linux System Utilities
mdev
Support /etc/mdev.conf
Support command execution at device addition/removal
(2 )在启动时加上使用mdev 的命令:
我在自己创建的根文件系统 (nfs )中的/linuxrc 文件中添加了如下指令:
#挂载/sys 为sysfs 文件系统
echo mount /sys as sysfs
/bin/mount -t tmpfs mdev /dev
/bin/mount -t sysfs sysfs /sys
echo Starting mdev
/bin/echo /sbin/mdev /proc/sys/kernel/hotplug
mdev -s
注意:是/bin/echo /sbin/mdev /proc/sys/kernel/hotplug ,并非/bin/echo /bin/mdev
/proc/sys/kernel/hotplug 。
busybox 的文档有错!!
(3 )在你的驱动中加上对类设备接口的支持。
在驱动程序的初始化函数中,使用下述的类似语句,就能在类设备目录下添加包含设备号
的名为“dev ”的属性文件。并通过mdev
在/dev 目录下产生gpio_dev0 的设备节点文件。
my_class = class_create(THIS_MODULE, gpio_class);
if(IS_ERR(my_class)) {
printk(Err: failed in creating class.\n);
return -1;
}
/* register your own device in sysfs, and this will cause mdev to create corresponding device
node */
class_device_create(my_class, MKDEV(gpio_major_number, 0), NULL, gpio_dev%d ,0);
在驱动程序的清除程序段,加入以下语句,以完成清除工作。
class_device_destroy(my_class, MKDEV(gpio_major_number, 0));
class_destroy(my_class);
需要的头文件是linux/device.h,因此程序的开始应加入下句
#include linux/device.h
另外,my_class 是class 类型的结构体指针,要在程序开始时声明成全局变量。
struct class *my_class;
上述程序中的gpio_major_number 是设备的主节点号。可以换成需要的节点号。gpio_dev
是最终生成的设备节点文件的名子。%d 是
用于以相同设备自动编号的。gpio_class 是建立的class 的名称,当驱动程序加载后,可以在
/sys/class 的目录下看到它。
上述语句也不一定要在初始化和清除阶段使用,可以根据需要在其它地方使用。
(4 )至于/etc/mdev.conf 文件,可有可无,不影响使用,只是添加了些功能。
关于mdev 的使用方法,我在网上找到一篇中文版的。大家可以到我上传的资源中下载。
要想真正用好mdev ,适当知道一下原理是必不可少的。现在简单介绍一下mdev 的原理:
执行mdev -s
:以‘-s ’为参数调用位于
/sbin 目录写的mdev (其实是个链接,作用是传递参数给/bin 目录下的busybox 程序并调用
它),mdev 扫描 /sys/cla
您可能关注的文档
- e国先进技术计划(ATP)的研究开发机制及启示.pdf
- Fair Queueing in ATM Networks a Simulation Study.pdf
- Fault Tolerant PVM Application A Case Study with DCICADA(FT).pdf
- FBG传感器应变监测温度效应分析.pdf
- FEMAG晶体生长专业模拟软件晶体中氧浓度和各组分浓度预测.ppt
- Femtosecond Coherent Dynamics of the Fermi Edge Singularity and Exciton Hybrid.pdf
- FEL光学速调管的升级性能分析.pdf
- Ferromagnetism in Mn Substituted Zirconia A Densityfunctional Theory Study.pdf
- FerumoxidePLL标记人骨髓间充质干细胞及其对磁共振成像信号的影响.pdf
- Fe_Ga合金磁致伸缩材料的研究进展.pdf
文档评论(0)