Debian on a Linksys WRT1200ac / WRT1900ac WiFi router


In line with their popular, hacker friendly WRT54 series routers, Linksys released WRT1200ac and WRT1900ac in 2014. These new devices are beefed up versions of their predecessor. The WRT1900ac for instance ships with 128MB flash storage and 256MB DDR3 RAM powered by an ARM compliant Marvell Armada 370/XP SoC. Marvell over time has worked with the community to provide opensource WiFi drivers. While work continues on the driver, the device is fairly stable to run production workloads. I have ~40 devices concurrently connected during business hours on 2.4GHz and 5GHz. This top of the line embedded hardware opens up interesting new possibility – say hello to McDebian

McDebian is a complete Debian operating system for the new Linksys WRT routers. The kernel along with hardware specific DTB blob is written to MTD flash which enables the device to boot. Rootfs is stored on a USB key connected to the device. Suddenly, storage space is no longer a limitation.

Why McDebian on a router ?

  • Debian maintains a wide range of packages.
  • systemd for init
  • A familiar networking stack running on the router
  • A familiar root filesystems. No difference from what runs on your servers everyday.
  • Upgrading drivers and packages is simple and straight forward
  • Easy to create consistent backups that will save the day if things do go bad
  • Chef or Puppet for configuration management.
  • apt-get update; apt-get upgrade and – Poof! All your security updates applied.

It boots fast too

Don’t take my word for it. Here’s evidence

root@MCDEBIAN:~# systemd-analyze time Startup finished in 6.891s (kernel) + 13.690s (userspace) = 20.581s