在 yocto 中添加层时出现问题
Problems adding a layer in yocto
我对 yocto 还很陌生,正在努力学习如何使用它。我遵循了大型手册部分 section 5.1.9 中的步骤。我运行
yocto-layer create mylayer
并编辑了我的 bblayers.conf 文件,使其具有以下内容:
BBLAYERS = ?" \
/usr/local/src/yocto/meta \
/usr/local/src/yocto/meta-poky \
/usr/local/src/yocto/meta-yocto-bsp \
/usr/local/src/yocto/meta-mylayer \
"
我运行 source oe-init-build-env
然后bitbake core-image-sato
。构建完成后,我 运行 runqemu qemu86 nographics
登录后,运行 find / -name helloworld
因为 mylayer 定义了构建 helloworld 的方法。但是,找不到该文件。
这个程序(helloworld)不应该包含在创建的图像中吗?我在这里缺少什么步骤?
meta-mylayer/conf/layer.conf:
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "mylayer"
BBFILE_PATTERN_mylayer = "^${LAYERDIR}/"
BBFILE_PRIORITY_mylayer = "6"
meta-mylayer/recipies-example/example/example_0.1.bb
#
# This file was derived from the 'Hello World!' example recipe in the
# Yocto Project Development Manual.
#
SUMMARY = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
${CC} ${LDFLAGS} helloworld.c -o helloworld
}
do_install() {
install -d ${D}${bindir}
install -m 0755 helloworld ${D}${bindir}
}
meta-mylayer/recipes-example/example/example-0.1/helloworld.c:
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello World!\n");
return 0;
}
添加新层不会将层中的每个配方添加到每个图像,它只是使这些配方可用于构建。
使用映像配方中的 IMAGE_INSTALL 在映像中添加您想要的包。
http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#usingpoky-extend-customimage 的文档中对此进行了介绍。
我对 yocto 还很陌生,正在努力学习如何使用它。我遵循了大型手册部分 section 5.1.9 中的步骤。我运行
yocto-layer create mylayer
并编辑了我的 bblayers.conf 文件,使其具有以下内容:
BBLAYERS = ?" \
/usr/local/src/yocto/meta \
/usr/local/src/yocto/meta-poky \
/usr/local/src/yocto/meta-yocto-bsp \
/usr/local/src/yocto/meta-mylayer \
"
我运行 source oe-init-build-env
然后bitbake core-image-sato
。构建完成后,我 运行 runqemu qemu86 nographics
登录后,运行 find / -name helloworld
因为 mylayer 定义了构建 helloworld 的方法。但是,找不到该文件。
这个程序(helloworld)不应该包含在创建的图像中吗?我在这里缺少什么步骤?
meta-mylayer/conf/layer.conf:
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "mylayer"
BBFILE_PATTERN_mylayer = "^${LAYERDIR}/"
BBFILE_PRIORITY_mylayer = "6"
meta-mylayer/recipies-example/example/example_0.1.bb
#
# This file was derived from the 'Hello World!' example recipe in the
# Yocto Project Development Manual.
#
SUMMARY = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
${CC} ${LDFLAGS} helloworld.c -o helloworld
}
do_install() {
install -d ${D}${bindir}
install -m 0755 helloworld ${D}${bindir}
}
meta-mylayer/recipes-example/example/example-0.1/helloworld.c:
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello World!\n");
return 0;
}
添加新层不会将层中的每个配方添加到每个图像,它只是使这些配方可用于构建。
使用映像配方中的 IMAGE_INSTALL 在映像中添加您想要的包。
http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#usingpoky-extend-customimage 的文档中对此进行了介绍。