我實現的方法很簡單,主要是週期讀取檔案/proc/partitions檔案,當有u盤插入時,該檔案中就會有u盤的資訊:「sdb1、sdb2」等,
當系統檢測到這些資訊時,就執行命令mount,將u盤掛載到檔案系統中。
可以在應用程式中開乙個執行緒來週期讀取檔案/proc/partitions檔案,實習檔案的自動掛載。
這只是簡單的u盤自動掛載,還可以使用hotplug實現u盤的自動掛載。
下面是在網上看到的使用mdev的方法:
在arm嵌入式linux下,要讓u盤自動掛載,可以用到mdev方式實現(mdev是busybox中的乙個udev管理程式的乙個精簡版,它可以實現裝置節點的自動建立和裝置的自動掛載),下面是實現的步驟:
1、確認busybox做的根檔案系統如下選項有選中:
linux system utilities --->
[*] mdev
[*]
support /etc/mdev.conf
[*]
support command execution at device addition/removal
2、由於是利用到linux核心的hotplug功能,要確定config_hotplug=y。
3、修改根檔案系統裡面的etc/init.d/rcs檔案,新增如下內容:
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、新增對熱插拔事件的相應,支援u盤自動掛載:
修改根檔案系統中的etc/mdev.conf檔案,內容如下:
sd[a-z][0-9]
0:0 666
@/etc/mdev/udisk_insert
sd[a-z]
0:0 666
$/etc/mdev/udisk_remove
注:@表示是在插入(建立裝置結點)後執行後面的指令碼,$表示在拔出(刪除裝置結點)前執行後面的
指令碼。根檔案系統中的etc/mdev/udisk_insert檔案內容:
#!/bin/sh
if [ -d /sys/block/*/$mdev ] ; then
mkdir -p /media/$mdev
mount /dev/$mdev /media/$mdev -t vfat -o utf8=1
fi根檔案系統中的etc/mdev/udisk_remove檔案內容:
#!/bin/sh
umount -l /media/$mdev
rm -rf /media/$mdev
至此,就可以實現自動的插拔掛載
嵌入式Linux下實現U盤 SD卡自動掛載功能
在嵌入式linux中我們經常用到u盤 sd卡等儲存裝置,每次手動掛載或解除安裝非常麻煩,因此可以採用以下方法實現它們的自動掛載或解除安裝 1 首先在 etc init.d rcs中加入以下語句 echo sbin mdev proc sys kernel hotplug2 在 etc目錄下建立med...
LINUX嵌入式udev自動掛載U盤和SD卡
參考鏈結 1 開啟 etc rc.d init.d udev 服務 etc rc.d rc.conf 檔案cfg services 中增加udev。2 自動掛載u盤或sd卡 1 在 etc下建立udev目錄 2 在 etc udev下穿件目錄rules.d和檔案udev.conf 3 在udev.c...
嵌入式Linux用mdev實現U盤自動掛載
原帖 在arm嵌入式linux下,要讓u盤自動掛載,可以用到mdev方式實現 mdev是busybox中的乙個udev管理程式的乙個精簡版,它可以實現裝置節點的自動建立和裝置的自動掛載 下面是實現的步驟 1 確認busybox做的根檔案系統如下選項有選中 linuxsystem utilities ...