现已知2.6版本的内核使用的是udev的方式,检测U盘等设备。3.9的内核是否还支持udev的方式,需要什么版本的udev?
第一次搞shell,好难过………………
平台:Linux 3.9.0
一、
echo /sbin/mdev > /proc/sys/kernel/hotplug
二、修改、etc\mdev.conf
增添内容
sd[a-z][0-9] 0:0 666 @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
sd[a-z] 0:0 666 $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)
三、在/etc路径下创建目录 hotplug,/etc/hotplug路径下,存放两个脚本insert.sh,remove.sh
四、insert.sh内容
#!/bin/bash
echo "Insert*****************" > /dev/console
if [ -n "$1" ] ; then
if [ -b /dev/$1 ]; then
mkdir -p /media/$1
mount /dev/$1 /media/$1
chmod -R 777 /media/$1
/media/$1/hello > /dev/console #helloworld
if [ $? -ne 0 ]; then
echo "err" > /home/err
umount -l /media/$1
fi
fi
fi
五、remove.sh内容
echo "Remove" > /dev/console
MOUNTS=$(mount | grep $1 | cut -d' ' -f3)
umount $MOUNTS
rm -rf $MOUNTS
总结:
1、脚本中想向控制台输出信息 > /dev/console。前期可能已经得到想要的结果了,但没有在控制台上看到输出结果,所以以为没有成功,很纠结
2、在脚本中 cd改变路径,并不会影响当前控制台的路径,脚本执行是单开一个控制台来执行脚本的
用途:ARM中写好脚本,可以执行U盘中的程序,获取ARM信息、升级程序、应急恢复产品等
结贴了,有其他想法的朋友,请留言。
感谢原作者:http://blog.csdn.net/hktkfly6/article/details/23390987
在虚拟机里面装吧
ARM