? 一、方法一
由于我調(diào)試的系統(tǒng)是基于LSDK的,所以沒(méi)法直接使用openwrt中的hotplug完成此功能。所以使用了以下的方法。
我實(shí)現(xiàn)的方法很簡(jiǎn)單,主要是周期讀取文件/proc/partitions文件,當(dāng)有u盤(pán)插入時(shí),該文件中就會(huì)有u盤(pán)的信息:“sdb1、sdb2”等, 當(dāng)系統(tǒng)檢測(cè)到這些信息時(shí),就執(zhí)行命令mount,將u盤(pán)掛載到文件系統(tǒng)中。 可以在應(yīng)用程序中開(kāi)一個(gè)線程來(lái)周期讀取文件/proc/partition
我實(shí)現(xiàn)的方法很簡(jiǎn)單,主要是周期讀取文件/proc/partitions文件,當(dāng)有u盤(pán)插入時(shí),該文件中就會(huì)有u盤(pán)的信息:“sdb1、sdb2”等,
當(dāng)系統(tǒng)檢測(cè)到這些信息時(shí),就執(zhí)行命令mount,將u盤(pán)掛載到文件系統(tǒng)中。
可以在應(yīng)用程序中開(kāi)一個(gè)線程來(lái)周期讀取文件/proc/partitions文件,實(shí)習(xí)文件的自動(dòng)掛載。
這只是簡(jiǎn)單的u盤(pán)自動(dòng)掛載,還可以使用hotplug實(shí)現(xiàn)U盤(pán)的自動(dòng)掛載。
二、方法二
下面是在網(wǎng)上看到的使用mdev的方法:
在ARM嵌入式Linux下,要讓U盤(pán)自動(dòng)掛載,可以用到mdev方式實(shí)現(xiàn)(mdev是busybox中的一個(gè)udev管理程序的一個(gè)精簡(jiǎn)版,它可以實(shí)現(xiàn)設(shè)備節(jié)點(diǎn)的自動(dòng)創(chuàng)建和設(shè)備的自動(dòng)掛載),下面是實(shí)現(xiàn)的步驟:
1、確認(rèn)Busybox做的根文件系統(tǒng)如下選項(xiàng)有選中:
Linux System Utilities??—> ??
[*] mdev??????
?????????????[*]???Support /etc/mdev.conf
?????????????[*]?????Support command execution at device addition/removal
2、由于是利用到Linux內(nèi)核的hotplug功能,要確定CONFIG_HOTPLUG=y。
3、修改根文件系統(tǒng)里面的etc/init.d/rcS文件,添加如下內(nèi)容:
mount -t tmpfs mdev /dev
mount -t sysfs sysfs /sys
mkdir /dev/pts
mount -t devpts devpts /dev/pts
# mdev for /dev
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
echo “***************Starting mdev………[OK]”
4、添加對(duì)熱插拔事件的相應(yīng),支持U盤(pán)自動(dòng)掛載:
修改根文件系統(tǒng)中的etc/mdev.conf文件,內(nèi)容如下:
sd[a-z][0-9] ?????0:0 666 ???????@/etc/mdev/udisk_insert ???????????????????????
sd[a-z] ??????????0:0 666 ???????$/etc/mdev/udisk_remove
注:@表示是在插入(創(chuàng)建設(shè)備結(jié)點(diǎn))后執(zhí)行后面的腳本,$表示在拔出(刪除設(shè)備結(jié)點(diǎn))前執(zhí)行后面的 ????????????腳本。
5、添加對(duì)應(yīng)的腳本文件:
根文件系統(tǒng)中的etc/mdev/udisk_insert文件內(nèi)容:
#!/bin/sh
if [ -d /sys/block/*/$MDEV ] ; then
mkdir -p /media/$MDEV
mount /dev/MDEV/media/MDEV -t vfat -o utf8=1
fi
根文件系統(tǒng)中的etc/mdev/udisk_remove文件內(nèi)容:
#!/bin/sh
umount -l /media/$MDEV
rm -rf /media/$MDEV
至此,就可以實(shí)現(xiàn)自動(dòng)的插拔掛載
?
電子發(fā)燒友App







評(píng)論