快速业务通道

Udev实现U盘或SD卡的自动挂载

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-16

作者:曹忠明,华清远见嵌入式学院讲师.

Linux传统上使用静态设备创建的方法,在dev下创建了大量的节点,而不管这些节点相应的硬件设备是否存在.采用udev的方法,系统检测到设备才会去创建这些设备对应的节点.

这里我们简单的说一下udev的工作原理:

Udev是依赖于sysfs的,当系统中添加一个新的设备后,内核检测到后就会产生一个hotplug event并查找/proc/sys/kernel/hotplug去找出管理设备连接的用户空间程序,若udev已经启动,内核会通知udev去检测sysfs中关于这个新设备的信息并创建设备节点.如/dev/vcs,在/sys/class/tty/vcs/dev存放的是”7:0”,既/dev/vcs的主次设备号.

并且udev还会根据/etc/udev/rules.d中的规则文件实现一些相应的功能.

下面我们介绍一下如何实现设备节点的自动创建及U盘或SD卡的自动挂载.

一、.udev的移植

文件系统中默认是没有对udev进行支持的,我们移植一个udev.

1.下载UDEV源码udev-080.tar.bz2,并解压

网址:http://www.us.kernel.org/pub/linux/utils/kernel/hotplug

2.交叉编译.

修改Makefile,具体修改如下:
CROSS = arm-softfloat-linux-gnu-
保存退出.
执行命令:make 进行编译,然后执行arm-softfloat-linux-gnu-strip udev udevd udevstart udevinfo udevtest.并拷贝这些文件到rootfs/bin目录下面

3.添加udev的支持

下面三种方法功能相同
(1)并修改etc/init.d/rcS脚本,然后添加如下命令:
/bin/mount -t sysfs sysfs /sys
创建这个目录)
/bin/mount -t tmpfs tmpfs /dev
/bin/udevd --daemon
/bin/udevstart
(2)如果linuxrc是二进制文件的话
rm /linuxrc
vi /linuxrc
添加如下内容
/bin/mount -t sysfs sysfs /sys
创建这个目录)
/bin/mount -t tmpfs tmpfs /dev
/bin/udevd --daemon
/bin/udevstart
exec /sbin/init
(3)修改/etc/fstab为
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
修改/etc/init.d/rcS,添加如下内容
/bin/udevd --daemon
/bin/udevstart
有这上面写些,重新启动系统后,我们的文件系统就有了自动创建节点的功能了.

二、自动挂载U盘或SD卡

1.在/etc下创建udev目录

2.在/etc/udev下穿件目录rules.d和文件udev.conf

3.在udev.conf中添加如下内容

# udev.conf
# The initial syslog(3) priority: "err", "info", "debug" or its
# numerical equivalent. For runtime debugging, the daemons internal
# state can be changed with: "udevcontrol log_priority=<value>".
udev_log="err"

4.在rules.d下创建规则文件

如实现U盘自动挂载
Vim 11-add-usb.rules

添加如下内容
ACTION!="add",GOTO="farsight"
KERNEL=="sd[a-z][0-9]",RUN ="/sbin/mount-usb.sh %k"
LABEL="farsight"

这个文件中ACTION后是说明是什么事件,KERNEL后是说明是什么设备比如sda1,mmcblk0p1等,RUN这个设备插入后去执行哪个程序%k是传入这个程序的参数,这里%k=KERNEL的值也就是sda1等.

在/sbin/下创建mount-usb.sh文件添加如下内容
#!/b

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号