2017-10-19 6 views
0

J'essaye de construire un SDK dans mon sysroot sur ma construction de yocto. Cependant quand je compile ma construction je n'obtiens aucune erreur et tout semble avoir bien fonctionné.Yocto construire ne comprenant pas de fichiers dans l'image sdcard

Lorsque je flash ma carte SD et l'exécuter sur ma carte et aller chercher mes fichiers, ils ne sont pas là.

Voici mon fichier .bb qui est utilisé pour installer le SDK que je veux utiliser.

giffgaff-connectDESCRIPTION = "azure" 
HOMEPAGE = "https://github.com/Azure/azure-iot-sdk-c" 
LICENSE = "MIT" 
SECTION = "applications" 
PRIORITY = "optional" 
DEPENDS = "mono" 
LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=4283671594edec4c13aeb073c219237a" 

SRCREV = "${AUTOREV}" 
SRC_URI = "git://[email protected]/condecosoftware/azure-iot-sdk-c;protocol=ssh;branch=master" 

COMPATIBLE_MACHINE = "imx6qsabresd" 

S = "${WORKDIR}" 

ALLOW_EMPTY_${PN} = "1" 

do_compile() { 
    echo libdir: ${libdir} 
    echo Files : FILES_${PN} 
    echo "compiler: ${CC}" 
    echo "sysroot: ${STAGING_DIR_TARGET}" 
    export SYSROOT=${STAGING_DIR_TARGET} 
    cd ${WORKDIR}/git/build_all/linux/ 
    ./build.sh --toolchain-file toolchain-yocto.cmake -cl --sysroot=${STAGING_DIR_TARGET} --install-path-prefix ${STAGING_DIR_TARGET} 
    cd ../.. 
    cmake -P cmake/iotsdk_linux/cmake_install.cmake 
} 

do_install() { 
    cd git 
    pwd 
    echo ${D} 
    echo ${libdir} 
    install -d 0755 ${D}${libdir} 

    install -m 0755 ./cmake/iotsdk_linux/umqtt/libumqtt.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/uamqp/libuamqp.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/c-utility/libaziotsharedutil.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/iothub_client/libiothub_client_http_transport.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/iothub_client/libiothub_client.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/iothub_client/libiothub_client_amqp_ws_transport.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/iothub_client/libiothub_client_amqp_transport.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/iothub_client/libiothub_client_mqtt_transport.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/iothub_client/libiothub_client_mqtt_ws_transport.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/serializer/libserializer.a ${D}${libdir}/ 
    install -m 0755 ./cmake/iotsdk_linux/iothub_service_client/libiothub_service_client.a ${D}${libdir}/ 
} 

do_fetch_extra(){ 
    cd ${WORKDIR}/git/ 
    git submodule update --init --recursive 
} 

addtask fetch_extra after do_unpack before do_patch 

Toute aide serait grandement appréciée. Merci

Répondre

2

Avez-vous essayé $ {WORKDIR} variable? Cette variable contient le chemin du répertoire de travail de la recette en cours de construction. Donc, je suppose que tous les fichiers récupérés depuis git sont accessibles à partir de là. Par exemple:

installer -m 0755 $ {} WORKDIR /cmake/iotsdk_linux/umqtt/libumqtt.a $ {D} $ {} libdir/

S'il vous plaît laissez-moi savoir si cela fonctionne.

-1

Vous aurez probablement besoin d'ajouter

PACKAGES =+ "${PN}-staticdev" 
FILES_${PN}-staticdev += "${libdir}/*.a" 

pour expédier tous les fichiers que vous avez installés dans votre image. Vous pouvez également ajouter tous les fichiers un par un au lieu d'un caractère générique.

Quelques remarques:

Pour les sous-modules git, vous pouvez utiliser gitsm: // url, il initialise tous les sous-modules.

Vous pouvez également mettre l'instruction suivante pour éviter de modifier la dir dans la recette. Par ailleurs, vous pouvez regarder cette recette OE pour Azure à partir de la couche de nuages ​​de méta-iot Intel. Il est la recette de python, mais cela dépend de C IOT sdk, il peut être source d'inspiration:

https://github.com/intel-iot-devkit/meta-iot-cloud/blob/master/recipes-azure/azure-iot-sdk/azure-iot-sdk_1.1.23.bb