Re: Is Yocto the right fit for my project?


Mikko Rapeli
 

On Wed, Nov 20, 2019 at 01:12:52PM +0000, Richard Barrass wrote:
Hello,

I am a lead engineer on project where we run a well-known Linux distribution on-top of a SBC (Intel Quad Pentium processor based) driving a 27" display. We have a 32GB SSD to run from, which we partition with multiple EXT4 partitions to help with potential corruption mitigation if the device is switched off 'hard'.

But, with the well-known Linux distribution comes a lot of things we don't need, plus the potential ability to 'break' in to our application which is running full-screen.

We basically need

QT 5.12 runtime (our application)
SSH
OpenVPN
Wifi
Ethernet
Modem (via Telit modem)
USB-ACM
USB-Memory stick

Is this something I should be looking to the yocto project for, or should I be looking at a more 'traditional' custom linux distro.

The only other aspect, is that we have future plans to cost reduce the application to be running on a Pi based, 10" display system ...

Any thoughts and ideas would be appreciated.
Sounds like yocto could fit to your needs well. My personal experiences summarized:

Pros with yocto:
* configuration of everything is possible
* BSP support available for various SoC's and boards
* optimization for size and disabling not-needed functionality is relatively easy
* BSP, OS vendor and community support is available
* licensing policies can be configured for the build, e.g. avoid GPLv3
* test tooling and infrastructure is provided, ptests and selftests, which can
be reused for product specific ones
* documentation is good, mega manual
* fast moving and following latest open source component releases

Cons with yocto:
* steep learning curve with bitbake and yocto distro configuration
* need to recompile everything
* everything needs to be configured, defaults may not be available
* long term support not available from community directly, yet at least,
though OS vendors do provide this for a fee
* BSP support quality varies and may conflict with non-HW specific SW parts
* fast moving and following latest open source component releases

Pros with well known Linux distros:
* default configurations quite often work out of the box
* no need to recompile everything
* minimal BSP binaries usually available
* long term support quite often available
* large package collection enable fast prototyping
* larger developer base compared to yocto

Cons with well known Linux distros:
* dependencies are complex and images larger than needed for product
* recompiling and customizing large set of packages may be difficult
* cross compiling may be trickier
* BSP deliveries may be outdated
* licensing policies may be hard to implement, e.g. avoid GPLv3 in product images
* integrated test tooling may not be available

In short I would say, with yocto you need to configure and optimize
and figure out how to maintain. With well known Linux distro you will
struggle to configure and optimize but long term maintenance will be
covered by an LTS.

"With enough thrust any pig will fly" :)

Hope this helps,

-Mikko

Join yocto@lists.yoctoproject.org to automatically receive all group messages.