The Liminix project is creating a Nix-based OpenWrt-style embedded Linux system for configuring consumer wifi routers. We use the Nix language for congruent configuration management, and packages from the Nix package system.

Planned features include

  • seamless management of configuration and secrets across a network of Liminix devices

  • robust dependency-based service/process management so that a device can respond usefully when hardware or network connectivity changes.

To receive occasional updates about Liminix you can join the mailing list

Recent news

  • Longer than expected

    Given that it’s a month since the last update, one might reasonably - and correctly - surmise that chopping around modules and services is taking longer to sort out than I’d anticipated it would.

  • Full service wash

    Once upon a time I wrote

  • Time to tidy up

    Last week I wrote:

  • We didn't start the fire(wall)


  • nftables or fn stable

    Hadn’t realised it had been so long since I last updated this, but progress has been slow lately.

  • Update update

    This week^Wfortnight I’ve added a liminix-rebuild command. It uses min-copy-closure to copy the systemConfiguration closure onto the device, then copies the activate binary (and some other bits) into /persist. Then it reboots the device, and the next time it comes up it will run the new activate.

  • Copying copy-closure

    Shortly after all the work to reduce system closure size last time, I tried adding the necessary packages to support nix-copy-closure and saw it start building a complete C++ system with Boost. My fears that this would lead to quite a large increase in the system size were, it turned out, entirely founded.

  • Erase and rewind

    Late update this week, and it’s little more than “hey, I’m still alive”. I’ve been a bit under the weather and spending my discretionary computer time on playing GP Bikes instead of getting anything useful done.

  • Some assembly required

    tl;dr Premature optimization in the rootfs of my emu

  • Writes of way

    It ought to work, anyway. Next week maybe I can talk about it in the past tense and not the future conditional.

  • Nothing to write /home about

    This week in Liminix: a change in the plan. Much to think about, nothing to show

  • We've got mail

    As you’ll see if you’re reading this on (but not if you’re using the RSS feed) we’re now on version 0.2 of the web site. I’ve starting to add a bit more structure beyond the blog entries and would draw your attention particularly to:

  • Side quest

    This week: I made a video, then I went on a tangent.

  • MT vessels: make some noise

    tl;dr MT300N-v2 and MT300A are both implemented

  • Ready for action

    Last week I said I was going to spend this week on fixing the 5GHz wireless suport and then put the GL-AR750 away and start working on some other device. Some of that happened …

  • Order, Order

    tl;dr for this week: I can browse the internet on an Android phone connected by wifi to my Liminix test device :-)

  • Tunnel Vision

    This week in Liminix: am happy to report that the rewritten PHRAM/tftpboot stuff almost worked first time, and the delta between first and second time was just a simple syntax error. The GL-AR750 boots :-)

  • on multiple fronts

    This week I have been dabbling on multiple fronts.

  • Taking stock

    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.

subscribe via RSS