如何将脚本(bash 脚本)添加到我在 yocto 中开发的 linux 图像?

How to add a script (bash script) to my linux image developed in yocto?

我在 linux 中开发了一个脚本,用于在用 yocto 开发的 linux 映像中安装软件包。目前,我通过 scp 将 .sh 脚本与 linux 图像一起发送到我的设备,但我想直接在我的 linux 图像中安装此脚本,并且当我启动设备时有 .sh 文件。我怎样才能在 yocto 中做到这一点?我需要为此脚本创建食谱吗?

提前致谢。

@amolina 我猜你需要将你的 shell 脚本添加到 /etc/init.d 以便在 OS 启动时 运行 它。

可以继承update-rc.dclass定义INITSCRIPT_NAME/PARAMS 你的食谱。

更多详细信息可以在此找到 link yocto manual

参考:add custom script to yocto

如果需要,您应该创建一个配方和一个 systemd 服务以启用它的启动时间。 架构应该是这样的:

my_script/
├── files
│   ├── my_script.service
│   └── my_script.sh
└── my_recipe.bb

你的食谱应该是这样的,

my_recipe.bb:

LICENSE = "CLOSED"

LIC_FILES_CHKSUM = ""

SRC_URI = "file://myscript.service"

SRC_URI += "file://myscript.sh"

  
inherit systemd

do_install() {

install -Dm0755 ${WORKDIR}/my_script.sh ${D}/usr/bin/my_script.sh
install -Dm0644 ${WORKDIR}/my_script.service ${D}${systemd_system_unitdir}/my_script.service

}


SYSTEMD_SERVICE_${PN} = "my_script.service"

当然,这应该在您的 conf/bblayers.conf 中已经存在的 meta-layer 中 否则创建它并手动添加它。