将交叉编译生成的可执行文件,放到最小Linux系统中,然后实现板子开机后,最小Linux系统运行起来后,自动执行可执行文件,并将可执行文件进程挂到后台运行。
1、生成目标可执行文件
例:
在Ubuntu系统中,创建文件“autorunning.c”,输入以下代码,保持退出。
使用命令编译:arm-none-linux-gnueabi-gcc -o autorunning autorunning.c -static
交叉编译器编译后生成可执行文件:autorunning
例:
2、目标可执行文件拷贝到最小Linux系统中
比如我将“autorunning”拷贝到板子Linux系统中的“/home/usr”目录。
(将文件从Ubuntu虚拟机拷贝到板子上有多种方式:TFTP下载、NFS挂载、U盘等)
例:
3、修改rcS脚步
修改"/etc/init.d/"目录下的启动脚本rcS文件。
在rcS文件最后添加脚本“/home/usr/autorunning &”,保持退出rcS文件,(“/home/usr/autorunning &”即目标可执行文件的存放路径,其中“&”表示将该进程挂到后台运行。)
例:
4、测试验证
重启板子。
最小Linux系统跑起来后,可以看“autorunning”可执行文件的打印,即实现了开机自动运行目标程序。
例:
查看后台进程情况,可以看到“autorunning”进程挂载到后台运行了。
例:
1、rcS文件
“/etc/init.d/rcS ”脚本,linux系统中以最高优先级第一个被执行的启动脚本。通过rcS脚本可以控制Linux系统中启动的服务,从而可以实现对Linux服务进行裁剪,控制启动流程。例如,本文中,我们通过在rcS中增加启动目标服务的脚本,从而实现开机后自动运行程序功能。