OpenWRT supports a number of devices. Check the full details of the device before purchasing one, or attempting to flash the device.
First Time Install
If flashing from a DD-WRT router, you'll need to Telnet into the router and use mtd to flash the OpenWRT factory image. Using DD-WRT's GUI flasher won't work, because DD-WRT does some kind of nasty shit to stop it being removed.
Building From Source
Before attempting to build, prepare for the worst. Open and Save As the following pages:
- Debricking Guide
- Booting into Failsafe Mode
- The OpenWRT wiki page for your specific device.
- Network cable.
- The stock firmware for your device.
- Apache installed on your pc (or anything that will allow you to wget your firmware from the router's command prompt).
Follow the official instructions including git clone, installing the feeds, and make menuconfig.
- Set Target System to your device's chipset.
- Set Target Profile to your specific device.
- Within LuCI, Collections, select luci. This is the web interface. Hit space twice to ensure it's selected with an asterix, and not an M (M means module, and modules have to be loaded before they'll start).
- Save to .config.
On your first compile, don't be tempted to select a heap of cool software or settings. Keep it simple. Once you know you can create a working firmware, then you can go nuts with the options.
Expect the compile to take about 45mins for a single CPU core. You can speed it up by using make -j4 (for 4 compilation threads) or -j8 (for 8 core CPUs) but it may fail and need restarting.
Once the compiliation is finished, your firmwares will be in bin/<chipset>/
The factory firmware is for installing OpenWRT over other firmware. sysupgrade is for updating OpenWRT.
Save your router config, flash the new firmware and hold your breath.
If it all goes horribly wrong, refer to the debricking and recovery mode webpages you saved earlier. Generally recovery involves pressing the physical WPS button on your router when it boots, telnetting into it, wgetting a working firmware image from your pc, and using mtd to reflash. TFTD is another option, but much more finicky as you need split second timing to get it to respond.