UDEV实现U盘SD卡自动挂载/卸载并且拷贝数据
首先照着实验手册将“实验三十三 UDEV的移植”做完,实现U盘自动挂载的功能做的过程中如果U盘手动自动挂载不上,要检查内核是否支持U盘。我做的时候就出现了这种情况:U盘怎么都挂不上,查看内核配置发现内核没有支持U盘。内核支持U盘可参考“实验二十七 linux-2.6.22.6 内核移植—添加USB设备驱动 ”。
在此基础上:
1.修改rootfs/etc/init.d/rcS 脚本,添加如此地 下命令:
/bin/mount -t sysfs sysfs /sys
/bin/mount -t tmpfs tmpfs /dev
/bin/udevd –-daemon //创建udev的守护进程
/bin/udevstart //启动
2.在 /etc/udev/rules.d 目录下创建文件 10_usb.rules规则文件,他的语法是每个规则分成一个或多个“匹配”和“赋值”部分, 其内容如下:
KERNEL=="sda1", SUBSYSTEM=="block", RUN+="/sbin/usbmount.sh"
注释:KERNEL SUBSYSTEM 为匹配,RUN就是赋值,意为执行usbmount.sh这个脚本。
3.然后, 在 /sbin 目录中创建脚本文件 usbmount.sh, 其内容为
############################################################
#!/bin/sh
if [ “$ACTION” = “add” ]
then
mount -t vfat /dev/sda1 /tmp/udisk 注:把U盘挂到/tmp/udisk下
mv /tmp/*.jpg /tmp/udisk 注:将之前采集到/tmp目录下的所有jpg格式的文件拷贝到U盘里
elif [ “$ACTION” = "remove" ]
then
umount -l /tmp/udisk
fi
#############################################################
测试:1、先插上摄像头,加载摄像头驱动insmod gspca.ko,运行./mouse_capture采集图像
2、拔出usb摄像头,插上U盘,则系统自动识别摄像头并且自动拷贝图片到U盘
参考:华清远见第二期实验手册和第三期杨老师发的参考文档《Udev具体实现》