嵌入式Linux自动挂载U盘

上传人:人*** 文档编号:473469059 上传时间:2022-10-10 格式:DOCX 页数:4 大小:13.94KB
返回 下载 相关 举报
嵌入式Linux自动挂载U盘_第1页
第1页 / 共4页
嵌入式Linux自动挂载U盘_第2页
第2页 / 共4页
嵌入式Linux自动挂载U盘_第3页
第3页 / 共4页
嵌入式Linux自动挂载U盘_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《嵌入式Linux自动挂载U盘》由会员分享,可在线阅读,更多相关《嵌入式Linux自动挂载U盘(4页珍藏版)》请在金锄头文库上搜索。

1、在ARM嵌入式Linux下,要让U盘自动挂载,可以用到mdev方式实现(mdev是busybox 中的一个udev管理程序的一个精简版,它可以实现设备节点的自动创建和设备的自动挂 载),下面是实现的步骤:1、确认Busybox做的根文件系统如下选项有选中:Linux System Utilities -* mdev* Support /etc/mdev.conf* Support command execution at device addition/removal2、由于是利用到Linux内核的hotplug功能,要确定CONFIG_HOTPLUG=y。3、修改根文件系统里面的etc/in

2、it.d/rcS文件,添加如下内容:mount -t tmpfs mdev /devmount -t sysfs sysfs /sysmkdir /dev/ptsmount -t devpts devpts /dev/pts# mdev for /devecho /sbin/mdev /proc/sys/kernel/hotplugmdev -secho *Starting mdevOK4、添加对热插拔事件的相应,支持U盘自动挂载:修改根文件系统中的etc/mdev.conf文件,内容如下:sda-z0-90:0 666/etc/mdev/udisk_insertsda-z0:0 666$/e

3、tc/mdev/udisk_remove注:表示是在插入(创建设备结点)后执行后面的脚本,$表示在拔出(删除设备 结点)前执行后面的脚本。5、添加对应的脚本文件:根文件系统中的etc/mdev/udisk_insert文件内容:#!/bin/shif -d /sys/block/*/$MDEV ; thenmkdir -p /media/$MDEVmount /dev/$MDEV /media/$MDEV -t vfat -o utf8=1fi根文件系统中的etc/mdev/udisk_remove文件内容:#!/bin/shumount -l /media/$MDEVrm -rf /medi

4、a/$MDEV至此,就可以实现自动的插拔挂载。1)确保内核支持热插拔# cd linux-2.6.30.4# vi .config CONFIG_KALLSYMS=y# CONFIG_KALLSYMS_ALL is not set# CONFIG_KALLSYMS_EXTRA_PASS is not set# CONFIG_STRIP_ASM_SYMS is not setCONFIG_HOTPLUG=y 确保这项为 yCONFIG_PRINTK=yCONFIG_NET=y确保这项也为y确保以上两项都选上,不然/proc/sys/kernel/目录不会出现hotplug文件!2)确保 busy

5、box 支持 mdevmdev是busybox中udev设备文件系统的精简版# make menuconfig确保以下几项被选中:Linux System Utilities -mdevSupport /etc/mdev.confSupport subdirs/symlinksSupport regular expressions substitutions when renaming devSupport command execution at device addition/removalSupport loading of firmwares3)根文件系统etc/fatab文件的内容为

6、:proc /procprocdefaults00sysfs/syssysfsdefaults00tmpfs/vartmpfsdefaults00tmpfs/tmptmpfsdefaults00tmpfs/devtmpfsdefaults00etc/init.d/rcS 添加如下的内容:mount -amkdir /dev/ptsmount -t devpts devpts /dev/ptsecho /sbin/mdev /proc/sys/kernel/hotplugmdev -s4)解析执彳亍mdev -s:以-s为参数调用位于/sbin目录下的mdev (其实mdev是个软链接,其作用是

7、传递参数 给/bin目录下的busybox程序并调用它),mdev扫描/sys/class和/sys/block目录中所有的类设备目录,如果在类设备目录中含有名 为dev的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev 目录下创建设备节点文件。一般只在启动时才执行一次mdev -s。热插拔事件:由于启动时执行了命令:echo /sbin/mdev /proc/sys/kernel/hotplug , 那么当有热插拔事件产生时,内核就会调用位于/sbin目录下的mdev。这时mdev通过环境变量中的ACTION和DEVPATH,来确定此次热插拔事件的动作以及 影响了

8、/sys中的那一个类设备目录。接着会看看这个类设备目录中是否有名为dev的文件,如果有就利用这些信息为这个设 备在/dev目录下创建或删除设备节点文件并执行相应的动作ACTION。实现U盘和SD卡的自动挂载与卸载5)添加对热插拔事件的响应# vi /etc/mdev.conf /etc/hotplug/usb/udisk_insert$ /etc/hotplug/usb/udisk_remove /etc/hotplug/sd/sd_insert$ /etc/hotplug/sd/sd_remove内容为: sda-z0-90:0 666sda-z0:0 666mmcblk0-9p0-9 0:

9、0 666 mmcblk0-9 0:0 666# vi /etc/hotplug/usb/udisk_insert 内容为: #!/bin/sh mkdir -p /media/udisk mount /dev/sda /media/udisk# vi /etc/hotplug/usb/udisk_remove 内容为: #!/bin/sh umount /media/udisk 为以上两个脚本加上可执行权限:# chmod +x /etc/hotplug/usb/udisk_insert# chmod +x /etc/hotplug/usb/udisk_remove以下是转贴,仅供参考我的项

10、目中,主要是参考了友善之臂官网根文件系统中的 /etc/mdev.conf 和/bin/hotplug.sh。对于有些U盘和SD卡,mini2440开发板自带的Linux系统不能有效的自动挂载在文件 系统里面,这是因为mini2440的/etc/mdev.conf和/bin/hotplug.sh这两个文件写的不太完善, 我经过测试,发现其中的内容需要改进,在/etc/mdev.conf文件中,只需将以下内容写至末 尾即可:mmcblk0-9 0:00666 =sdcard * /bin/hotplug.shsda-z0-90:00666 =udisk * /bin/hotplug.sh在/bin/hotplug.sh文件中则需要把以下内容加在“case $MDEV in”勺后面:sda-z1-9)DEVNAME=udiskMOUNTPOINT=/udisk;mmcblk0-9p0-9)DEVNAME=sdcardMOUNTPOINT=/sdcard;mmcblk0-9)DEVNAME=sdcardMOUNTPOINT=/sdcard;这样再重启系统就可以自动挂载任何U盘或SD卡了!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号