-
buildroot
Buildroot, making embedded Linux easy. Note that this is not the official repository, but only a mirror. The official Git repository is at https://gitlab.com/buildroot.org/buildroot/. Do not open issues or file pull requests here.
Last time I tried Yocto, some people here on HN suggested that I try Buildroot instead.
I don’t see any mention of Buildroot in this thread.
Maybe things have changed since then and Yocto is now preferable?
Regardless, if you are interested in Yocto it might be worth having a look at Buildroot as well.
My thread from years ago, where people told me about Buildroot:
https://news.ycombinator.com/item?id=18083506
The website of Buildroot:
https://buildroot.org/
-
InfluxDB
InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
-
yb
A Yocto setup and management tool that helps you keep your environment up-to-date and in-sync with your team
-
Yocto can be incredibly simple, this is my favorite example: https://github.com/bootlin/simplest-yocto-setup/
Only the kernel and bootloader usually need to be specialized for most modern arm boards: the userland can be generic. Most of the problems people have with it are due to layers from vendors which contain a lot of unnecessary cruft.
-
There’s also SkiffOS (https://github.com/skiffos/SkiffOS).
It’s a project that uses buildroot to create a small Linux for a specific device that’s only used to start a container.
I’ve wanted to try it sometime after getting headaches with both Buildroot and Yocto. Particular adding more libraries tends to break things.
-
Maybe https://github.com/RPi-Distro/pi-gen works for you.
-
I would suggest taking a look at bootc https://github.com/containers/bootc which enables you to use OCI / Docker containers as a transport and delivery system for OS updates. That makes available much of the tooling used to build and deliver container images for the purposes of delivering os updates.
It's important to note that the container image itself is not executed upon boot, but rather unpacked before hand.
-
I've been working on something recently that you might find interesting: https://github.com/makrocosm/makrocosm
It's not a shell script, but it has makefile rules that make it relatively simple to build a Docker image for your architecture, export it and turn into a filesystem image, build a kernel, u-boot, etc
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
example-project
Create minimal Alpine-based firmware for a variety of platforms using Makrocosm (by makrocosm)
The referenced "example project" repo builds a basic Alpine image for the Raspberry Pi (https://github.com/makrocosm/example-project/tree/main/platf...) and others
It was motivated by frustrations with Yocto at a new job after 8 or so years working on firmware for network equipment using an offshoot of uClinux.
-
> have not yet found a hardware independent Linux distro that can be reliably updated in an IOT context
I'm part of the team that builds an immutable distro based on OSTree (https://www.torizon.io) that does exactly that.
Docker/Podman support is first-class as the distro is just a binary, Yocto-based one that we maintain so users don't have to. You can try our cloud for free with the "maker" tier. To update a device you just drop a compose file with the web ui and massively update a fleet. You can even use hardware acceleration from the containers using our reference OCI images.
The layer is open (https://github.com/torizon/meta-toradex-torizon) and will get Raspberry Pi support soon but you can integrate already easily with meta-raspberrypi.
Happy to answer any questions.
-
- Chaining together configuration fragments
As another example, here is my kas setup for building rootfs images and container images for various different boards:
https://github.com/unitexe/meta-unit-kas