共计 2208 个字符,预计需要花费 6 分钟才能阅读完成。
导读 | openharmony L1 级开发板需将一个执行文件转换为开机服务运行至开发板中,即开机时执行运行程序。由于当前使用的为 L1 级开发板与 L2 级开发板存在一定的差异。本次已 L1 级进行测试讲解。 |
君正开发板:x2000,软件:oepenharmony 3.0
我们通过打印显示的方式验证开机启动项是否启动成功。其中代码样例如下:
lts@ubuntu:~/x2000/test$ ls
BUILD.gn etc ohos.build test.c
其中 test.c 用于编译成可执行文件,其内容如下:
lts@ubuntu:~/x2000/test$ cat test.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc,char* argv[])
{printf("\n======================================\n");
printf("* *");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("* This is a test *\n");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("======================================\n");
return 0;
}
lts@ubuntu:~/x2000/test$
gn 编译文件内容如下:
lts@ubuntu:~/x2000/test$ cat BUILD.gn
import("//build/lite/config/component/lite_component.gni")
executable("sysinfo")
{
sources = ["test.c",]
include_dirs = [ ]
cflags = [
"-Wall",
"-Wno-format",
"-Wwrite-strings",
]
cflags_cc = cflags
ldflags = [
"-lstdc++",
"-lpthread"
]
public_deps = []
deps = []}
group("sys_info") {
deps = [
":sysinfo",
"etc:sysinfo_cfg"
]
}
lts@ubuntu:~/x2000/test$
当然执行文件配置成开机启动项时,可能存在需要配置配置文件的情况,如某些配置文件等,因此在 etc 目录存放关于配置文件内容。
etc 目录中配置文件情况如下:
lts@ubuntu:~/x2000/test$ cd etc/
lts@ubuntu:~/x2000/test/etc$ ls
BUILD.gn sysinfo_config.cfg
lts@ubuntu:~/x2000/test/etc$
其中 sysinfo_config.cfg 文件为我们需要配置的配置文件。BUILD.gn 为操作配置文件对应的 gn 文件。
其中 gn 配置文件内容如下:
lts@ubuntu:~/x2000/test/etc$ cat BUILD.gn
import("//build/lite/config/component/lite_component.gni")
copy("sysinfo_cp") {sources = [ "sysinfo_config.cfg"]
outputs = ["$root_out_dir/etc/sysinfo/sysinfo_config.cfg"]
}
lite_component("sysinfo_cfg") {
features = [":sysinfo_cp"]
}
lts@ubuntu:~/x2000/test/etc$etc$
即将配置文件在编译完成之后存放在 /etc/sysinfo/ 目录下面。执行文件可以在 /etc/sysinfo/ 目录下面获取使用 sysinfo_config.cfg 文件。
进入代码根目录下:vendor/ingenic/halley5/init_configs,在这里我们需要配置对应的开启启动项目。
lts@ubuntu:~/x2000/vendor/ingenic/halley5/init_configs$
ls BUILD.gn init_linux_5_10_x2000.cfg
lts@ubuntu:~/x2000/vendor/ingenic/halley5/init_configs$
修改 init_linux_5_10_x2000.cfg,在 services 添加对应的执行文件名。如:进入到 lts@ubuntu:~/x2000/vendor/ingenic/halley5/rootfs-overlay/etc/init.d 目录,我们需要添加对应的脚本,用于开机启动。我们添加一个 sysinfo 脚本,注意需要修改权限
修改 rcS 文件,将脚本执行命令加入。
烧写镜像到开发板中,观察打印。
开启重启和烧写重启时出现打印,修改开机启动项成功。
验证开机启动配置项
说明开机配置项配置成功,此次验证 OK。
本次操作遇到一个大坑,在烧写镜像文件时出现报错;
环境为:ubuntu
按照报错休息修改无果之后,重新换一个烧写软件烧写,烧写成功。