I am pleased and proud to announce that Liminix has been awarded a grant from the NGI Zero Entrust fund administered by the NLnet Foundation - the overall objective being to turn it from something that runs my home internet into something that could run other people’s (yours? if you’re reading this, you’re probably the target audience) home/small office internet as well.

The project plan covers CI and testing, adding a writeable filesytem (in-place updates! imagine!), a rewrite of the module system, an ARM port, and a better system for service management - so, quite a chunk of stuff.

Goals for phase 1

  • All current NixWrt targets (GL-MT300A, GL-MT300N, GL-AR750, Qemu) build in Hydra
  • “Smoke tests” for the Qemu target: it boots, connects to PPPoE, runs a DHCP and (emulated) wireless access point.

The first task is to get it into a CI system. Because I’m expecting it to talk to hardware, it’s going to be easier to run this locally than in the cloud, so I’m learning (relearning, I suppose) how to use Hydra, and converting the mess of scripts called by run-tests.sh into (currently equally messy) derivations using runCommand (a0380728a5 and other commits in that vicinity)

To connect to PPPoE, obviously, it needs sight of a PPPoE service. Presently I’m using a Mikrotik “Cloud Hosted Router” VM image in the free licensing tier, and I’m going to have to figure out how to expose that so it’s visible in Hydra workers.

RouterOS is, however, proprietary software, so at some point I want to switch it out for something libre. But initially at least I’d rather test against something known to work than something I made myself from rp-pppoe and other parts, or else how do I know whether the bugs are in Liminix or are in the test harness?