- Introduction
- Why Hack Embedded Devices at All?
- Embedded Devices with Customizable Firmware
- Firmware OptionsFirmware Options
- Summary
Firmware Options
The term firmware refers to the operating system run by the embedded device. In most cases, this is a form (called a "distribution") of embedded Linux. Some distributions are based on the original Linksys embedded Linux code; others, such as OpenWrt, have developed their own embedded Linux distributions.
OpenWrt Firmware
OpenWrt is my top pick for firmware on just about any embedded device platform. It has fantastic community support (IRC channel, forum, and wiki); supports a variety of embedded devices; and has a great toolchain for developers, dubbed "buildroot-ng." If you’re serious about hacking embedded devices, you should become familiar with OpenWrt. It provides the greatest balance between customizability and usability.
DD-WRT Firmware
Want to forgo any embedded device development and firmware customization? DD-WRT is for you. It has a very slick web interface, in case you’re allergic to the command line. Under the covers, DD-WRT is actually a customized version of OpenWrt! One of the features that I like best about DD-WRT is that it supports devices with 2MB of flash, which isn’t a feature of OpenWrt. These devices include WRT54G versions 5.x and 6.x, which can be found on sale for as little as $49—a good, cheap way to get into embedded device hacking, and no command line!
Tomato Firmware
Linksys based the original firmware for the WRT54G, starting with version 1.0, on Linux! In fact, there was some controversy when a hacker reverse-engineered the Linksys firmware and found that Linksys was using GPL software, but had never released the source code. After much debate, Linksys (by then a division of Cisco Systems) released the source code to the firmware for the WRT54G series hardware. This occurrence opened the floodgates, and many firmware distributions began popping up. They offered features that the stock Linksys firmware didn’t offer, such as the ability to adjust the radio transmit power, command-line access via SSH, and many other enhancements. Tomato is a more recent firmware release that’s based on the original Linksys firmware, touting itself as a "small, lean, and simple replacement firmware" that supports the WRT54G series and some Buffalo routers. Other features include a new, easy-to-use GUI, which conflicts with the "small and lean" mentality. From the end-user perspective, it’s important to be aware of the Linksys-based firmware, and identify it as a "drop-in" replacement that simply unlocks some additional features. Plenty of other choices allow you to install more precompiled software on the device, and ease the pain of firmware upgrades.