Je suis très nouveau à yocto et j'essaie d'apprendre à l'utiliser. J'ai suivi les étapes dans la section méga-manuel section 5.1.9. J'ai couruProblèmes d'ajout d'une couche dans yocto
yocto-layer create mylayer
et édité mon fichier bblayers.conf avoir ceci:
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 \
"
Je courus source oe-init-build-env
puis bitbake core-image-sato
. Lorsque la construction a fini, j'ai couru runqemu qemu86 nographics
et après la connexion, couru find/-name helloworld
depuis mylayer définit une recette pour construire helloworld. Cependant, le fichier n'a pas été trouvé.
Ce programme (helloworld) ne devrait-il pas être inclus dans l'image créée? Quelle (s) étape (s) suis-je absent ici?
méta-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"
méta-mylayer/recipies-/ exemple/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}
}
méta-mylayer/recettes-exemple /example/example-0.1/helloworld.c:
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello World!\n");
return 0;
}
merci, je n'ai pas lu assez loin dans le manuel! Par ailleurs, l'IMAGE_INSTALL_append doit être défini sur le nom de la recette que le script crée (avec l'espace de début), donc dans mon cas, "exemple" – Mark