Hi guys, I somehow managed to port NixOS to the Xilinx FPGA+ARM SoCs. The attempt starts when I was fiddling around with PetaLinux, and I kind of felt that Yocto is suboptimal for such a task:
- Yocto doesn’t provide elegant way to organize your configurations; you need to hop between multiple directories even for the simplest configuration task.
- Yocto doesn’t maintain build idempocy; sometimes you need to clean all the build artifacts using
petalinux-build -x mrproper
.
- While NixOS may not be an operating system specifically designed for embedded, Zynq isn’t that resource constrained.
I wondered how it would be like if I was able to port NixOS to it, and here we are.
17 Likes
Thanks for your research! I also had this device last year, but it was taken back by the teacher at the end of last semester ![:frowning: :frowning:](https://discourse.nixos.org/images/emoji/twitter/frowning.png?v=12)
You can merge your code into this project if you are willing to:
And write setup guidelines here:
https://nixos.wiki/wiki/NixOS_on_ARM
I appreciate your suggestion. That was actually my initial goal. If you take a closer look, you’ll notice that many designs, such as the xlnx-firmware-update
command, are borrowed from nixos-hardware. However, at some point it expanded beyond containing just packages necessary for NixOS boot. It now also includes a few packages useful for Xilinx development. These packages may be too niche for upstreaming to Nixpkgs, but definitely relevant when making stuffs with Zynq. I find it more organized to keep it the current form.
1 Like
Amazing, I will try that when doing the next project with a Zynq. I remember lots of issues with PetaLinux that you mentioned and replacing that with a declarative config seems great if it works.
2 Likes