Is it time for a new Embedded Linux build system?
11–20 of 92 posts
Re: Is it time for a new Embedded Linux build system?
#12I'm surprised to see no mention of Guix. It solves all of these issues, and already has a good story both for cross and native builds on a variety of architectures. Adding new targets is deceptively easy, just copy an existing template and substitute your values. https://codeberg.org/guix/guix/src/branch/master/gnu/system/... https://codeberg.org/guix/guix/src/branch/master/gnu/bootloa...
Does guix have any advantage here over nix?
Re: Is it time for a new Embedded Linux build system?
#13Re: Is it time for a new Embedded Linux build system?
#14I'm surprised to see no mention of Guix. It solves all of these issues, and already has a good story both for cross and native builds on a variety of architectures. Adding new targets is deceptively easy, just copy an existing template and substitute your values. https://codeberg.org/guix/guix/src/branch/master/gnu/system/... https://codeberg.org/guix/guix/src/branch/master/gnu/bootloa...
Does guix have any advantage here over nix?
Re: Is it time for a new Embedded Linux build system?
#15Modern SBCs are just normal computers and not "embedded" in the traditional sense. You can generally just use Debian, and spend time on the actual project, instead of wrestling with the system
Re: Is it time for a new Embedded Linux build system?
#16Modern SBCs are just normal computers and not "embedded" in the traditional sense. You can generally just use Debian, and spend time on the actual project, instead of wrestling with the system
Re: Is it time for a new Embedded Linux build system?
#17Like the article points out, the software stacks people use for embedded devices are the same as people use non-embedded use; Rust, Go, NodeJS, and sure still C++. The only real difference with embedded devices is non-OS components like the bootloader (u-boot, EDK2) and customizing the device tree. (And of course firmware flashing). Fundamentally those are all just packages that I can describe in Nix. I don't need a separate tool just because the board is small.
IMO the embedded space, especially in the US, is already pretty Niche. Most companies either just ship the vendors BSP example (Ubuntu/Debian/Yocto) and pay very little attention to the detail or re-useablity. Once you vendor declares the BSP EOL you are stuck unless you re-implement it yourself.
Using Nix (or Guix) has the massive advantage of a large and active community that isn't fractured like the Yoctoo/Buildroot community. (By fractured I mean there may by many, many people using those tools at $DAYJOB but due to vendor BSP customization they likely share much less with the upstream community maintained sources).
Re: Is it time for a new Embedded Linux build system?
#18I've used buildroot extensively, and an occasional yockto. My impression in recent years is that these image cross build environments are just not as frequently needed as they were back in the day of their invention. My most recent embedded linux environments were just embedded archlinux. No need to cross build an image, just install and run the minimized linux environment right on the target. Of course, a big part o…
Are you proposing compiling on the target? For a vast number of embedded systems that is not only impossible (insufficient disk and memory) but also incredibly slow. At the end of the day you need some cross compilation just for board bring up. If you're playing with some platform for which this has already been done, then sure, but that's not really the "normal" way of doing embedded.
Re: Is it time for a new Embedded Linux build system?
#19I’ve been experimenting with what a next-generation embedded Linux build system might look like: native builds on the target architecture, modern language package managers as first-class citizens, and AI as a primary interface to the system. Instead of cross-compiling with a large meta-layer stack, the tool builds kernel, rootfs, and applications together using one engine, with a CLI, TUI, and AI assistant talking to…
Re: Is it time for a new Embedded Linux build system?
#20Earlier quoted context omitted.
Does guix have any advantage here over nix?
I didn't know Nix had support for embedded systems. Where are the images defined?
$ my-arm-system = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ ./configuration.nix ]; };
$ :b arm-system.config.system.build.images.iso