This article may rely excessively on sources too closely associated with the subject, potentially preventing the article from being verifiable and neutral. (November 2013) (Learn how and when to remove this template message) |
![]() | |
![]() OpenWrt 18.06.1 login screen | |
Developer | OpenWrt Project |
---|---|
OS family | Unix-like |
Working state | Current |
Source model | Open source |
Initial release | January 2004 |
Latest release | 19.07.6 / 19 January 2021[1] |
Repository | ![]() |
Available in | 39 languages[2] |
Update method | opkg |
Package manager | opkg |
Platforms | 50 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 |
License | Free software (GPL and other licenses) |
Official website | www |
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.
OpenWrt is configured using a command-line interface (ash shell) or a web interface (LuCI). There are about 3500 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), and laptops. It is also possible to run OpenWrt on personal computers, which are most commonly based on the x86 architecture.
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]
Version (Code name) | Release date | Kernel | libc | Notes |
---|---|---|---|---|
0.9 (White Russian) | January 2006 | 2.4.30 | uClibc | NVRAM-based, nas , wl . Supported platform: brcm-2.4 .
|
7.06 (Kamikaze) | June 2007 | 2.6.19 | Using opkg . Supported platforms: atheros-2.6 , au1000-2.6 , brcm-2.4 , brcm47xx-2.6 , ixp4xx-2.6 , imagicbox-2.6 , rb532-2.6 and x86-2.6 .
| |
7.07 (Kamikaze) | July 2007 | 2.6.21 | New platform: amcc-2.6 .
| |
7.09 (Kamikaze) | September 2007 | |||
8.09 (Kamikaze) | September 2008 | 2.6.26 | New platform: ar71xx .
| |
10.03 (Backfire) | April 7, 2010[12] | 2.6.32 | Supported platforms: adm5120_mips , adm5120_mipsel , ar7 , ar71xx , atheros , au1000 , avr32 , brcm-2.4 , brcm47xx , brcm63xx , cobalt , ep80579 , ifxmips , ixp4xx , kirkwood , octeon , orion , ppc40x , ppc44x , rb532 , rdc , x86 and xburst .
| |
12.09 (Attitude Adjustment) | April 25, 2013[13] | 3.3 | CoDel (network scheduler) backported from Linux 3.5 to 3.3. New platforms: ramips , bcm2708 (Raspberry Pi) and others.
| |
14.07 (Barrier Breaker) | October 2, 2014[14] | 3.10.49[15] | New platforms: i.MX23 , i.MX6 .[16] | |
15.05 (Chaos Calmer) | September 11, 2015[17] | 3.18.20[18] | nftables (available since Linux kernel 3.12); New platforms: TBA if any | |
15.05.1 (Chaos Calmer) | March 16, 2016[19] | 3.18.23[19] | ||
17.01.7 (Reboot (OpenWRT/LEDE))[20] | June 20, 2019[21] | 4.4.182[22] | musl[23] | |
18.06.0 | July 31, 2018 | 4.9.111, 4.14.52 | ||
18.06.1 | August 19, 2018 | 4.9.120, 4.14.63 | ||
18.06.2 | January 31, 2019 | 4.9.152, 4.14.95 | ||
18.06.4 | July 1, 2019 | 4.9.184, 4.14.131 | ||
18.06.5 | November 8, 2019 | 4.9.198, 4.14.151 | ||
18.06.6 | January 10, 2020 | 4.9.208, 4.14.162 | ||
18.06.7 | January 31, 2020 | 4.9.211, 4.14.167 | ||
18.06.8 | March 6, 2020 | 4.9.214, 4.14.171 | ||
18.06.9 | December 9, 2020 | 4.9.243, 4.14.206 | Security fixes (SAD DNS[24]), core component updates and more device support. End of 18.06 support.[25] | |
19.07.0 | January 6, 2020 | 4.14.162 | WPA3 support.[26] | |
19.07.1 | January 31, 2020 | 4.14.167 | Security and bug fixes and more device support.[27] | |
19.07.2 | March 6, 2020 | 4.14.171 | Security and bug fixes and more device support.[28] | |
19.07.3 | May 20, 2020 | 4.14.180 | Security and bug fixes and more device support.[29] | |
19.07.4 | September 10, 2020 | 4.14.195 | Stability and device support.[30] | |
19.07.5 | December 9, 2020 | 4.14.209 | Regressions and security fixes (SAD DNS[31]).[32] | |
19.07.6 | January 19, 2021 | 4.14.215 | Security and bug fixes [33] | |
Legend: Old version Older version, still maintained Latest version |
![]() | |
![]() Login banner | |
Developer | LEDE Project |
---|---|
OS family | Unix-like |
Working state | Merged with OpenWRT |
Source model | Open source |
Initial release | May 2016 |
Repository | ![]() |
Available in | 26 languages[34] |
Update method | opkg |
Package manager | opkg |
Platforms | 23 platforms using the following Instruction sets: AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[35] |
Kernel type | Monolithic (Linux) |
Userland | BusyBox, GNU |
Default user interface | CLI, WebUIs |
License | Free software (GPL and other licenses) |
Official website | lede-project |
The Linux Embedded Development Environment (LEDE) project was a fork of the OpenWrt project and shared many of the same goals.[36][37][38][39][40] It was created in May 2016 by a group of core OpenWrt contributors due to disagreements on OpenWrt internal processes.[37] The schism was nominally reconciled a year later in May 2017 pending approval of the LEDE developers.[41] 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,[42] and formally announced in January 2018.[43] Merging process was completed before OpenWRT 18.06 release.[44]
Version | Release Date | Revision Number[45] | Notes |
---|---|---|---|
17.01.0 | 22 February 2017 | r3205 | First stable release[46] |
17.01.1 | 19 April 2017 | r3316 | Kernel 4.4.61, bug fixes and enhancements[47] |
17.01.2 | 12 June 2017 | r3435 | Kernel 4.4.71, security fixes[48] |
17.01.3 | 3 October 2017 | r3534 | Kernel 4.4.89, security fixes[49] |
17.01.4 | 18 October 2017 | r3560 | Kernel 4.4.92, security fixes (KRACK, as far as addressable by server side fixes)[50] |
17.01.5 | 18 July 2018 | r3919 | Kernel 4.4.140, security fixes [51] |
17.01.6 | 3 September 2018 | r3979 | Kernel 4.4.153, security fixes [52] |
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.[53][54] Additional software can be installed with the opkg package manager and the package repository contains approximately 6000 packages.
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.[55] 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:
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.[58][59]
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.[58][60]
OpenWrt Buildroot provides the following features:[58][60]
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.[61]
OpenWrt runs many different routers and includes a table of compatible hardware on its website.[62] In its buyer's guide[63] it notes that users recommend devices equipped with wireless chips from either Qualcomm's Atheros or Ralink (now MediaTek). OpenWrt also recommends choosing a device with a minimum of 16 MB of flash and 64 MB of RAM, preferably higher amounts.[64]
OpenWrt, especially its Buildroot build system, has been adopted as structure for other efforts. For example
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"