当用户需要EasyARM-iMX283在开机启动后就运行指定的应用程序或指令时,可以通过vi命令编辑/etc/rc.d/init.d/start_userapp,将要执行的指令添加到里面。若用户有一个hellow的程序放在/home/目录中,那么设置hellow程序开机启动的方法如程序清单 1.1红色部分所示。
程序清单1.1 用户启动文件
#!/bin/sh
#you can add your app start_command three
/home/hellow
#start qt command,you can delete it 下面是启动QT界面的指令,若用户不需要启动QT,可以直接删除
export TSLIB_PLUGINDIR=/usrb/ts/
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_TSDEVICE=/dev/input/ts0
export TSLIB_CALIBFILE=/etc/pointercal
export QT_QWS_FONTDIR=/usrb/fonts
export QWS_MOUSE_PROTO=Tslib:/dev/慎燃歼input/ts0
/usr/zhiyuan/zylauncher/start_zylauncher &
如果程序是一个阻塞程段带序(程序被运行后不会退出或返回),则可能会导致位于其后的指令或程序无法得到执行,并且始终占用串口终端,造成其他程序(比如Shell)无法通过串口终端与用户交互。对宽冲于此类应用程序,可以在其后面添加“ &”(注意:是“空格”+“&”符号)让其在后台运行,如下所示:
/home/hellow &
思路:
这样开机后就应该按照3-2-1的流陆氏返程执行起来,结果试了很多次都没有成功,调核丛了很久之后,发现是如下问题
================================================
后来写了一个监护脚本:
PROC_NAME=dtu
while true
do
#statements
val= ps -ef|grep -w dtu|grep -v grep|wc -l
if [ "$val"早饥 -le 0 ]then
echo "process is not run"
/usrdata/dtu
else
echo "process is running..."
fi
sleep 3
done
注意事项:
开机后自动运行用户的应用程序或启动系统服务的命令保存在开发板根文件系统的/usr/etc/rc.local文件中。有的开发板开机后自动运行图形界面程序,需要按住ctrl+c让开发板进入到linux的SHELL提示符界面。其实可通过注释掉rc.local文件中调用图形界面的命令基卖,增加运行用户应用程序的命令,达到开机自动运行用户应用程序的目高锋唤的。下面以我做的实验为例,描述具体的实现步骤。该方法源于网络,我加以验证,稍做修改,此文相当于转载。
1.进入pc机的linux
*** 作系统,在/nfs/usr/下通过mkdir
lz
命令新建一个名为lz的文件夹,进入lz文件夹,通过mkdir
hello新建一个hello文件夹用来存放我们将要编写的hello.c文件和编译生成的可执行文件。
2.在/nfs/usr/lz/hello下通过vi
hello.c命令新建hello.c文件,编辑如下测试程序:
#include
int
main(){
printf("Hello,test
arm-linux!")
return
0
}
完成编辑后通过:wq保存后退出。
3.主机通过如下命令交叉编译环境编译hello.c:
#arm-linux-gcc
o
hello
hello.c
4.通过ls
命令可以看到在/nfs/usr/戚凯lz/hello/下已经生成了hello可执行文件,我们可以在开发板上通过./hello来测试自己编写的hello.c执行情况
5.修改rc.local文件,在文件的最后通过‘#’释掉启动图形界面的指令,增加执行用户应用程序hello的指令,具体实现如下:
#export
PATH=$QPEDIR/bin:$PATH
#qtopia
#/usr/qtopia/bin/qtopia
/usr/lz/hello/./hello
注:前三行是注释掉启动图形界面,最后一行是添加的执行用户的hello测试程序。
6.重启开发板,通过vivi参数配置让开发板通过nfs挂载主机上的文件系统,这时我们就可以通过超级终端看到开发板已经运行了我们编写的hello程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)