我正在使用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"
答案 0 :(得分:2)
我相信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。