linux嵌入式系统中mdev的配置

原创 2011年01月15日 14:48:00

1、mdev是什么。

busybox的mdev是一个精简了的udev管理程序,而udev是linux2.6内核引入的一种新的设备文件管理机制,用于取代老的devfs.udev最大的有点就是可以动态的管理/dev目录下的设备文件,而不用再系统初始化时就将可能要用到的设备都创建起来,还可以根据设备具体信息命名设备节点,而不是有内核统一分配。

 

2、如何在嵌入式系统中开启mdev。

  1)在busybox中添加对mdev的支持。

 

  2)在/etc/rc.d/rcS中添加

  #在/sys中挂载sysfs文件系统,它是mdev运行的基础条件之一

  mount -t sysfs sysfs /sys

 

  #设置系统的hotplug程序为mdev

  echo /sbin/mdev > /proc/sys/kernel/hotplug  

  

  #mdev程序检索/sys和/proc中文件系统的设备信息,在/dev中生成相应的设备节点

  mdev –s

 

 

 

  3)确保编译内核时编译如下选项:

  CONFIG_PROC_FS=y

  CONFIG_PROC_SYSCTL=y

  CONFIG_HOTPLUG=y

  CONFIG_NET=y

 

  注:根据udev官方文件的介绍(http://git.kernel.org/?p=linux/hotplug/udev.git;a=blob;hb=HEAD;f=README),编译udev需要配置如下选项;最好采用2.6.27及其以后版本。

  CONFIG_HOTPLUG=y

  CONFIG_UEVENT_HELPER_PATH=""
  CONFIG_NET=y
  CONFIG_UNIX=y
  CONFIG_SYSFS=y
  CONFIG_SYSFS_DEPRECATED*=n
  CONFIG_PROC_FS=y
  CONFIG_TMPFS=y
  CONFIG_INOTIFY_USER=y
  CONFIG_SIGNALFD=y
  CONFIG_TMPFS_POSIX_ACL=y (user ACLs for device nodes)
  CONFIG_BLK_DEV_BSG=y (SCSI devices)
 
  4)建立/etc/uedv/udev.conf文件,一般定义如下几个参数:

udev_root:udev 产生的设备所存放的目录,默认值是 /dev/。建议不要修改该参数,因为很多应用程序默认会从该目录调用设备文件。
udev_db:udev 信息存放的数据库或者所在目录,默认值是 /dev/.udev.tdb。
udev_rules:udev 规则文件的名字或者所在目录,默认值是 /etc/udev/rules.d/。
udev_permissions:udev 权限文件的名字或者所在目录,默认值是 /etc/udev/permissions.d/。
default_mode/ default_owner/ default_group:如果设备文件的权限没有在权限文件里指定,就使用该参数作为默认权限,默认值分别是:0600/root/root。
udev_log:是否需要 syslog记录 udev 日志的开关,默认值是 no。

  

  5)在/etc/udev/rules.d/目录下建立需要的规则文件*.rules,mdev会自动搜索这些文件内容,最终得到设备节点的名称、权限等。关于规则文件的如何撰写,请参见“跟我一起写udev规则” 一文。

 

      

 

  

 

执行mdev -s :以‘-s’为参数调用位于 /sbin目录写的mdev(其实是个链接,作用是传递参数给/bin目录下的busybox程序并调用它),mdev扫描 /sys/class 和 /sys/block 中所有的类设备目录,如果在目录中含有名为“dev”的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev 下创建设备节点文件。一般只在启动时才执行一次 “mdev -s”。

 

热插拔事件:由于启动时运行了命令:echo /sbin/mdev > /proc/sys/kernel/hotplug ,那么当有热插拔事件产生时,内核就会调用位于 /sbin目录的mdev。这时mdev通过环境变量中的 ACTION 和 DEVPATH,来确定此次热插拔事件的动作以及影响了/sys中的那个目录。接着会看看这个目录中是否有“dev”的属性文件,如果有就利用这些信息为这个设备在/dev 下创建设备节点文件。

相关文章推荐

嵌入式Linux系统中利用mdev自动创建设备文件节点

嵌入式Linux系统中利用mdev自动创建设备文件节点        mdev是busybox自带的一个简化版的udev,作用是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程序所需的节点文件...

linux中的热插拔和mdev机制(深入理解嵌入式linux文件系统的制作)

mdev是busybox自带的一个简化版的udev。     作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建...
  • ccwwff
  • ccwwff
  • 2013年03月29日 15:42
  • 821

linux中的热插拔和mdev机制(深入理解嵌入式linux文件系统的制作)

mdev是busybox自带的一个简化版的udev。    作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的 ...
  • ce123
  • ce123
  • 2011年08月09日 21:47
  • 5910

基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南七——MiniGUI 1.1.0 引入的新 GDI 功能和函数之二

简介: 我们在 “MiniGUI1.1.0 版本引入的新 GDI 功能和函数”一文中描述了在 1.1.0Pre4版本中添加的新 GDI 相关函数的功能及其使用。目前,MiniGUI 1.1.0Pre7...
  • HiRuyue
  • HiRuyue
  • 2013年09月15日 11:07
  • 1093

基于ARM和Linux交叉开发环境的搭建-嵌入式系统(一些概念不错写的~~)

目前,随着ARM技术的日益成熟和广泛应用,基于ARM核的微处理器已经成为嵌入式市场的主流。而建立面向ARM构架的嵌入式操作系统也就成为当前研究的热点问题.在众多的嵌入式操作系统中,许多开发人员都选择H...

单片机和嵌入式系统linux的区别

随着嵌入式行业硬件平台的性能增强,项目需求和功能日益复杂,ARM公司推出的 CORTEX-M3,更是让以往做单片机的工程师在芯片和技术选型面临两难选择,本专题将从芯片价格、整个系统的硬件软件设计及维护...

嵌入式系统(Linux&Android)学习路线

嵌入式学习路线(Linux&Android)   关于嵌入式学习路线,我看一些初学者问的很多,因此今天制作相关图文给大家一个参考,这也是华清远见嵌入式学院的的课程体系。也是当前最符合企业用人需求的...
  • Cowena
  • Cowena
  • 2015年08月05日 08:17
  • 1106

嵌入式系统烧写uboot/bootloader/linux内核的一般方法

******************* ********** 作者: 韩大卫@吉林师范大学 2011.10.15 handawei@jusontech.com ************* **...
  • hdw10
  • hdw10
  • 2012年11月06日 14:31
  • 3547

利用 Linux Lab 完成嵌入式系统软件开发全过程

Wu Zhangjin 创作于 2016/10/03 评论 打赏 联系作者 手机扫码阅读本文: 查看作者 145 篇文章 扫码访问作者网站:tinylab....

基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南一——选择MiniGUI-Threads 或者 MiniGUI-Lite

简介: 自 MiniGUI 从 1998 年底推出以来,越来越多的人开始选择 MiniGUI 在 Linux 上开发实时嵌入式系统。为了帮助嵌入式软件开发人员使用 MiniGUI编写出更好的应用程序,...
  • HiRuyue
  • HiRuyue
  • 2013年09月15日 10:50
  • 866
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux嵌入式系统中mdev的配置
举报原因:
原因补充:

(最多只允许输入30个字)