Skip to content

Instantly share code, notes, and snippets.

Last active June 14, 2018 15:38
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
Nixcon2018 talk proposal


NixWRT: purely functional firmware images for IoT devices


Reflashing your broadband router with Linux (DD-WRT or OpenWRT or Tomato or variants) gives you unparalleled flexibility to do things that the manufacturer probably hadn't thought of. Remembering what you did, six months later, is often trickier.

NixWRT is a (currently experiemental) collection of derivations using the Nix package system and bits of NixOS to build router and IoT device firmware images using the principles of declarativity and composability that are why we love Nix. This talk will give you an overview of how it works, some war stories about the challenges faced, and hopefully the data you need to to decide whether to try it yourself on your own hardware.


Daniel Barlow has been using Linux on the desktop since the days of kernel version 0.99pl14 (Slackware and MCC-Interim), and has never really adjusted mentally as computing has moved on. Messing about with resource-limited systems like routers and IoT devices helps him to pretend it's still 1995.

In the years since then he's programmed professionally in Perl, Common Lisp and Ruby, and played with Clojure and Nix.

Most likely to say: "have you tried looking at it with {strace, wireshark}?"

Least likely to say: "but that's a big risk when we could just buy a closed-source solution from an enterprise vendor"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment