无法从Yocto的图像配方中将文件复制到WORKDIR中

时间:2019-04-10 07:20:14

标签: yocto

我正在尝试将一个简单文件安装到目标rootfs的/ etc目录中。我正在构建core-image-sato。 “ raxy_test”文件(在下面的配方中)甚至都没有在WORKDIR中复制。

  

我做错什么了吗?

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

  

普通食谱和图片食谱有什么区别?

DESCRIPTION = "Image with Sato, a mobile environment and visual style for \                                                                                                                    
mobile devices. The image supports X11 with a Sato theme, Pimlico \
applications, and contains terminal, editor, and file manager."

IMAGE_FEATURES += "splash package-management x11-base x11-sato ssh-server-dropbear hwcodecs"

LICENSE = "MIT"

inherit core-image

TOOLCHAIN_HOST_TASK_append = " nativesdk-intltool nativesdk-glib-2.0"
TOOLCHAIN_HOST_TASK_remove_task-populate-sdk-ext = " nativesdk-intltool nativesdk-glib-2.0"

LICENSE="CLOSED"
LIC_FILES_CHKSUM="" 

SRC_URI = "\
          file://raxy_test \
          "   
do_install() {
    install -d ${D}${sysconfdir}
    install -m 0755 raxy_test ${D}${sysconfdir}
}

我希望WORKDIR以及目标的/ etc目录中都存在“ raxy_test”文件。

我们将不胜感激,谢谢... !!!

1 个答案:

答案 0 :(得分:2)

多件事:

  • 您使用图像配方(core-image-sato)在图像中添加文件。您应该使用单独的配方进行此修改;
  • install不正确(未使用WORKDIR);
  • 您不填充软件包(FILES_${PN}不存在)。

对于单独的配方,请在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}"

您会注意到有些事情已经改变:

install必须包含$ {WORKDIR}路径:

install -m 0755 ${WORKDIR}/raxy_test ${D}${sysconfdir}

我们需要填充软件包:

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

这会将${sysconfdir}中的文件添加到包${PN}(默认为配方名称)中。