udev介绍:

udev是Linux 2.6内核的设备管理器,它在/dev目录下动态地创建/移除设备节点。它是devfs和hotplug的继承者,运行在用户空间,并且用户可以用udev规则来改变设备的命名。udev依赖2.6内核引入的sysfs文件系统。每当一个设备被加入或移除,就会产生内核事件通知用户空间的udev。

 

mdev介绍:

  mdev是busybox自带的一个简化版的udev,作用是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的。mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为"dev"的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点。

用法:

1.在使用busybox制作根文件系统的时候,选择支持mdev

Linux System Utilities --->
   [*] mdev
   [*] Support /etc/mdev.conf
   [*] Support command execution at device addition/removal

2. 执行mdev前要挂载 /sys
mount -t tmpfs mdev /dev
mount -t sysfs sysfs /sys

3.命令内核在增删设备时执行/sbin/mdev,使设备节点会被创建和删除
echo /sbin/mdev > /proc/sys/kernel/hotplug

4.设置mdev,让它在系统启动时创建所有的设备节点

mdev -s

5.编写mdev配置文件:/etc/mdev.conf
该文件的作用是:mdev在找到匹配设备时自动执行自定义命令
格式为:

      <device regex> <uid>:<gid> <permissions> [=path] [@|$|*<command>]

    or

      <device regex> <uid>:<gid> <permissions> [>path] [@|$|*<command>]

    or

      <device regex> <uid>:<gid> <permissions> [!] [@|$|*<command>]

 

device regex:正则表达式,表示哪一个设备

uid: owner

gid: 组ID

permissions:表示权限属性

@:创建设备节点之后执行命令

$:删除设备节点之前执行命令

*: 创建设备节点之后 和 删除设备节点之前 执行命令

command:要执行的命令或者脚本文件
 

x35添加对热插拔事件的响应

实现U盘的自动挂载

X35(AT91SAM9X35)已经实现了上述功能,只需修改mdev.conf文件就行

vim /etc/mdev.conf 后追加如下两行

sd[a-z][0-9] root:root 640 @ mkdir -p /mnt/$MDEV;mount -t vfat /dev/$MDEV /mnt/$MDEV

sd[a-z] root:root 640 $ sync;umount -l /mnt/$MDEV*;rm -rf /mnt/$MDEV*

 

当检测到类似sda1这样的设备时,脚本的内容就是挂载U盘到/mnt/sda1和拔掉时候卸载/mnt/sda1目录。

Logo

更多推荐