1.mdev支持
①用busybox制作根文件系统的时候,要选择支持mdev机制
Linux System Utilities --->
[*] mdev
[*] Support /etc/mdev.conf
[*] Support command execution at device addition/removal
②在文件系统/etc/init.d/rsC文件中添加如下内容
Vi /etc/init.d/rcS
mount -t tmpfs mdev /dev
mount -t sysfs sysfs /sys
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev>/proc/sys/kernel/hotplug//启动热插拔事件;
mdev –s
这些语句的添加在busybox的/doc/mdev.txt中可以找到。
③添加对热插拔事件的响应,实现U盘和SD卡的自动挂载。
Vi /etc/mdev.conf
mmcblk0p1(设备名) 0:0(id号) 0600(以八进制表示的设备属性) =sdcard */bin/hotplug.sh
sda1 0:0 0600 =udisk */bin/hotplug.sh
红色部分,是一个脚本,脚本内容可以根据我们的需要定制,可以实现挂载,卸载或其他一些功能。
注:@表示是在插入(创建设备结点)后执行后面的脚本,$表示在拔出(删除设备结点)前执行后面的脚本。
4.在bin/下写一个hotplug.sh脚本程序:
#!/bin/sh
case $MDEV in
udisk | sda1)
DEVNAME=udisk
MOUNTPOINT=/udisk
;;
sdcard | mmcblk0p1)
DEVNAME=sdcard
MOUNTPOINT=/sdcard
;;
*)
exit 0
;;
esac
test ! -c /dev/null && mknod -m 0666 /dev/null c 1 3
case $ACTION in
remove)
/bin/umount $MOUNTPOINT || true
rmdir $MOUNTPOINT >/dev/null 2>&1 || true
;;
*)
/bin/mkdir $MOUNTPOINT > /dev/null 2>&1 || true
/bin/mount -o sync -o noatime -o nodiratime -t vfat /dev/$DEVNAME $MOUNTPOINT > /dev/null 2>&1 || true
;;
esac
exit 0
插入U盘、SD等设备,即可在根目录下建立相应的文件夹,挂载对用的磁盘文件
以上两个脚本需要可执行权限:chmod +x /bin/hotplug.sh