×
嵌入式 > 嵌入式开发 > 详情

arm开发板实现U盘自动挂载和卸载

发布时间:2020-08-14 发布时间:
|
原理先不讲,先给各位看官看一下实现的过程:
第一步:

配置内核Makefile 【2.6.22.6版本内核】

make menuconfig

General setup ---->
Configure standard kernel features (for small systems) ---->

| | --- Load all symbols for debugging/ksymoops
| | [ ] Include all symbols in kallsyms
| | [ ] Do an extra kallsyms pass
第二步:

配置busybox Makefile 【1.7.0版本】支持mdev机制和.conf 配置文件

make menuconfig

Linux System Utilities ---->
[*] mdev
[*] Support /etc/mdev.conf
[*] Support subdirs/symlinks
[*] Support regular expressions substitutions when renaming device
[*]Support command execution at device addition/removal
[*] Support loading of firmwares

第三步:

查看启动自动执行脚本文件rcS:

# cat /etc/init.d/rcS

#!/bin/sh

ifconfig eth0 192.168.1.17

mount -a

mkdir /dev/pts

mount -t devpts devpts /dev/pts

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

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

#

第四步:

查看mount -a 命令能够挂载的文件系统 /etc/fstab:

# cat /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 //执行mdev前要挂载 /sys

tmpfs /dev tmpfs defaults 0 0

mdev /dev tmpfs defaults 0 0

#

第五步:之前都是内核和文件系统的对mdev的支持准备工作,下面是具体的实现过程:[都是在2440开发板上执行]

1:首先创建一个用来显示USB里面内容的文件夹,我把他创建在/mnt目录下:mkdir /mnt/usb

2: 在/etc目录下面创建mdev.conf文件,并且编辑,内容如下:

sd[a-z]*[0-9] 0:0 0660 @(mount -t vfat -o iocharset=cp936 /dev/sd[a-z][0-9] /mnt/usb)

sd[a-z] 0:0 0660 $(umount /mnt/usb)

上面的内容是遵照所谓的正则表达式编写的,注意卸载部分,没有*[0-9],不然卸载会出问题。

通过以上五步可以实现U盘自动挂载和卸载,现象如下:

系统启动后,插上U盘:

拔掉U盘后:

总结:

a:上面的mount -t vfat -o iocharset=cp936 ,其中vfat指定U盘的格式,-o iocharset=cp936可以把里面的中文文 件显示出来。

b: 正则表达式规则:

: issions>
device regex:正则表达式,表示哪一个设备。
uid:owner
gid:组ID
octal permissions:以八进制表示的属性
比如:hd[a-z][0-9]* 0:3 660
当发现第一个匹配项时,就会根据这个匹配项进行配置。如果没有匹配项的话就会采用默认配置,默认的默认配置是:
0:0 660,当然我们我也可以自己定义,比如:.* 1:1 777
那么如果我们想要执行我们自己的命令应该怎么办呢?那就需要用下面的格式了:
: [ ]
@ 创建了设备之后运行
$ 删除设备之前运行
* 在创建设备之后和删除设备之前运行



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430单片机硬件知识-复位