Yocto kirkstone build failed due to libgsthailotools

Hello,
I’m working with Hailo15H(Hummingboard IIOT). I am facing an error while yocto build . I am attaching a snippet of log file along with this. Can anybody help to resolve this?

Hey @Ajin_A ,

If you’re seeing ninja stop with a “subcommand failed” error, don’t worry - this is pretty common! It usually means your recipe successfully downloaded and unpacked the plugin sources, but then hit a roadblock with either a missing dependency or some configuration issue in your Yocto layer.

Let me walk you through the most frequent causes and how to fix them:

First, double-check your Hailo layer setup

You’ll want to make sure you’ve properly included Hailo’s Yocto layers and turned on the GStreamer plugins. In your build’s conf/bblayers.conf file, you should see something like this:

BBLAYERS += "\
  ${BSPDIR}/sources/meta-hailo/meta-hailo-accelerator \
  ${BSPDIR}/sources/meta-hailo/meta-hailo-libhailort \
  ${BSPDIR}/sources/meta-hailo/meta-hailo-tappas \
"

Then in your conf/local.conf, add all the Hailo components to your image:

IMAGE_INSTALL_append = " \
  hailo-firmware \
  libhailort \
  hailortcli \
  hailo-pci \
  libgsthailo \
  libgsthailotools \
  tappas-apps \
  hailo-post-processes \
  tappas-tracers \
"

Stick to the official Hailo-15 EVB build process

I can’t stress this enough - follow their build flow exactly as documented. Here’s the basic process:

Start by cloning the Hailo meta-layer and doing your initial build:

git clone https://github.com/hailo-ai/meta-hailo-soc.git
cd meta-hailo-soc
kas build kas/hailo15-evb.yml    # only run this once

Then get into the Yocto environment and build what you need:

source poky/oe-init-build-env
bitbake core-image-minimal      # or whatever image you're targeting
# alternatively: bitbake linux-yocto-hailo

Verify your dependencies are all there

The libgsthailotools plugin is pretty picky about having the right headers and libraries available. It needs:

  • GStreamer 1.0 (specifically gst-base, gst-player, and gst-pbutils)

  • GLib-2.0

  • RapidJSON (or the JSON headers from your hailo/metadata directory)

  • Several Hailo-specific libraries: libhailocommon, Buffer-Utils, Visibility, Encoder, Tracking

  • orc-0.4 and OpenCV4

If you’ve customized or overridden the recipe, make sure your .bbappend file includes all the dependencies:

DEPENDS += " \
    gstreamer1.0 \
    gstreamer1.0-plugins-base \
    glib-2.0 \
    rapidjson \
    hailo-common \
    buffer-utils \
    hailo-visibility \
    orc-0.4 \
    opencv4 \
"

Also, when you generate your SDK with populate_sdk, make sure it includes all the corresponding -dev packages so CMake and ninja can actually find the headers and pkg-config files they need.

Turn up the verbosity to see what’s really going wrong

If you’re still stuck, let’s get more detailed output from the build process:

bitbake libgsthailotools -c cleansstate
bitbake -e libgsthailotools | tee env.txt
bitbake libgsthailotools -v -D

Then dig into the compile log at tmp/work/<machine>/libgsthailotools/…/temp/log.do_compile and look for the first “fatal error:” or “undefined reference” message right before ninja gave up.

Quick summary:

  1. Make sure you’ve included all the Hailo Yocto layers and added the runtime components to your IMAGE_INSTALL

  2. Follow the standard EVB build flow using kas build followed by bitbake core-image-minimal or linux-yocto-hailo

  3. Double-check that your recipe includes all the necessary dependencies (GLib, RapidJSON, OpenCV, etc.)

  4. When in doubt, run with verbose debugging and check the compile logs to see exactly what’s missing

If you’re still running into issues after trying these steps, just share the specific “fatal error:” or “undefined reference” lines from your Yocto log and I’ll help you figure out what’s going on.

1 Like

Thanks for the detailed reply. Actually, I am using Hailo15H VPU in the carrier board.

 **Layers**:
  • The meta-hailo-accelerator layer is not needed to be there in my case(VPU).

  • Instead of meta-hailo/meta-hailo-tappas , I am using meta-hailo-soc/meta-hailo-tappas layer.

    Recipes:

  • The hailo-pci and hailo-firmware recipe can be excluded from the IMAGE_INSTALL_append as meta-hailo-accelerator is not included.

    Also I’ve not overridden the libgsthailotools_3.32.0 recipe anywhere. The libgsthailotools_3.32.0.bb file declares the following dependencies:
    DEPENDS += “glib-2.0-native glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base rapidjson cppzmq zeromq”

    As of now, I can add the required packages to IMAGE_INSTALL_append as suggested, and test the build. I can also consider overriding other dependencies by creating .bbappend.

Hello Omria,

I have added the required appends in local.conf. But the build still fails. When I have dig through the /libgsthailo/5.0.0-r0/temp/log.do_compile, I found the following error message.

/build/tmp/work/armv8a-poky-linux/libgsthailo/5.0.0-r0/git/hailort/libhailort/src/rpc_callbacks/rpc_callbacks_dispatcher.cpp
{standard input}: Assembler messages:
{standard input}:25783: Warning: end of file not at end of a line; newline inserted
{standard input}:27331: Error: unknown pseudo-op: `.’
{standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive
aarch64-poky-linux-g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.

I’ve solved the issue bu downgrading the hailort on yocto build

1 Like