嵌入式linux下u盤自動掛載的實現

2021-06-05 20:22:26 字數 1520 閱讀 4299

我實現的方法很簡單,主要是週期讀取檔案/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 ...