我正在使用Thud (2.6),我想要清除/etc/default/dropbear的内容。ROOTFS_POSTPROCESS_COMMAND看起来很有希望,但是下面的代码无法创建空文件。没有错误。
食谱完成的其他工作也成功了。
SRC_URI += "file://authorized_keys"
SRC_URI += "file://dropbear_rsa_host_key"
# Configuration file to be installed in /etc/default.
# SRC_URI += "file://dropbear"
S = "${WORKDIR}"
do_install() {
install -d ${D}/etc/dropbear
install -m 0600 ${S}/authorized_keys ${D}/etc/dropbear
install -m 0600 ${S}/dropbear_rsa_host_key ${D}/etc/dropbear
}
clear_dropbear_default_configuration() {
rm ${D}/etc/default/dropbear
touch ${D}/etc/default/dropbear
echo "Hello" > hello.txt
}
FILES_${PN} += "/etc/dropbear"
FILES_${PN} += "/etc/dropbear/authorized_keys"
FILES_${PN} += "/etc/dropbear/dropbear_rsa_host_key"
ROOTFS_POSTPROCESS_COMMAND += "clear_dropbear_default_configuration;"
# FILES_${PN} += "/etc/default/dropbear"发布于 2019-06-23 09:51:11
我相信ROOTFS_POSTPROCESS_COMMAND是你想要的,但你不能从这样的套餐食谱中调用它。在我们的应用程序中,我们在与.bb镜像创建配方相同的目录中创建了一个带有一些常用函数的新.inc文件,并将其包含在构建目标镜像的配方中。这就是我们放置这些指令和函数的地方(我有4个指令和函数来创建符号链接并重置root密码)。挑战在于,后处理不能再次调用您的配方,我不确定它是如何工作的,试图预先声明一个这样的函数,以便稍后调用。注意,从外观上看,语法是完全正确的,只是不在需要的时候运行的正确位置。
image-base.inc
ROOTFS_POSTPROCESS_COMMAND += "clear_dropbear_default_configuration;"
clear_dropbear_default_configuration() {
rm ${D}/etc/default/dropbear
touch ${D}/etc/default/dropbear
echo "Hello" > hello.txt
}image-name.bb
require image-base.inc你也可以直接把它添加到.bb中,如果你想的话。不过,我喜欢.inc文件,因为它们使相似条目之间的共享变得更容易。注此示例忽略了其他内容,但您可以在它所属的位置自由格式化。
如果您不想更改现有的目标,您可以创建自己的目标,然后在新的镜像配方中需要image.bb。
https://stackoverflow.com/questions/56712338
复制相似问题