linux arm上实现插入U盘自动运行的设计
来源:互联网 发布:服装大师绘图仪软件 编辑:程序博客网 时间:2024/06/05 16:11
前言
之前写过在ubuntu上实现插入U盘自动运行的程序,即autorun,但是在arm 上并不能实现。即仅仅是修改U盘上的文件或者权限,无法提供插入u盘时自动运行这个效果。在嵌入式编程的一个思路是,修改硬件层的程序,运行U盘检测程序,然后U盘检测程序检测出相应程序调用U盘里的程序,在这里是十分不正常的方式,实现了插入U盘自动更新的设计。
修改mount.sh
在mount.sh上添加执行检测U盘的程序。mount.sh在U盘插入时执行的脚本,在”add”分之中,添加如下语句:
if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ]; thenif [ -x "$PMOUNT" ]; then$PMOUNT $DEVNAME 2> /dev/nullelif [ -x $MOUNT ]; then$MOUNT $DEVNAME 2> /dev/nullfi# If the device isn't mounted at this point, it isn't configured in fstab# 20061107: Small correction: The rootfs partition may be called just "rootfs" and not by# its true device name so this would break. If the rootfs is mounted on two places# during boot, it confuses the heck out of fsck. So Im auto-adding the root-partition# to /etc/udev/mount.blacklist via postinstcat /proc/mounts | awk '{print $1}' | grep -q "^$DEVNAME$" || automountsh /home/test/checkUdisk #这里是我加上的语句,检测U盘的程序checkUdisk放在了/home/test/#下,如果更改checkUdisk目录,这个地方也要做相应更改fi
添加的语句sh /home/test/checkUdisk
,是执行检测U盘的脚本,在插入U盘后,系统会自动执行到add分支,转而会运行该语句。
编写自动检测U盘的程序
首先确定自己U盘的安装路径,在arm上的U盘默认安装是在/media/sda1/,如果使用多个U盘,或者当前文件夹使用时,会使用sdb1,依次类推,故检测程序应能忽略插入U盘时,不同文件夹的影响,首先就是检测U盘所在的文件夹,本程序中是检测U盘中的执行程序来确定U盘所在目录,相应程序如下:
#/bin/shfor var in "a" "b" "c" "d" "e" "f" "g" "h"do for j in 1 2 3 4 do PATH="/media/sd$var$j/copy.sh” #copy.sh是自动更新脚本,检测其存在,则跳出循环 #echo $PATH if [ -s $PATH ];then echo "opendevice ${PATH}" break; fi doneif [ -s $PATH ];then break; fidoneif [ -s $PATH ];then /bin/sh $PATH #执行copy.sh脚本, /bin/sh使用绝对路径可以确保程序执行fi
写好后,相应的程序应提取权限:chmod 755 checkUdisk
,checkUdisk是相应的文件名。
放在U盘里的程序
本文中将放在U盘里的程序为shell 脚本,其他程序的要相应地在相应的系统下编译运行尝试过才能放到U盘下。
#/bin/sh/bin/cp /media/sda1/test1 /home/test/test1 #这里最好使用绝对路径,否则会出错
同时退该文件设置权限:chmod 755 test
测试一下应该就成功了
0 0
- linux arm上实现插入U盘自动运行的设计
- arm linux u盘自动挂载
- 存储卡插入PDA实现存储卡上的程序自动运行
- ARM-Linux支持并自动挂载U盘
- 嵌入式linux下u盘自动挂载的实现
- 嵌入式linux下u盘自动挂载的实现
- 嵌入式linux下u盘自动挂载的实现
- 使用ARM-LPC3131上的nandflash实现U盘模式心得(一)
- U盘上的LINUX
- arm linux 开机自动运行程序的问题
- U盘在linux上的工作过程,插拔,插入,响应
- 编译在linux arm核上运行的内核模块
- U盘自动运行程序
- linux系统 插入u盘没有自动将u盘挂载到/media下
- Linux上的U盘自动挂载的底层详细过程
- 实现ARM-linux自动登录
- 实现ARM-linux自动登录
- linux电脑插入U盘自动挂载而不自动打开
- 在Eclipse中使用JUnit4进行单元测试
- A Deep Learning Tutorial: From Perceptrons to Deep Networks
- 使用C# .net开发微信公众号之获取设置的行业信息
- C# Socket简单例子(服务器与客户端通信)
- 杭电2571 命运
- linux arm上实现插入U盘自动运行的设计
- eclipse + tomcat debug启动过慢
- 深度学习概述:从感知机到深度网络
- 解决AFN不能使用GCD调度组的问题
- 利用bash shell批量修改文件名
- Android学习笔记整理(纪念)
- 【EA使用教程】 EA 源码生成UML类图 错误: 遇到未知的符号
- 如何在Linux系统下设置Tomcat自启动
- DropDownList的使用方法