Yes I am now learning it the hard way.
Do you really need a custom image ? Just go with the default Debian install. You will have access to pretty much everything you need, or it can be installed.
This could of course be done using the default distro. But then the deployment process would be more complicated and a lot more dependencies of the end user of the project would kick in. With this approach (using Yocto or Buildroot), I provide the end project user a single repo, which he can clone, then run a script for sourcing + bitbake and done- whole image with all required software is ready to be installed. The other reason is for learning purposes. I have already completed the initial prototype hardware for this project and now trying to do the same for the OS and software:
Lastly, I wanted to created a minimal image, without all of the bloat contained in the default images, as I wanted for the OS to boot fast.
I think it is a shame that there is so much more publicity for Yocto than Buildroot.
I cannot disagree- for 1 job requiring Buildroot proficiency in its description, one can see 10 jobs requiring Yocto. The latter is backed up by the “big” companies, which I think is the major advantage.
I also agree on what you are saying about Buildroot- I see it as a bit bigger than bare metal/ RTOS based system. I think its a great concept. What I found about Buildroot (and later about Yocto as well, while I thought it would be different) is that the community support is not that great. From my perspective both documentations (Buildroot and Yocto) are useless for someone learning these systems. It feels like they are written by pro’s for pro’s. To get any usefull info about Yocto, I had to get it from paid tutorials or books. These however I found to bee too generic and not addressing my usage case…
Whether you are using Yocto or Buildroot, if you want to customize a package you need to patch it. Both let you do that by apply diffs to the downloaded source.
Yes this is the concept I haven’t grasped yet (as can be seen in this topic).
Both Yocto and Buildroot will compile a cross compiler that you can use for your own software development.
Yes, this one (at least) I already know!
Fortunately I am in a position where I don’t need to learn Yocto. I have tried a few times, but I find the documentation to be a bit poor and often doesn’t explain things or use cases very well. Not to mention you could spend weeks reading it all. For me Buildroot will always be my goto solution for an embedded Linux system unless something better comes along.
That’s good for you. I also like Buildroot philosophy more than Yocto. But going back to Buildroot now for me, after putting so much time in trying to learn Yocto would feel a bit like a waste. I am also trying to look at this from the long term perspective- to learn Yocto, as there is more demand for it on the market. Just using my pesonal open source project as an excuse for that.
If I were to state one thing that seems better in Yocto than BR, i would say that its somewhat easier to use it, without actually needing to change its sources, i.e., to have it as a GIT submodule that is used read only. In Buildroot I couldn’t figure how to do this. There are still project out there that fork poky (for example OpenBMC), but I still would like to avoid that for the purposes of easier migrations to newer yocto/ poky releases.