英文:
How do I package installed files for Yocto?
问题
我正在尝试为 Yocto 创建一个简单的 Hello World 配方,但失败了。我只是试图在根文件系统上创建一个目录并将一个文件复制到那里。我的配方布局如下:
meta-hw
meta-hw/conf
meta-hw/conf/layer.conf
meta-hw/recipes-main
meta-hw/recipes-main/hello-world
meta-hw/recipes-main/hello-world/hello-world.bb
meta-hw/recipes-main/hello-world/files
meta-hw/recipes-main/hello-world/files/hello-world.txt
这是我的 layer.conf:
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
BBFILE_PRIORITY_yoctobsp = "5"
LAYERVERSION_yoctobsp = "4"
这是我的 hello-world.bb:
DESCRIPTION = "Hello world recipe"
LICENSE = "CLOSED"
SRC_URI = "file://hello-world.txt"
do_install() {
install -d ${D}/hw
cp ${WORKDIR}/hello-world.txt ${D}/hw/
}
FILES_${PN} += "/hw"
FILES_${PN} += "/hw/hello-world.txt"
这是我从 bitbake hello-world
得到的输出,告诉我我没有打包 /hw 和 /hw/hello-world.txt 文件,尽管我认为 FILES_${PN}
行正在做这件事。
ERROR: hello-world-1.0-r0 do_package: QA Issue: hello-world: Files/directories were installed but not shipped in any package:
/hw
/hw/hello-world.txt
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
hello-world: 2 installed and not shipped files. [installed-vs-shipped]
ERROR: hello-world-1.0-r0 do_package: Fatal QA errors were found, failing task.
ERROR: Logfile of failure stored in: /data/toradex/build/tmp/work/cortexa53-tdx-linux/hello-world/1.0-r0/temp/log.do_package.130751
ERROR: Task (/home/user/meta-hw/recipes-main/hello-world/hello-world.bb:do_package) failed with exit code '1'
我不确定接下来应该尝试什么,因为我找到的每个示例基本上都是这样的。
英文:
I'm trying to create a simple Hello World recipe for yocto and failing. I'm just trying to create a directory on the root files system and copy a file there. My recipe layout looks like this:
meta-hw
meta-hw/conf
meta-hw/conf/layer.conf
meta-hw/recipes-main
meta-hw/recipes-main/hello-world
meta-hw/recipes-main/hello-world/hello-world.bb
meta-hw/recipes-main/hello-world/files
meta-hw/recipes-main/hello-world/files/hello-world.txt
This is my layer.conf:
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
BBFILE_PRIORITY_yoctobsp = "5"
LAYERVERSION_yoctobsp = "4"
This is my hello-world.bb:
DESCRIPTION = "Hello world recipe"
LICENSE = "CLOSED"
SRC_URI = "file://hello-world.txt"
do_install() {
install -d ${D}/hw
cp ${WORKDIR}/hello-world.txt ${D}/hw/
}
FILES_${PN} += "/hw"
FILES_${PN} += "/hw/hello-world.txt"
And this is the output I get from bitbake hello-world
, telling me I haven't packaged the /hw and /hw/hello-world.txt files, though I thought that's what the FILES_${PN}
lines were doing.
ERROR: hello-world-1.0-r0 do_package: QA Issue: hello-world: Files/directories were installed but not shipped in any package:
/hw
/hw/hello-world.txt
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
hello-world: 2 installed and not shipped files. [installed-vs-shipped]
ERROR: hello-world-1.0-r0 do_package: Fatal QA errors were found, failing task.
ERROR: Logfile of failure stored in: /data/toradex/build/tmp/work/cortexa53-tdx-linux/hello-world/1.0-r0/temp/log.do_package.130751
ERROR: Task (/home/user/meta-hw/recipes-main/hello-world/hello-world.bb:do_package) failed with exit code '1'
I'm not sure what to try next as every example I've found looks basically like this.
答案1
得分: 0
@skandigraun是正确的。我正在使用kirkstone,所以它需要是FILES:${PN} +=
。
英文:
@skandigraun was right. I'm using kirkstone so it needs to be FILES:${PN} +=
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论