当前位置: 技术问答>linux和unix
怎么将开发板的应用程序设置为开机自动启动
来源: 互联网 发布时间:2017-03-15
本文导语: 我用的开发板是devkit8000。比如led灯的循环点亮。应用程序是led_gcc,保存在目录/media/mmcblk0p1/led_gcc。我参考网上的做法将media/mmcblk0p1/led_gcc添加到/etc/init.d/rcS中但是重新启动后没有看到任何信息。灯也不循环点亮。我还...
我用的开发板是devkit8000。比如led灯的循环点亮。应用程序是led_gcc,保存在目录/media/mmcblk0p1/led_gcc。我参考网上的做法将media/mmcblk0p1/led_gcc添加到/etc/init.d/rcS中但是重新启动后没有看到任何信息。灯也不循环点亮。我还需要做什么工作。以及我还可以用什么方法进行处理。希望给点意见。谢谢了。
|
放到rcS按道理是可以的
是不是应用程序权限的问题
是不是应用程序权限的问题
|
你看看打印出来的是什么信息啊
2L的有可能
chmod +x /media/mmcblk0p1/led_gcc
/media/mmcblk0p1/led_gcc
44看
2L的有可能
chmod +x /media/mmcblk0p1/led_gcc
/media/mmcblk0p1/led_gcc
44看
|
放在 /etc/init.d/rcS 这里,按道理是可以。
楼主可以这么测试:
1. 看看是不是权限问题,
开启开发板后,手动执行 media/mmcblk0p1/led_gcc,看会不会提示什么错误,是否正确执行了。如果正确执行了,那说明该程序没问题
2. 测试下 /etc/init.d/rcS 是否在开机时被执行:
在 /etc/init.d/rcS 里,执行 media/mmcblk0p1/led_gcc 的前后各输入如下两行:
echo "Before led_gcc"
echo "After led_gcc"
启动后看看 上面两个语句是否被打印出来,如有,则说明 rcS在开机时会被执行。
楼主可以这么测试:
1. 看看是不是权限问题,
开启开发板后,手动执行 media/mmcblk0p1/led_gcc,看会不会提示什么错误,是否正确执行了。如果正确执行了,那说明该程序没问题
2. 测试下 /etc/init.d/rcS 是否在开机时被执行:
在 /etc/init.d/rcS 里,执行 media/mmcblk0p1/led_gcc 的前后各输入如下两行:
echo "Before led_gcc"
echo "After led_gcc"
启动后看看 上面两个语句是否被打印出来,如有,则说明 rcS在开机时会被执行。
|
写个开机自动启动脚本就ok了
|
Linux在启动时,会自动执行/etc/rc.d目录下的初始化程序,因此我们可以把启动任务放到该目录下,有两种办法:
方案一:
1.因为其中的rc.local是在完成所有初始化之后执行,因此我们可以把启动脚本写到里面
2.用root账号登陆Linux,vi /etc/rc.d/rc.local编辑文件,在最后加入两行需要执行的脚本程序:
cd /home/test1 --该步不可少,否则会提示没有权限打开'test.log'文件
su test1 -c "python /home/test1/test.py" --把要执行的命令作为一个参数传递级su
方案二:
1.init.d目录下都为可执行程序,他们其实是服务脚本,按照一定格式编写,Linux 在启动时会自动执行,类似Windows下的服务
2.用root帐号登录,vi /etc/rc.d/init.d/mystart,追加如下内容:
#!/bin/bash
#chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机,
6指的是重启,其他为正常启动。80为启动的优先级,05为关闭的优先机
#description:mystart service
RETVAL=0
start(){ --启动服务的入口函数
echo -n "mystart serive ..."
cd /home/test1
su test1 -c "python /home/test1/test.py"
}
stop(){ --关闭服务的入口函数
echo "mystart service is stoped..."
}
case $1 in --使用case,可以进行交互式操作
start)
start
;;
stop)
stop
;;
esac
exit $RETVAL
3.运行chmod +r /etc/rc.d/init.d/mystart,使之可直接执行
4.运行chkconfig --add mystart,把该服务添加到配置当中
5.运行chkconfig --list mystart,可以查看该服务进程的状态
方案一:
1.因为其中的rc.local是在完成所有初始化之后执行,因此我们可以把启动脚本写到里面
2.用root账号登陆Linux,vi /etc/rc.d/rc.local编辑文件,在最后加入两行需要执行的脚本程序:
cd /home/test1 --该步不可少,否则会提示没有权限打开'test.log'文件
su test1 -c "python /home/test1/test.py" --把要执行的命令作为一个参数传递级su
方案二:
1.init.d目录下都为可执行程序,他们其实是服务脚本,按照一定格式编写,Linux 在启动时会自动执行,类似Windows下的服务
2.用root帐号登录,vi /etc/rc.d/init.d/mystart,追加如下内容:
#!/bin/bash
#chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机,
6指的是重启,其他为正常启动。80为启动的优先级,05为关闭的优先机
#description:mystart service
RETVAL=0
start(){ --启动服务的入口函数
echo -n "mystart serive ..."
cd /home/test1
su test1 -c "python /home/test1/test.py"
}
stop(){ --关闭服务的入口函数
echo "mystart service is stoped..."
}
case $1 in --使用case,可以进行交互式操作
start)
start
;;
stop)
stop
;;
esac
exit $RETVAL
3.运行chmod +r /etc/rc.d/init.d/mystart,使之可直接执行
4.运行chkconfig --add mystart,把该服务添加到配置当中
5.运行chkconfig --list mystart,可以查看该服务进程的状态
|
学习嵌入式linux的高手们,来加入我们共嵌入式学习交流群“一切都好”群号:36711379。。。。。来这里一起交流
|
过来学习
|
/etc/init.d/rcS: line 36: /media/mmcblk0p1/spidev: not found
很明显 文件路径不对
error in open /sys/class/leds/led1/brightness led_acc运行到了 但是程序运行出错 你直接运行led_acc程序正常不?
很明显 文件路径不对
error in open /sys/class/leds/led1/brightness led_acc运行到了 但是程序运行出错 你直接运行led_acc程序正常不?
|
/etc/init.d/leds start #启动LED