I am newbie to the Yocto world. I am trying to learn how to create an Embedded Linux distribution using the Yocto and so far have succeeded in building a base image for my customized board and the system is working fine. I am currently using the Yocto branch - krogoth. I checked the Yocto website for the stable releases:
https://wiki.yoctoproject.org/wiki/Releases
Krogoth and Jethro branches are marked as the stable versions. Since the Krogoth version is relatively new, I have used that initially. Now I am planning to have a Yocto based build system for my embedded Product.
What's the influence in choosing one branch over the other. Any long term benefits or what should I keep in mind when I choose which branch to use? Any inputs on these would be helpful. cheers:)
Only the last two (or at times three) Yocto branches are officially supported: There is a major release every six months so the support period of a specific release is about a year from release date. During that period the release gets point releases with security updates and bug fixes.
Unless you have specific reasons not to, you should always base your work on the latest release (at the time of writing that's Morty), and keep rebasing to a new Yocto release every 6 or 12 months. This not only means you have more of the official support period left but also makes it easier to get help if you run into problems.
There's also the option of developing on top of master branch: it's going to mean lots more changes but may make sense if you know your product release is going to happen after the next Yocto release. In this case you can start with master and then switch to the Yocto release branch (earning 6 months more support than you would have using the previous release).
If you're building an actual product and need longer support lifetimes you probably want to talk to one of the commercial vendors.
There's talks going on about longer-term "community" supported releases but no commitments so far.
While the latest stable is a good decision. It is important as well to align your decision to the other layers you plan to use in your system.
For example, if you plan to build for the raspberryPi you are going to need its BSP layer. Which support stage could be not at the same pace as poky or openembedded.
Mixing branches among your layers will end up in conflicts. For example, the so called bbappends, sometimes are tied to specific version number and will break the build if those versions are not found in the layers.(This in fact could be a good indicator that you made a wrong the decision the the layer branch)
You should evaluate all the layers and find a compromise between:
Some layers could be not maintained with the same branching name (or even not maintained at all) but they should mention in the README which poky branch they are requiring.
At last, note that the yocto branch you decided to use, could not be supported by your current host linux distribution. For example: I want to use a layer which forces me to stick with Krogoth, but this branch is not tested with newer distributions such as Ubunutu 16.04 or 18.04. While in this scenario is not problematic going with 16.04 I have encountered several problems with 18.04.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With