arm開(kāi)發(fā)板實(shí)現U盤(pán)自動(dòng)掛載和卸載
配置內核Makefile 【2.6.22.6版本內核】
本文引用地址:http://dyxdggzs.com/article/201611/316900.htmmake menuconfig
General setup ---->
Configure standard kernel features (for small systems) ---->
配置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
第三步:
查看啟動(dòng)自動(dòng)執行腳本文件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 //命令內核在增刪設備時(shí)執行/sbin/mdev,使設備節點(diǎn)會(huì )被創(chuàng )建和刪除
mdev -s //設置mdev,讓它在系統啟動(dòng)時(shí)創(chuàng )建所有的設備節點(diǎn)
#
第四步:
查看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的支持準備工作,下面是具體的實(shí)現過(guò)程:[都是在2440開(kāi)發(fā)板上執行]
1:首先創(chuàng )建一個(gè)用來(lái)顯示USB里面內容的文件夾,我把他創(chuàng )建在/mnt目錄下:mkdir /mnt/usb
2: 在/etc目錄下面創(chuàng )建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)
上面的內容是遵照所謂的正則表達式編寫(xiě)的,注意卸載部分,沒(méi)有*[0-9],不然卸載會(huì )出問(wèn)題。
通過(guò)以上五步可以實(shí)現U盤(pán)的自動(dòng)掛載和卸載,現象如下:
系統啟動(dòng)后,插上U盤(pán):

拔掉U盤(pán)后:

總結:
a:上面的mount -t vfat -o iocharset=cp936 ,其中vfat指定U盤(pán)的格式,-o iocharset=cp936可以把里面的中文文 件顯示出來(lái)。
b: 正則表達式規則:
評論