OpenWrt

Last updated

OpenWrt
OpenWrt Logo.svg
OpenWrt Screenshot 18.06.1.svg
OpenWrt 18.06.1 login screen
Developer OpenWrt Project
OS family Linux (Unix-like)
Working stateCurrent
Source model Open source
Initial releaseJanuary 2004;20 years ago (2004-01)
Latest release 23.05.5 [1]   OOjs UI icon edit-ltr-progressive.svg / 25 September 2024;54 days ago (25 September 2024)
Repository
Available in English, Chinese, Polish, Portuguese, Punjabi, Spanish, Welsh + 25 partially translated languages [2]
Update method opkg (up to 24.10 release) apk (snapshot builds)
Package manager Alpine Package Manager (APK) opkg (up to 24.10 release)
Platforms50 different platforms using the following Instruction sets: ARC, ARM, m68k, MIPS, PowerPC, SPARC, SuperH, x86, x86-64 [3]
Kernel type Monolithic (Linux)
Userland BusyBox
Default
user interface
CLI, WebUIs (LuCI)
License Free software (GPL and other licenses)
Official website openwrt.org

OpenWrt (from open wireless router) is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, [4] and BusyBox. All components have been optimized to be small enough to fit into the limited storage and memory available in home routers.

Contents

OpenWrt is configured using a command-line interface (ash shell) or a web interface (LuCI). There are about 8000 optional software packages available for installation via the opkg package management system.

OpenWrt can run on various types of devices, including CPE routers, residential gateways, smartphones, pocket computers (e.g., Ben NanoNote). It is also possible to run OpenWrt on personal computers and laptops.

History

The OpenWrt project was started in 2004 after Linksys had built the firmware for their WRT54G series of wireless routers with code licensed under the GNU General Public License. [5] Under the terms of that license, Linksys was required to make the source code of its modified version available under the same license, [6] [7] which enabled independent developers to create derivative versions. Support was originally limited to the WRT54G series, but has since been expanded to include many other routers and devices from many different manufacturers.

Using this code as a base and later as a reference, developers created a Linux distribution that offers many features not previously found in consumer-level routers. Early on some features required proprietary software. For example, prior to OpenWrt 8.09 (based on Linux 2.6.25 and the b43 kernel module) WLAN for many Broadcom-based routers could only be had via the proprietary wl.o module (and which required Linux 2.4.x).

OpenWrt releases were historically named after cocktails, such as White Russian, Kamikaze, Backfire, Attitude Adjustment, Barrier Breaker and Chaos Calmer, and their recipes were included in the message of the day (motd) displayed after logging in using the command-line interface.

In May 2016, OpenWrt was forked by a group of core OpenWrt contributors due to disagreements on internal process. [8] The fork was dubbed Linux Embedded Development Environment (LEDE). The schism was reconciled a year later. [9] Following the remerger, announced in January 2018, [10] the OpenWrt branding is preserved, with many of the LEDE processes and rules used. The LEDE project name was used for v17.01, with development versions of 18.01 branded OpenWrt, dropping the original cocktail based naming scheme. [11]

Releases

LEDE

LEDE
LEDE Logo.svg
LEDE-Screenshot.svg
Login banner
Developer LEDE Project
OS family Unix-like
Working stateMerged with OpenWrt
Source model Open source
Initial releaseMay 2016;8 years ago (2016-05)
Repository
Available in 26 languages [44]
Update method opkg
Package manager opkg
Platforms23 platforms using the following Instruction sets: AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64 [45]
Kernel type Monolithic (Linux)
Userland BusyBox, GNU
Default
user interface
CLI, WebUIs
License Free software (GPL and other licenses)
Official website lede-project.org

The Linux Embedded Development Environment (LEDE) project was a fork of the OpenWrt project and shared many of the same goals. [46] [47] [48] [49] [50] It was created in May 2016 by a group of core OpenWrt contributors due to disagreements on OpenWrt internal processes. [47] The schism was nominally reconciled a year later in May 2017 pending approval of the LEDE developers. [51] The remerger preserves the OpenWrt branding, but uses many of the LEDE processes and rules. The remerge proposal vote was passed by LEDE developers in June 2017, [52] and formally announced in January 2018. [53] The merging process was completed before the OpenWrt 18.06 release. [54]

Version [12] Release DateKernelNotes
17.01.02017-02-224.4.50first stable release [55]
17.01.12017-04-194.4.61bug fixes and enhancements [56]
17.01.22017-06-124.4.71security fixes [57]
17.01.32017-10-034.4.89security fixes [58]
17.01.42017-10-184.4.92security fixes (KRACK, as far as addressable by server side fixes) [59]
17.01.52018-07-184.4.140security fixes [60]
17.01.62018-09-034.4.153security fixes [61]

Features

OpenWrt features a writeable root file system, enabling users to modify any file and easily install additional software. This is in contrast with other firmware based on read-only file systems which don't allow modifying installed software without rebuilding and flashing a complete firmware image. This is accomplished by overlaying a read-only compressed SquashFS file system with a writeable JFFS2 file system using overlayfs. [62] [63] Additional software can be installed with the opkg package manager and the package repository contains approximately 8000 packages (by 2022).

LuCI Openwrt-luci-firewall.png
LuCI

OpenWrt can be configured through either a command-line interface or a web interface called LuCI. OpenWrt provides set of scripts called UCI (unified configuration interface) to unify and simplify configuration through the command-line interface. [64] Additional web interfaces, such as Gargoyle, are also available.

OpenWrt provides regular bug fixes and security updates even for devices that are no longer supported by their manufacturers.

OpenWrt provides exhaustive possibilities to configure common network-related features, like IPv4, IPv6, DNS, DHCP, routing, firewall, NAT, port forwarding and WPA.

Other features include:

Development

OpenWrt's development environment and build system, known together as OpenWrt Buildroot, are based on a heavily modified Buildroot system. OpenWrt Buildroot is a set of Makefiles and patches that automates the process of building a complete Linux-based OpenWrt system for an embedded device, by building and using an appropriate cross-compilation toolchain. [67] [68]

Embedded devices usually use a different processor than the one found in host computers used for building their OpenWrt system images, requiring a cross-compilation toolchain. Such a compilation toolchain runs on a host system but generates code for a targeted embedded device and its processor's instruction set architecture (ISA). For example, if a host system uses x86 and a target system uses MIPS32, the regular compilation toolchain of the host runs on x86 and generates code for x86 architecture, while the cross-compilation toolchain runs on x86 and generates code for the MIPS32 architecture. OpenWrt Buildroot automates this whole process to work on the instruction set architectures of most embedded devices and host systems. [67] [69]

OpenWrt Buildroot provides the following features: [67] [69]

Besides building system images, OpenWrt development environment also provides a mechanism for simplified cross-platform building of OpenWrt software packages. Source code for each software package is required to provide a Makefile-like set of building instructions, and an optional set of patches for bug fixes or footprint optimizations. [70]

Hardware compatibility

OpenWrt runs many different routers and includes a table of compatible hardware on its website. [71] In its buyer's guide, [72] it notes that users recommend devices equipped with wireless chips from either Qualcomm's Atheros, Ralink (now MediaTek) or any vendor with open source drivers and specifications. It specifically avoids Broadcom chipsets as the feature set is very limited due to having no open drivers. OpenWrt also recommends choosing a device with a minimum of 16 MB of flash and 128 MB of RAM, preferably higher amounts. [73]

Adoption

OpenWrt, especially its Buildroot build system, has been adopted as the structure for other efforts. For example

Derivative projects

See also

Related Research Articles

A network operating system (NOS) is a specialized operating system for a network device such as a router, switch or firewall.

<span class="mw-page-title-main">Wireless community network</span>

Wireless community networks or wireless community projects or simply community networks, are non-centralized, self-managed and collaborative networks organized in a grassroots fashion by communities, non-governmental organizations and cooperatives in order to provide a viable alternative to municipal wireless networks for consumers.

Computer operating systems based on the Linux kernel are used in embedded systems such as consumer electronics, in-vehicle infotainment (IVI), networking equipment, machine control, industrial automation, navigation equipment, spacecraft flight software, and medical instruments in general.

<span class="mw-page-title-main">Linksys WRT54G series</span> Series of wireless routers manufactured by Linksys

The Linksys WRT54G Wi-Fi series is a series of Wi-Fi–capable residential gateways marketed by Linksys, a subsidiary of Cisco, from 2003 until acquired by Belkin in 2013. A residential gateway connects a local area network to a wide area network.

<span class="mw-page-title-main">Wireless router</span> Computer networking device

A wireless router or Wi-Fi router is a device that performs the functions of a router and also includes the functions of a wireless access point. It is used to provide access to the Internet or a private computer network. Depending on the manufacturer and model, it can function in a wired local area network, in a wireless-only LAN, or in a mixed wired and wireless network.

HyperWRT is a defunct firmware project for the Linksys WRT54G and WRT54GS wireless routers based on the stock Linksys firmware, released under a GPL. The original goal of the HyperWRT project was to add a set of features—such as power boost—to the latest Linux-based Linksys firmware, extending its possibilities but staying close to the official firmware. Over time, it continued to be updated with newer Linksys firmware, and added many more features typically found in enterprise routing equipment. HyperWRT is no longer maintained, and has been succeeded by Tomato.

<span class="mw-page-title-main">DD-WRT</span> Linux-based firmware for wireless routers and wireless access points

DD-WRT is Linux-based firmware for wireless routers and access points. Originally designed for the Linksys WRT54G series, it now runs on a wide variety of models. DD-WRT is one of a handful of third-party firmware projects designed to replace manufacturer's original firmware with custom firmware offering additional features or functionality.

The NSLU2 is a network-attached storage (NAS) device made by Linksys introduced in 2004 and discontinued in 2008. It makes USB flash memory and hard disks accessible over a network using the SMB protocol. It was superseded mainly by the NAS200 and in another sense by the WRT600N and WRT300N/350N which both combine a Wi-Fi router with a storage link.

Squashfs is a compressed read-only file system for Linux. Squashfs compresses files, inodes and directories, and supports block sizes from 4 KiB up to 1 MiB for greater compression. Several compression algorithms are supported. Squashfs is also the name of free software, licensed under the GPL, for accessing Squashfs filesystems.

tomato (firmware) Custom consumer network appliance firmware

Tomato is a family of community-developed, custom firmware for consumer-grade computer networking routers and gateways powered by Broadcom chipsets. The firmware has been continually forked and modded by multiple individuals and organizations, with the most up-to-date fork provided by the FreshTomato project.

Linksys WRV54G is a Linux-based router that supports 50 VPN tunnels and 5 simultaneous clients. It supports Wireless-G connectivity and 4-port 10/100 Ethernet hub. Unlike the WRT54G series, the WRV54 uses an Intel IXP425 processor, which supports hardware-based encryption, but is costlier. WRV54G is the first Linksys router that supports the proprietary Linksys program QuickVPN, which simplifies VPN setup. Although it was released in 2004, WRV54G is not yet fully supported by OpenWrt firmware.

Linksys manufactures a series of network routers. Many models are shipped with Linux-based firmware and can run third-party firmware. The first model to support third-party firmware was the very popular Linksys WRT54G series.

DebWrt is a discontinued, niche Linux distribution mainly installed on embedded systems. It was built on top of an OpenWrt base which was used to load a fully functional version of Debian from the RootFS stored on the attached USB storage device. For easy installation and deinstallation of packages it relied on the dpkg Package management system. DebWrt used the command-line interface of Bash. There was no web-based GUI interface.

<span class="mw-page-title-main">Gargoyle (router firmware)</span> Linux distribution

Gargoyle is a free OpenWrt-based Linux distribution for a range of wireless routers based on Broadcom, Atheros, MediaTek and others chipsets, Asus Routers, Netgear, Linksys and TP-Link routers. Among notable features is the ability to limit and monitor bandwidth and set bandwidth caps per specific IP address.

<span class="mw-page-title-main">Buildroot</span> Tool for building Linux

Buildroot is a set of Makefiles and patches that simplifies and automates the process of building a complete and bootable Linux environment for an embedded system, while using cross-compilation to allow building for multiple target platforms on a single Linux-based development system. Buildroot can automatically build the required cross-compilation toolchain, create a root file system, compile a Linux kernel image, and generate a boot loader for the targeted embedded system, or it can perform any independent combination of these steps. For example, an already installed cross-compilation toolchain can be used independently, while Buildroot only creates the root file system.

The Open Wireless Movement hosted at OpenWireless.org is an Internet activism project which seeks to increase Internet access by encouraging people and organizations to configure or install software on their own wireless router to offer a separate public guest network or to make a single public wireless access point. If many people did this, then a ubiquitous global public wireless network would be created which would achieve and surpass the goal of increasing Internet access.

<span class="mw-page-title-main">LibreCMC</span> Computer operating system

LibreCMC is a Linux-libre distribution for computers with minimal resources, such as the Ben NanoNote, ath9k-based Wi-Fi routers, and other hardware with emphasis on free software. Based on OpenWrt, the project's goal is to aim for compliance with the GNU Free System Distribution Guidelines and ensure that the project continues to meet these requirements set forth by the Free Software Foundation (FSF). LibreCMC does not support ac or ax due to a lack of free chipsets.

Router software requires updating to stay secure, this comparison provides an overview of third party options.

References

  1. "OpenWrt 23.05.5 - Service Release - 25. September 2024". September 25, 2024.
  2. "LuCI Translation Portal on Weblate". January 22, 2021. Retrieved January 22, 2021.
  3. "git.openwrt.org Git - openwrt/openwrt.git/blob - target/Config.in". git.openwrt.org. October 24, 2017. Archived from the original on November 4, 2019. Retrieved July 2, 2018.
  4. Fietkau, Felix (June 16, 2015). "OpenWrt switches to musl by default". Archived from the original on June 17, 2015. Retrieved June 16, 2015.
  5. Miklas, Andrew (June 7, 2003). "Linksys WRT54G and the GPL". Linux kernel mailing list (Mailing list). Retrieved July 5, 2018.
  6. Weiss, Aaron (November 8, 2005). "The Open Source WRT54G Story". Wi-Fi Planet. Retrieved July 5, 2018.
  7. "Linksys Releases GPLed Code for WRT54G". Slashdot. July 6, 2003. Retrieved July 5, 2018.
  8. Willis, Nathan (May 11, 2016). "LEDE and OpenWrt". LWN.net . Retrieved August 31, 2017.
  9. Sharwood, Simon (May 10, 2017). "OpenWRT and LEDE agree on Linux-for-routers peace plan". theregister.co.uk. Retrieved August 31, 2017.
  10. Wich, Jo-Philipp (January 2, 2018). "Announcing the OpenWrt/LEDE merge". LEDE Project Forum. Retrieved January 10, 2018.
  11. "Welcome to the OpenWrt Project (OpenWrt Project)". OpenWrt. January 2018. Retrieved February 16, 2018. As of January 2018, the current Stable OpenWrt release [17.01.4] was built from the LEDE 17.01 source code, and branded with the LEDE project name. Development versions of OpenWrt are currently branded with the OpenWrt name, and have a version number of 18.01 "
  12. 1 2 "OpenWrt version history". October 16, 2023.
  13. "Release Builds". October 19, 2023.
  14. "Security - Support status". December 28, 2015. Retrieved January 9, 2024.
  15. "Whiterussian 0.9 / Kamikaze snapshots". February 5, 2007.
  16. "WHITE RUSSIAN 0.9". February 5, 2007.
  17. "Kamikaze 7.06". June 2, 2007.
  18. "Kamikaze 7.07". July 26, 2007.
  19. "Kamikaze 7.09". September 30, 2007.
  20. "Kamikaze 8.09". February 19, 2009.
  21. "Kamikaze 8.09.1". June 3, 2009.
  22. "Kamikaze 8.09.2". January 10, 2010.
  23. "Backfire 10.03". April 7, 2010.
  24. "Backfire 10.03.1". December 21, 2011.
  25. "Attitude Adjustment". April 25, 2013.
  26. "Barrier Breaker". October 2, 2014.
  27. "OpenWrt Project: Freescale i.MX". openwrt.org. July 16, 2013. Retrieved July 16, 2018.
  28. "Chaos Calmer". September 11, 2015.
  29. "OpenWrt 15.05.1 "Chaos Calmer"". March 16, 2016.
  30. "LEDE 17.01 "Reboot"". June 29, 2019.
  31. "[OpenWrt-Devel] OpenWrt switches to musl by default". June 16, 2015. Retrieved June 27, 2015.
  32. "OpenWrt/LEDE 17.01.7 - Seventh Service Release - June 2019". June 20, 2019.
  33. "OpenWrt 17.01.7 - date of release?". July 20, 2019. Retrieved January 11, 2024.
  34. "OpenWrt 18.06". July 31, 2018.
  35. "OpenWrt 19.07". January 6, 2020.
  36. Mehrtens, Hauke (January 6, 2020). "OpenWrt 19.07.0 - First Stable Release - 6 January 2020". OpenWrt Wiki.
  37. Man, Low Kah (February 1, 2020). "Speedtest OpenWRT with flow offloading". Leow Kah Man - Tech Blog.
  38. "OpenWrt 21.02". September 4, 2021.
  39. Mehrtens, Hauke (September 4, 2021). "OpenWrt 21.02.0 - First Stable Release - 4 September 2021". OpenWrt Wiki.
  40. "OpenWrt 22.03". September 6, 2022.
  41. "OpenWrt 21.03.0 - First Stable Release - 6 September 2022". OpenWrt Wiki. September 15, 2022.
  42. "OpenWrt 23.05". October 13, 2023.
  43. Mehrtens, Hauke (October 11, 2023). "OpenWrt 23.05.0 - First Stable Release - 13 October 2023". OpenWrt Wiki. Retrieved October 24, 2023.
  44. "Lua Configuration Interface: /modules/luci-base/po". May 10, 2017. Archived from the original on September 26, 2017. Retrieved May 14, 2017.
  45. "LEDE Source Repository: /target/Config.in". March 30, 2017. Archived from the original on September 26, 2017. Retrieved May 14, 2017.
  46. Larabel, Michael (May 14, 2017). "OpenWRT Gets Forked By Some Of Its Own Developers As LEDE Project". Phoronix . Retrieved May 3, 2016.
  47. 1 2 Willis, Nathan (May 11, 2016). "LEDE and OpenWrt". LWN.net . Retrieved May 14, 2017.
  48. Chirgwin, Richard (May 5, 2016). "Router hackers reach for the fork: LEDE splits from OpenWRT". The Register . Retrieved May 14, 2017.
  49. Grüner, Sebastian (May 5, 2016). "OpenWRT-Kernentwickler starten eigenen Fork". golem.de (in German). Retrieved May 14, 2017.
  50. Ahlers, Ernst (May 4, 2016). "Router-Firmware: LEDE als offenere OpenWRT-Alternative" (in German). Heise Online . Retrieved May 14, 2017.
  51. Sharwood, Simon (May 10, 2017). "OpenWRT and LEDE agree on Linux-for-routers peace plan". theregister.co.uk. Retrieved August 31, 2017.
  52. Mehrtens, Hauke (June 26, 2017). "LEDE call for vote on remerge proposal V3". LEDE-DEV mailing list. Archived from the original on September 1, 2017. Retrieved August 31, 2017.
  53. Wich, Jo-Philipp (January 2, 2018). "Announcing the OpenWrt/LEDE merge". LEDE Project Forum. Retrieved January 10, 2018.
  54. "OpenWrt Project: OpenWrt 18.06". openwrt.org. May 18, 2018. Retrieved November 2, 2018.
  55. "LEDE Project: LEDE 17.01.0 - First Stable Release - February 2017". Lede-project.org. February 22, 2017. Retrieved October 20, 2017.
  56. "LEDE Project: LEDE 17.01.1 - First Service Release - April 2017". Lede-project.org. April 19, 2017. Retrieved October 20, 2017.
  57. "LEDE Project: LEDE 17.01.2 - Second Service Release - June 2017". Lede-project.org. June 12, 2017. Retrieved October 20, 2017.
  58. "LEDE Project: LEDE 17.01.3 - Third Service Release - October 2017". Lede-project.org. October 3, 2017. Retrieved October 20, 2017.
  59. "LEDE Project: LEDE 17.01.4 - Fourth Service Release - October 2017". Lede-project.org. October 18, 2017. Retrieved October 20, 2017.
  60. "OpenWrt/LEDE 17.01.5 - Fifth Service Release - July 2018". Lede-project.org. July 15, 2018. Retrieved July 20, 2018.
  61. "OpenWrt/LEDE 17.01.6 - Sixth Service Release - September 2018". Lede-project.org. September 2, 2018. Retrieved November 2, 2018.
  62. "The OpenWrt Flash Layout". OpenWrt Project. January 18, 2010. Retrieved July 7, 2018.
  63. Corbet, Jonathan (June 15, 2011). "Debating overlayfs". LWN.net. Retrieved July 7, 2018.
  64. "The UCI System". OpenWrt Project. September 16, 2009. Retrieved July 8, 2018.
  65. "29C3: ISP's black box". events.ccc.de. January 19, 2013.
  66. "kernel: add codel and fq_codel to generic 3.3 patch set". dev.archive.openwrt.org. May 16, 2012. Retrieved July 2, 2018.
  67. 1 2 3 "OpenWrt Buildroot – About". openwrt.org. Retrieved October 21, 2013.
  68. "OpenWrt Buildroot - Usage and documentation". openwrt.org. January 8, 2006. Archived from the original on October 21, 2013. Retrieved October 21, 2013.
  69. 1 2 Tao Jin (February 13, 2012). "OpenWrt Development Guide" (PDF). Wireless Networks Lab, CCIS, NEU. Retrieved October 21, 2013.
  70. "Creating packages". openwrt.org. Retrieved October 21, 2013.
  71. "OpenWrt Project: Table of Hardware". openwrt.org. January 19, 2016. Retrieved July 2, 2018.
  72. "OpenWrt Project: Buyers' Guide". openwrt.org. December 29, 2010. Retrieved July 2, 2018.
  73. "4/32 warning". OpenWrt. September 28, 2020.
  74. "Simet Box" . Retrieved September 14, 2017.
  75. "ANNOUNCE: debloat-testing kernel git tree". LWN.net . Retrieved February 13, 2014.
  76. "Cerowrt Wiki - Bufferbloat.net". www.bufferbloat.net.
  77. "Free Software Foundation adds libreCMC to its list of endorsed distributions". FSF.org. September 4, 2014. Retrieved December 21, 2014.
  78. ""closing time" message from author on PacketProtector forum". Archived from the original on April 21, 2013.
  79. "GPL Code Center | TP-Link". www.tp-link.com.
  80. "GPL Source Code Support; D-Link". tsd.dlink.com.tw.
  81. "FriendlyElec Downloads".
  82. "Ansuel GUI". Ansuel Github. August 16, 2017. Retrieved April 16, 2022.