OpenWrt explained

OpenWrt
Developer:OpenWrt Project
Family:Linux (Unix-like)
Working State:Current
Source Model:Open source
Language:English, Chinese, Polish, Portuguese, Punjabi, Spanish, Welsh + 25 partially translated languages[1]
Updatemodel:opkg
Package Manager:opkg
Supported Platforms:50 different platforms using the following Instruction sets: ARC, ARM, m68k, MIPS, PowerPC, SPARC, SuperH, x86, x86-64[2]
Kernel Type:Monolithic (Linux)
Userland:BusyBox
Ui:CLI, WebUIs (LuCI)
License:Free software (GPL and other licenses)

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,[3] 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 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.[4] Under the terms of that license, Linksys was required to make the source code of its modified version available under the same license,[5] [6] 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.[7] The fork was dubbed Linux Embedded Development Environment (LEDE). The schism was reconciled a year later.[8] Following the remerger, announced in January 2018,[9] 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.[10]

Releases

Version (Code name)[11] [12] General availabilityKernelLatest minor versionLatest release dateProjected EoL[13] libcNotes
first Stable Release2004-01uClibcBased on Linksys GPL sources for WRT54G and a buildroot from the uClibc project
0.9 (White Russian)[14] [15] 2007-02-052.4.30NVRAM-based, nas, wl. Supported platform: brcm-2.4.
7.06 (Kamikaze)[16] 2007-06-022.6.197.09 [17] [18] 2007-09-30Using 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.
8.09 (Kamikaze)[19] 2009-02-192.6.268.09.2[20] [21] 2010-01-10New platform: ar71xx.
10.03 (Backfire)[22] 2010-04-072.6.3210.03.1[23] 2011-12-21Supported platforms: adm5120_mips, adm5120_mipsel, ar7, ar71xx, atheros, [[Alchemy (microarchitecture)|au1000]], avr32, brcm-2.4, brcm47xx, brcm63xx, cobalt, ep80579, ifxmips, ixp4xx, kirkwood, octeon, orion, ppc40x, ppc44x, rb532, rdc, x86 and [[XBurst (microarchitecture)|xburst]].
12.09 (Attitude Adjustment)[24] 2013-04-253.3CoDel (network scheduler) backported from Linux 3.5 to 3.3. New platforms: ramips, bcm2708 (Raspberry Pi) and others.
14.07 (Barrier Breaker)[25] 2014-10-023.10.49New platforms: [[i.MX#i.MX23 family|i.MX23]], [[i.MX#i.MX6x series|i.MX6]].[26]
15.05 (Chaos Calmer)[27] 2015-09-113.18.2015.05.1[28] 2016-03-162016, Marchnftables (available since Linux kernel 3.12); New platforms: TBA if any
17.01.0 (Reboot (OpenWrt/LEDE))[29] 2017-02-224.4.5017.01.72019-06-202018, Septembermusl[30] There were only release notes for "OpenWrt/LEDE 17.01.7 - Seventh Service Release - June 2019" with a code revision "rTODO-2252731af4".[31] The official announcement of "OpenWrt/LEDE v17.01.7 service release" was never made in the OpenWrt Forum due to GPG signing certs issues.[32]
18.06.0[33] 2018-07-314.9.111 / 4.14.5218.06.92020-12-092020, December
19.07.0[34] 2020-01-064.14.16219.07.102022-04-202022, AprilWPA3 support.[35] Flow offloading (beta).[36]
21.02.0[37] 2021-09-045.4.14321.02.72023-05-012023, MayWPA3, TLS and HTTPS support included by default, initial DSA support, LXC and ujail support [38]
22.03.0[39] 2022-09-065.10.13822.03.72024-07-252024, JulyFirewall4 based on nftables, many new devices added, more targets converted to DSA, dark mode in LuCI, year 2038 problem handled, core components updated.[40]
23.05.0[41] 2023-10-135.15.13423.05.42024-07-202025, AprilNew devices added, ipq40xx target converted to DSA, default cryptographic library switched to mbedtls, core components updated.[42]
Legend:

LEDE

LEDE
Developer:LEDE Project
Family:Unix-like
Working State:Merged with OpenWrt
Source Model:Open source
Language:26 languages[43]
Updatemodel:opkg
Package Manager:opkg
Supported Platforms:23 platforms using the following Instruction sets: AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[44]
Kernel Type:Monolithic (Linux)
Userland:BusyBox, GNU
Ui:CLI, WebUIs
License:Free software (GPL and other licenses)

The Linux Embedded Development Environment (LEDE) project was a fork of the OpenWrt project and shared many of the same goals.[45] [46] [47] [48] [49] It was created in May 2016 by a group of core OpenWrt contributors due to disagreements on OpenWrt internal processes.[46] The schism was nominally reconciled a year later in May 2017 pending approval of the LEDE developers.[50] 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,[51] and formally announced in January 2018.[52] The merging process was completed before the OpenWrt 18.06 release.[53]

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

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.[61] [62] Additional software can be installed with the opkg package manager and the package repository contains approximately 8000 packages (by 2022).

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.[63] 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.[66] [67]

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.[68]

OpenWrt Buildroot provides the following features:

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.[69]

Hardware compatibility

OpenWrt runs many different routers and includes a table of compatible hardware on its website.[70] In its buyer's guide,[71] 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.[72]

Adoption

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

Derivative projects

See also: List of router firmware projects.

See also

External links

Notes and References

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