2017-10-02 3 views
0

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; 
} 

Répondre

1

Ajout d'une nouvelle couche n'ajoute pas chaque recette dans la couche à chaque image, il fait juste les recettes disponibles pour construire.

Ajoutez les packages souhaités dans l'image en utilisant IMAGE_INSTALL dans la recette d'image. Ceci est couvert dans la documentation au http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#usingpoky-extend-customimage.

+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