当SD卡或者usb插入/拔出的时候,会触发hotplug调用mdev创建/移除对应的设备节点,我们可以在这个时候通过配置/etc/mdev.conf来实现动态挂载,当前实现前必须确保linux支持hotplug和mdev功能(/proc/sys/kernel/hotplug: /sbin/mdev)。
1. /etc/mdev.conf添加usb/sd对应节点,以及需要在创建/移除时需要执行的脚本:
echo 'mmcblk2p1 0:0 666 @/config/insert.sh' >> ${OUTPUTDIR}/rootfs/etc/mdev.conf
echo 'mmcblk2 0:0 666 $$/config/remove.sh' >> ${OUTPUTDIR}/rootfs/etc/mdev.conf
echo 'sda1 0:0 666 @/config/udisk_insert.sh' >> ${OUTPUTDIR}/rootfs/etc/mdev.conf
echo 'sda 0:0 666 $$/config/udisk_remove.sh' >> ${OUTPUTDIR}/rootfs/etc/mdev.conf
--> mmcblk2p1 0:0 666 @/config/insert.sh
mmcblk2 0:0 666 $/config/remove.sh
sda1 0:0 666 @/config/udisk_insert.sh
sda 0:0 666 $/config/udisk_remove.sh
2. 添加挂载脚本:
#!/bin/sh
echo "sd insert" > /dev/console
if[-e "/dev/$MDEV"]; then
mkdir -p /mnt/sdcard/sd
mount -rw /dev/$MDEV /mnt/sdcard/sd
fi
#!/bin/sh
echo "sd remove" > /dev/console
umount -l /mnt/sdcard/sd*
rm -rf /mnt/sdcard/sd*