Skip to content

Instantly share code, notes, and snippets.

@telent
Last active June 14, 2018 15:38
Show Gist options
  • Save telent/a6e79d16ad3f1c0871ab51156817d321 to your computer and use it in GitHub Desktop.
Save telent/a6e79d16ad3f1c0871ab51156817d321 to your computer and use it in GitHub Desktop.
Nixcon2018 talk proposal

Title

NixWRT: purely functional firmware images for IoT devices

Abstract

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.

Bio

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