OpenWrt

OpenWrt Logo. Source: Wikipedia, 2015.
OpenWrt Logo. Source: Wikipedia, 2015.

OpenWrt is a Linux-based customizable operating system for embedded devices. Instead of being a static firmware, it's a flexible Linux distribution that allows applications to be added/removed through a package management system without having to rebuild the entire firmware.

OpenWrt started as a means to give users and developers control over router firmware. The suffix "WRT" itself comes from Wireless RouTer. Today, OpenWrt can be used in various embedded devices including Wi-Fi routers, wired routers, residential gateways, smartphones, laptops and even x86-based PCs.

Discussion

  • Why should I use OpenWrt?
    OpenWrt intro, installation and configuration. Source: Brownell's Tech Tips, 2016.

    Hardware manufacturers normally ship their products with their own firmware. However, such a firmware may be unstable or lack features that you desire. One Reddit user noted many problems with the default firmware: broken port forwarding, security flaws, missing IPv6 support, limited routing support, no patches, no SSH access, etc. Manufacturers may not bother patching old device models. Their firmware may also have government backdoors.

    This is where OpenWrt comes in as a suitable alternative. Users can download pre-built binaries and customize the same with necessary packages. Developers can built firmware from source and develop new packages. The code is open source and is maintained by a community of developers. Because source is open, OpenWrt is a useful tool for students and researchers. Moreover, one can get enterprise-class features by installing OpenWrt on a cost-effective hardware.

    As of January 2017, OpenWrt is supported for close to 700 different models across brands. In February 2011, OpenWrt had about 2000 packages. In 2017, this number was 3500.

  • How are people customizing OpenWrt for their routers?

    With OpenWrt, users/developers can use their router to run a BitTorrent client, enable VPN, create a guest Wi-Fi network, analyze network traffic, do traffic-shaping or apply QoS rules on packets. The router can also run servers: SSH (and do SSH tunneling), IRC server, HTTP server, FTP server, etc. Mesh networking, port knocking, firewalling, wireless bridging, file sharing and real-time monitoring are some other useful features. When configured as a public hotspot, OpenWrt provides a number of functions to manage the hotspot.

    OpenWrt can also connect to printers, webcams, modems and soundcards. In general, an OpenWrt device can work with any hardware that has Linux support.

  • Could you share some technical details of OpenWrt?
    OpenWrt compared against desktop Linux and Android. Source: OpenWrt Wiki, 2016.
    OpenWrt compared against desktop Linux and Android. Source: OpenWrt Wiki, 2016.

    OpenWrt is a Linux distribution but because it's optimized for embedded systems, many of the libraries have been customized. uClibc is the C standard library used. Utilities from BusyBox are used though procd has replaced some of them for process management. For package management, opkg is used. It's been claimed that a stripped version of OpenWrt can run with only 8 MiB of main memory and non-volatile storage of 2 MiB.

    The firmware is composed of image (kernel + rootfs) and optional packages. Linux, BSD or MacOS are recommended for the host system building the firmware. Robbie Cao has shared a detailed discussion of OpenWrt's build process, installation, configuration, package management system, boot up sequence and memory layout.

  • What are some open source alternatives to OpenWrt?

    Many of the alternatives themselves are derived from OpenWrt: LEDE, Gargoyle, Fon, libreCMC, Freifunk, LibreMesh, etc. Other alternatives include DD-WRT, pfSense, ClearOS, Tomato (and its derivatives), LibreMesh, telehash, Gluon and OpenWISP. FreeWRT and Chilifire are also available.

    While OpenWrt is more of a customizable Linux distribution, DD-WRT is a monolithic build. OpenWrt takes a little more work than DD-WRT for the user but OpenWrt has more features. Tomato is lightweight and strikes a balance between performance and features. However, it supports fewer device variants unlike DD-WRT. DD-WRT is claimed to be the most popular open source router firmware.

  • Are there any concerns with using OpenWrt?

    Flashing your router with OpenWrt will void the manufacturer's warranty. In some exceptional cases, due to incompatibility, the device may become unusable (bricked) after loading OpenWrt. If device has a button to revert to factory settings, this could be an option to recover it. In any case, flashing a replacement firmware should be avoided via a wireless link. Also, ensure that availability of uninterrupted power supply during the process.

    Some routers using open source firmware have been blamed for using 5 GHz spectrum without using Dynamic Frequency Selection (DFS). As a result, they interfere with weather radar systems. Since June 2016, in the US, devices are required to operate within allowed bands, modulations and power levels. Some manufacturers such as TP-Link took the easy path of preventing the use of open source firmware while Linksys still allows them with necessary checks.

    Some have claimed that one can boost power levels with open source firmware. However, if done wrongly, this may violate local limits and regulations.

  • What tools are available to build, install or configure OpenWrt and its packages?

    The development and build environment is called OpenWrt Buildroot, which is derived from Buildroot system. This allows developers to cross-compile for different target architectures and automate the build process using makefiles and scripts.

    OpenWrt SDK is needed to build userspace packages. We can download a pre-built SDK or build one ourselves. Package manager opkg is used to install/remove/update pre-built packages. If we are building a custom package, OpenWrt SDK can also be used to manage the package.

    Configuration is centralized via Unified Configuration Interface (UCI). We can configure OpenWrt from a command console or from a web interface named LuCI. Alternative web interfaces include X-Wrt and Gargoyle Router Management Utility. LuCI includes a package manager page. In fact, some packages have their own configuration pages in LuCI.

  • As a developer, how can I contribute to OpenWrt?
    A technical overview of OpenWrt/LEDE. Source: Fainelli, 2017.

    OpenWrt is completely open source and community driven. It's released under GPL v2.0 license. The code is available on GitHub. You can either contribute to the main distribution or to the various community-maintained packages. Documentation is on OpenWrt Wiki.

    Tasks for developers typically include the following:

    • Update the Linux kernel to more recent versions
    • Fix bugs in kernel or packages: these may include security fixes
    • Update to drivers and networking protocols
    • Support new hardware and new platforms
    • Write new packages
    • Participate in code reviews and testing
    • Improve build, packaging and development tools

Milestones

2003

Linksys releases router WRT54G with support for IEEE 802.11g standard. Some folks in open source community investigate the firmware and find that it uses open source Linux components. Under pressure from community, Linksys releases firmware source code in July 2003. This is the genesis of OpenWrt, and custom router firmware in general. Sveasoft's Alchemy and Talisman, and BrainSlayer's DD-WRT are based on this firmware.

Jan
2004

OpenWrt project is started. First version is released the same year using Linksys open source firmware for the Linksys wireless router WRT54G.

2008

LuCI project is started to provide a web user interface for embedded devices. It's based on Lua programming language. OpenWrt adopts this interface in Kamikaze 8.09 release. Today, LuCI source code is part of OpenWrt.

Oct
2015

OpenWrt Summit is organized for the first time to discuss OpenWrt technology and support the movement. It happens in Dublin, Ireland.

Mar
2016

Chaos Calmer 15.05.1 is released. This is a maintenance release on Chaos Calmer 15.05 released in September 2015. Note that the number "15.05" indicate that release branch was created in May 2015, although the release was finalized only in September. Next OpenWrt release named "Designated Driver" is under development.

May
2016

Linux Embedded Development Environment (LEDE) is born as a fork of OpenWrt. LEDE is started by many active OpenWrt developers unhappy with OpenWrt's processes and lack of transparency, among other things. LEDE promises more open communication, liberal merge policy, automated testing, simplified release process, predictable release cycles and simple infrastructure that requires little maintenance.

May
2017

OpenWrt and LEDE projects meet and plan for a merger.

Jan
2018

OpenWrt code is replaced by code from LEDE as part of efforts to merge the two under the original brand name of OpenWrt.

References

  1. AlternativeTo. 2017. "Alternatives to OpenWrt." Accessed 2017-12-30.
  2. Basurto, Juan Carlos. 2010. "What is so great about OpenWRT?" Wirelezz Blog. August 10. Accessed 2017-12-30.
  3. Brodkin, Jon. 2016. "Linksys WRT routers won’t block open source firmware despite FCC rules." Ars Technica. May 13. Accessed 2017-12-30.
  4. Brownell's Tech Tips. 2016. "Upgrading Your Home Router to OpenWRT and Why It Is Worth It." Brownell's Tech Tips, YouTube. November 5. Accessed 2017-12-30.
  5. Cao, Robbie. 2016. "Learning OpenWrt." July 16. Accessed 2018-01-04.
  6. Chrigwin, Richard. 2016. "Router hackers reach for the fork: LEDE splits from OpenWRT." The Register. May 5. Accessed 2017-12-30.
  7. David. 2017. "DD-WRT vs OpenWRT vs Tomato: Which one is the best firmware for you?" MekaChoice. May 22. Accessed 2017-12-30.
  8. Drager, Dave. 2011. "The Top 6 Alternative Firmwares for Your Router." MakeUseOf. February 28. Accessed 2017-12-30.
  9. Fainelli, Florian. 2017. "OpenWrt/LEDE: When Two become One." The Linux Foundation, YouTube. February 28. Accessed 2017-12-30.
  10. FlashRouters. 2017. "Benefits of Open Source Firmware." Accessed 2017-12-30.
  11. Hoffman, Chris. 2013. "What Is OpenWrt And Why Should I Use It For My Router?" MakeUseOf. March 27. Updated 2017-05-15. Accessed 2017-12-30.
  12. Kammerath Network. 2013. "Increase Wifi Signal Strength." Kammerath Network. July 2. Accessed 2018-01-05.
  13. Larabel, Micahel. 2018. "OpenWRT + LEDE Move Ahead With Their Re-Merge." Phoronix. January 3. Accessed 2017-12-30.
  14. Marketwired. 2015. "prpl Foundation Launches First-Ever OpenWrt Summit 2015 in Dublin." Marketwired. September 22. Accessed 2017-12-30.
  15. OpenWrt. 2017. "OpenWrt Web Site." Accessed 2017-12-30.
  16. OpenWrt GitHub. 2016. "OpenWrt LICENSE." GitHub. March 20. Accessed 2017-12-30.
  17. OpenWrt Packages GitHub. 2017. "OpenWrt packages feed." Accessed 2017-12-30.
  18. OpenWrt Wiki. 2016a. "OpenWrt Version History." OpenWrt Wiki. April 16. Accessed 2017-12-30.
  19. OpenWrt Wiki. 2016b. "Using the SDK." April 15. Accessed 2017-12-30.
  20. OpenWrt Wiki. 2016c. "What is procd?" February 19. Accessed 2018-01-04.
  21. OpenWrt Wiki. 2017a. "Table of Hardware." July 14. Accessed 2017-12-30.
  22. OpenWrt Wiki. 2017b. "Where to get packages." March 29. Accessed 2018-01-04.
  23. OpenWrt Wiki. 2017c. "The UCI System." June 18. Accessed 2018-01-05.
  24. Sharwood, Simon. 2017. "OpenWRT and LEDE agree on Linux-for-routers peace plan." May 10. Accessed 2017-12-30.
  25. Tidux. 2015. "ELi5: Why is Openwrt better than my regular home router?" September 12. Accessed 2017-12-30.
  26. Weiss, Aaron. 2005. "The Open Source WRT54G Story." Wi-Fi Planet. November 8. Accessed 2017-12-30.
  27. Wich, Jo-Philipp. 2016. "The Linux Embedded Development Environment launches." LWN.net. May 3. Accessed 2017-12-30.
  28. Wikipedia. 2015. "File:Openwrt Logo.svg." Wikipedia. November 4. Accessed 2017-12-30.
  29. Wikipedia. 2017a. "OpenWrt." Wikipedia. December 21. Accessed 2017-12-30.
  30. Wikipedia. 2017b. "DD-WRT." Wikipedia. December 19. Accessed 2017-12-30.
  31. Yegulalp, Serdar. 2014. "Teach your router new tricks with DD-WRT or OpenWrt." IT World from IDG. May 29. Accessed 2018-01-05.

Further Reading

  1. Cao, Robbie. 2016. "Learning OpenWrt." July 16. Accessed 2018-01-04.
  2. Yegulalp, Serdar. 2014. "Teach your router new tricks with DD-WRT or OpenWrt." IT World from IDG. May 29. Accessed 2018-01-05.
  3. Weiss, Aaron. 2005. "The Open Source WRT54G Story." Wi-Fi Planet. November 8. Accessed 2017-12-30.
  4. Meeker, Heather J. 2005. "Open Source and the Legend of Linksys." Linux Insider. June 28. Accessed 2017-12-30.

Article Stats

Author-wise Stats for Article Edits

Author
No. of Edits
No. of Chats
DevCoins
1
0
3164
3
0
59
1337
Words
7
Likes
38K
Hits

Cite As

Devopedia. 2021. "OpenWrt." Version 4, June 28. Accessed 2023-11-12. https://devopedia.org/openwrt
Contributed by
2 authors


Last updated on
2021-06-28 16:15:26
  • Linux Distributions
  • Real-Time Linux
  • Custom Router Firmware
  • Buildroot
  • LuCI
  • DD-WRT