未从Yocto中的图像配方在WORKDIR中复制文件

未从Yocto中的图像配方在WORKDIR中复制文件,yocto,Yocto,我正在尝试将一个简单的文件安装到目标rootfs的/etc目录。我正在构建核心图像佐藤。“raxy_测试”文件(在下面的配方中)甚至没有被复制到WORKDIR中 我做错什么了吗 我可以用普通配方做同样的事情,但不能用图像配方 正常配方和图像配方有什么区别 我希望“raxy_test”文件出现在WORKDIR以及目标的/etc目录中 非常感谢您的帮助,谢谢 多件事: 您可以使用图像配方(core image sato)在图像中添加文件。您应该使用单独的配方进行此修改 安装不正确(未使用) 您不填

我正在尝试将一个简单的文件安装到目标rootfs的/etc目录。我正在构建核心图像佐藤。“raxy_测试”文件(在下面的配方中)甚至没有被复制到WORKDIR中

我做错什么了吗

我可以用普通配方做同样的事情,但不能用图像配方

正常配方和图像配方有什么区别

我希望“raxy_test”文件出现在WORKDIR以及目标的/etc目录中

非常感谢您的帮助,谢谢

多件事:

  • 您可以使用图像配方(
    core image sato
    )在图像中添加文件。您应该使用单独的配方进行此修改
  • 安装不正确(未使用)
    
  • 您不填充包(不存在)

对于单独的配方,在recipes-*子目录中创建一个文件(例如
myrecipe.bb
或任何您想要的文件)(您需要将其放置在与其他配方相同的文件夹级别!)。我没有测试它,但我认为这可以作为一个基础:

DESCRIPTION = "My recipe"
LICENSE="CLOSED"

PR = "r0"
PV = "0.1"

SRC_URI = " file://raxy_test "

 # Create package specific skeleton
do_install() {
    install -d ${D}${sysconfdir}
    install -m 0755 ${WORKDIR}/raxy_test ${D}${sysconfdir}/raxy_test
}

# Populate packages
FILES_${PN} = "${sysconfdir}"
您可以注意到有些事情已经发生了变化:

安装
必须包括${WORKDIR}路径:

install -m 0755 ${WORKDIR}/raxy_test ${D}${sysconfdir}
我们需要填充包:

FILES_${PN} = "${sysconfdir}"
这将把
${sysconfdir}
中的文件添加到包
${PN}
(默认情况下是配方名称)。

多个内容:

  • 您可以使用图像配方(
    core image sato
    )在图像中添加文件。您应该使用单独的配方进行此修改
  • 安装不正确(未使用)
    
  • 您不填充包(不存在)

对于单独的配方,在recipes-*子目录中创建一个文件(例如
myrecipe.bb
或任何您想要的文件)(您需要将其放置在与其他配方相同的文件夹级别!)。我没有测试它,但我认为这可以作为一个基础:

DESCRIPTION = "My recipe"
LICENSE="CLOSED"

PR = "r0"
PV = "0.1"

SRC_URI = " file://raxy_test "

 # Create package specific skeleton
do_install() {
    install -d ${D}${sysconfdir}
    install -m 0755 ${WORKDIR}/raxy_test ${D}${sysconfdir}/raxy_test
}

# Populate packages
FILES_${PN} = "${sysconfdir}"
您可以注意到有些事情已经发生了变化:

安装
必须包括${WORKDIR}路径:

install -m 0755 ${WORKDIR}/raxy_test ${D}${sysconfdir}
我们需要填充包:

FILES_${PN} = "${sysconfdir}"

这将把
${sysconfdir}
中的文件添加到包
${PN}
(默认情况下是配方名称)。

默认情况下,文件${PN}包含${sysconfdir},因此除非您在一个不寻常的文件夹中安装了一些东西,否则不需要添加它。您可能还想使用
+=
操作符,而不是
=
。此外,如果配方只是没有二进制文件的配置,您可以添加
继承allarch
。默认情况下,文件${PN}包含${sysconfdir},因此您不需要添加它,除非您在一个不寻常的文件夹中安装了某些东西。您可能还想使用
+=
运算符,而不是
=
。此外,如果配方只是没有二进制文件的配置,您可以添加
继承allarch