tensorflowyoctorpmbitbakednf

Bitbake fails at do_rootfs : none of the providers can be installed


I am trying to build a container image running a tensorflow-lite application. This app also includes examples which I included as a packages

The build fails at do_rootfs because of a missing dependency. Here is the error I get, thrown by dnf :

ERROR: container-tensorflow-lite-label-image-1.0-r0 do_rootfs: Could not invoke dnf. Command '/data/yocto/build/tmp/fullmetalupdate-containers/work/imx8mqevk-fullmetalupdatecontainers-linux/container-tensorflow-lite-label-image/1.0-r0/recipe-sysroot-native/usr/bin/dnf -v --rpmverbosity=info -y -c /data/yocto/build/tmp/fullmetalupdate-containers/work/imx8mqevk-fullmetalupdatecontainers-linux/container-tensorflow-lite-label-image/1.0-r0/rootfs/etc/dnf/dnf.conf --setopt=reposdir=/data/yocto/build/tmp/fullmetalupdate-containers/work/imx8mqevk-fullmetalupdatecontainers-linux/container-tensorflow-lite-label-image/1.0-r0/rootfs/etc/yum.repos.d --installroot=/data/yocto/build/tmp/fullmetalupdate-containers/work/imx8mqevk-fullmetalupdatecontainers-linux/container-tensorflow-lite-label-image/1.0-r0/rootfs --setopt=logdir=/data/yocto/build/tmp/fullmetalupdate-containers/work/imx8mqevk-fullmetalupdatecontainers-linux/container-tensorflow-lite-label-image/1.0-r0/temp --repofrompath=oe-repo,/data/yocto/build/tmp/fullmetalupdate-containers/work/imx8mqevk-fullmetalupdatecontainers-linux/container-tensorflow-lite-label-image/1.0-r0/oe-rootfs-repo -x busybox-syslog,busybox-udhcpc --nogpgcheck install tensorflow-lite-examples tensorflow-lite tensorflow-lite-staticdev' returned 1:
DNF version: 4.1.0

...

Error: 
 Problem: package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6()(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(CXXABI_1.3)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4.11)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4.14)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4.15)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4.20)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4.21)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4.9)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(CXXABI_1.3.5)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4.18)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(CXXABI_1.3.8)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4.19)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++.so.6(GLIBCXX_3.4.22)(64bit), but none of the providers can be installed
  - package tensorflow-lite-examples-1.14-r0.aarch64 requires libstdc++6 >= 8.3.0, but none of the providers can be installed
  - conflicting requests
  - nothing provides /bin/sh needed by libstdc++6-8.3.0-r0.aarch64

I'm new to Yocto and don't know where to go from there. How can I solve this kind of issue ?

Here are the line related to package dependencies in my tensorflow recipe :

RDEPENDS_${PN}-dev = "${PN}-staticdev"

PACKAGES += "${PN}-examples"

ALLOW_EMPTY_${PN} = "1"

FILES_${PN} = ""

FILES_${PN}-dev = " \
    ${includedir} \
"

FILES_${PN}-staticdev = " \
    ${libdir} \
"

FILES_${PN}-examples = " \
    ${bindir}/${PN} \
    ${bindir}/${PN}-${PV}/examples/label_image \
    ${bindir}/${PN}-${PV}/examples/grace_hopper.bmp \
    ${bindir}/${PN}-${PV}/examples/minimal \
    ${bindir}/${PN}-${PV}/examples/benchmark_model \
    ${bindir}/${PN}-${PV}/examples/mobilenet_v1_0.25_224.tflite \
    ${bindir}/${PN}-${PV}/examples/mobilenet_v1_0.25_224_quant.tflite \
    ${bindir}/${PN}-${PV}/examples/mobilenet_v1_1.0_224.tflite \
    ${bindir}/${PN}-${PV}/examples/mobilenet_v1_1.0_224_quant.tflite \
    ${bindir}/${PN}-${PV}/examples/mobilenet_quant_v1_224.tflite \
    ${bindir}/${PN}-${PV}/examples/labels.txt \
"

Thanks in advance and please ask if you need more info.


Solution

  • nothing provides /bin/sh needed by libstdc++6-8.3.0-r0.aarch64
    

    You probably just need to add bash to your image(in local.conf):

    IMAGE_INSTALL_append = " bash"