We are in the process of integrating the Hailo-8 chip into our product, which is based on a Zynq UltraScale+ MPSoC. Our Linux distribution is built using PetaLinux (Yocto Langdale, kernel 6.1).
I’ve been reviewing the meta-hailo Yocto layer and see that it supports a few branches: Dunfell (kernel 5.4), Kirkstone (kernel 5.15), and Mickledore (kernel 6.1). Since our kernel version matches Mickledore, we assume this is the correct one to use.
Q1: Which Mickledore Branch to Use?
There are multiple branches in the Hailo meta-hailo GitHub repository related to Mickledore:
mickledore
mickledore-v3.32.0
hailo8-mickledore
It’s unclear which one is the intended stable branch for integration. Can someone clarify the difference between these and which one we should track?
Q2: Is TAPPAS Still Needed?
We often see references to TAPPAS in Hailo tutorials and documentation. In previous branches (e.g., Kirkstone), the TAPPAS Yocto layer was included, but it appears to be removed from the Mickledore branch.
Do we still need TAPPAS for inference or runtime support?
Or is it more of a development-time tool (e.g., for testing/training)?
Should our software developers expect to rely on it, or is it optional?
Q3: Building Examples Without Internet
Our embedded target device does not have an internet connection. I couldn’t find any Yocto recipe for compiling example applications directly.
Previously, TAPPAS had a tappas-apps package, but this seems to have been removed from the latest layers (I checked in the Kirkstone branch). What’s the best approach for cross-compiling examples for an offline device? Is there an officially supported method or set of recipes?
Any guidance, clarification, or best practices would be appreciated.
The applications in Tappas is being deprecated, so you’ve got two options depending on what you’re trying to do:
Option 1: If you need to work with meta-hailo, you’ll have to stick with the full tappas framework and use the specific HailoRT version that’s compatible with it. You can find the right version listed in the repo’s readme. However, since tappas is deprecated, this isn’t officially supported anymore, so I’d recommend going with option 2.
Option 2: Hailo Apps Infra is now the main way to run GStreamer applications. It works with tappas-core, which just includes the essential plugins from tappas without all the extra stuff.
Is there any plan to put the hailo-apps-infra repository in meta-hailo in the future to make it more embedded systems friendly? Like I mentioned in my original post our embedded device doesn’t have an internet connection. Every packet has to be (cross-)compiled and installed in rootfs with Yocto in host machine.
Regarding the Python bindings, what are these bindings? Do you mean the Python packages which get installed with the install.sh script?
Beside these question, would you please elaborate on the first question I asked about the branch names? Which one am I supposed to pick?
For the hailo-apps-infra we have tested it on embedded system and it has worked!
For the Python question you had - yeah, you can either use what gets installed through install.sh or grab them directly from the site and install manually (same way you’d install hailort).
My recommendation would be to go with hailo8-mickledore paired with hailort 4.20 and the corresponding driver. That combo has been solid for us.