网站大量收购独家精品文档,联系QQ:2885784924

mdev的使用和原理.pdfVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档