Hello all, I’m an embedded software guy struggling with Yocto. I’m not asking for assistance as I cannot be saved. Rather, I’d like to make my own. How hard it would be to put a Linux distro onto a device without it? For example, if I were to get a perfectly good distro (let’s just say Debian) with the right architecture going in a container. Is there a simple way to combine that with u-Boot, and other crap from a SoC manufacturer to build an image? If that is oversimplifying, I’ve done Linux from scratch before, and I’d be willing to go that route as well. I guess the issue boils down to the specifics like building the image and anything else that I’m not aware of.
So, what part of this idea is going to be a lot harder than I’m giving it credit for?
By the way, I’m aware of Buildroot. This is more for learning purposes, and who knows… maybe I will actually make something out of it.
Yeah I tried Buildroot and Yocto and got frustrated. Buildroot did work, but it does a ton of stuff with a ton of not-very-well-documented options, and it definitely wasn’t integrated into a proper build system. Like there’s no way I’d trust any kind of incremental build.
I ended up doing it myself. Tbf I was just benchmarking kernel boots so I didn’t need userspace or even real hardware. I only needed OpenSBI (a RISC-V firmware thing) and the kernel.
Frankly OpenSBI is a rather undocumented mess too. Incremental OpenSBI builds don’t work, and I did try and contribute fixes but despite the repo being on GitHub they auto-close PRs and tell you to use
git send email from the command line to a mailing list like it's the 90s
. I shit you not. How to keep away contributors.Anyway my conclusion is that the whole Linux OS building story is a shit show. If you only want a basic image with busybox etc. you can probably do it yourself and then you will actually understand it, but you will just be recreating Buildroot.
Ha. I’ve never used buildroot, but I think I’m going to have a go at it. I promise not to use python ;]
Thank you for the insight.