nixwrt
nixwrt copied to clipboard
Support cross compilation for multiple architectures
-
Currently the only supported platform is MIPS. The cross compilation configuration is defined in mksystem.nix. This code will definitely need to be refactored.
-
It would be great if we could extend the NixOS
configuration.nix
and just import nixwrt as a module. -
There are many wireless routers out there but the most important architectures now are probably ARMv7, AARCH64 and MIPS. Porting for AARCH64 might be easier as it's one of the supported architecture by Nix.
-
In order to port the these architectures we'll need probably a lot of patches from OpenWRT as well as Yocto and Buildroot.
-
It seems there is also a project to run Nix on ARM that aims on Single Board Computers such as Raspberry Pi. That means a lot of the userspace components will already have patches to build and run. However, as it's the case with embedded devices the booting process, kernel and image building will differ greatly. But it's a start.
-
The image builder for each SoC and board is defined in OpenWRT. The scripts there will need to be converted into Nix code. Maybe resholve could speed things up? Also if the scripts are ported to Nix how will the changes be tracked?
Will have to reflect on this a bit. As an aside - are you aware ofMobile Nixos? It's mostly targetting phones, admittedly, but it uses the upstream NixOS module system, systemd, etc - it's much closer to regular NixOS than NixWRT will ever be
Yes, it's a neat project and I'll have to find some time to examine it. There's also Not-os which trims down the system a lot.