版主: wanchong , wangyu , eepwwp , firedom |
lilianhu
最后登陆时间:2015-10-30 14:46:45 |
最近才搞明白如何在让edison开机启动的时候自动运行自己写好的程序。(感谢浪迹天涯大神!全程指导)
首先简单介绍下linux 系统启动的过程 1: 加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可以启动的设备 2:读取并执行第一个启动设备内的MBR的boot Loader(grub等) 3:在硬件驱动成功后,Kernel 会主动调用init 进程,而init 会取得 run-level 信息。。 好写到这里 废话不多说了, 进入正题。 kernel第一个调用的进程就是 init , 所以写一个shell启动脚本,把编译好的二进制文件放到脚本中执行 把你的启动脚本放在/etc/init.d 下面 (我的脚本名字命名为my_start.sh) (这里注意一下,先前的edison 的yocto版本1.6 里面 在/etc 里没有init.d 文件夹,自己创建一个 mkdir init.d ,而最新的yocto 版本 1.6.1里面是含有 init.d 文件的) my_start.sh中的内容: #!/bin/sh /mnt/colorball (colorball 为已经编译好的二进制文件) 进入init.d 文件夹 把文件 my_start.sh 放在/etc/init.d 目录中(记住要赋予可执行的权限) cd /etc/init.d chmod +x /etc/init.d/my_start.sh 在 /etc/init.d 文件夹下执行 update-rc.d my_start.sh defaults 97 (启动顺序97) 如上图这样显示,说明添加成功了。 my_start.h 放在init.d 中 colorball放在mnt下面 (colorball 也要赋予可执行的权限 chmod +x /mnt/colorball) (此外有一点需要注意下,最好别用打印hello的程序测试,开机有很多程序,有很多打印信息,不方便验证,最好放个led灯控制程序之类的。) 重启之后 在edison下面查看运行的进程 输入 top 命令 发现 208 就是 我的程序 colorball 成功 ! 如果要停止程序,使用kill 208 命令结束程序 -------------------------------------------------------------------------------- 删除开机自动启动执行下面的命令: update-rc.d -f my_start.sh remove |
|
|
lredray
最后登陆时间:2015-01-14 10:40:16 |
讲的好 必须的顶起
|
asd44441717
最后登陆时间:2015-01-14 10:40:17 |
这个贴子必须顶
|
cyliew
最后登陆时间:2015-01-14 10:40:18 |
大神啊!
|
565928721
最后登陆时间:2015-01-14 10:40:19 |
真的很厉害,佩服不已
|
zry122489
最后登陆时间:2015-01-14 10:40:23 |
好赞啊!
|
shiziwwg
最后登陆时间:2015-01-14 10:40:24 |
楼主继续
|
609080
最后登陆时间:2015-12-24 14:39:34 |
马一个,等楼主更
|
qqqqqqaaaaaa
最后登陆时间:2015-01-14 10:40:27 |
好棒!
|
zhangxiaoming
最后登陆时间:2015-01-14 10:40:28 |
真的是很好的帖子~顶
|