Jump to content

OpenWrt

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Ghettoblaster (talk | contribs) at 09:21, 4 July 2020 ({{Anchor|PACKET-PROTECTOR|CEROWRT}}Derivatives). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

OpenWrt
OpenWrt 18.06.1 login screen
DeveloperOpenWrt Project
OS familyUnix-like
Working stateCurrent
Source modelOpen source
Initial releaseJanuary 2004; 20 years ago (2004-01)
Latest release19.07.3 / 20 May 2020 (4 years ago) (2020-05-20) [1]
Repository
Available in22 languages[2]
Update methodopkg
Package manageropkg
Platforms50 different platforms using the following Instruction sets: ARC, ARM, m68k, MIPS, PowerPC, SPARC, SuperH, x86, x86-64[3]
Kernel typeMonolithic (Linux)
UserlandBusyBox
Default
user interface
CLI, WebUIs
LicenseFree software (GPL and other licenses)
Official websitewww.openwrt.org

OpenWrt (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.

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. Some features formerly required proprietary software. Before the introduction of OpenWrt 8.09, using Linux 2.6.25 and the b43 kernel module, WLAN for many Broadcom-based routers was only available through the proprietary wl.o module that was also provided for Linux 2.4.x only.

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

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
19.07.0 January 6, 2020 4.14.162 WPA3 support.[24]
19.07.1 January 31, 2020 4.14.167 Security and bug fixes and more device support.[25]
19.07.2 March 6, 2020 4.14.171 Security and bug fixes and more device support.[26]
19.07.3 May 20, 2020 4.14.180 Security and bug fixes and more device support.[27]
Legend:   Old version   Older version, still maintained   Latest version

LEDE

LEDE
Login banner
DeveloperLEDE Project
OS familyUnix-like
Working stateMerged with OpenWRT
Source modelOpen source
Initial releaseMay 2016; 8 years ago (2016-05)
Repository
Available in26 languages[28]
Update methodopkg
Package manageropkg
Platforms23 platforms using the following Instruction sets: AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[29]
Kernel typeMonolithic (Linux)
UserlandBusyBox, GNU
Default
user interface
CLI, WebUIs
LicenseFree software (GPL and other licenses)
Official websitelede-project.org

The Linux Embedded Development Environment (LEDE) project was a fork of the OpenWrt project and shared many of the same goals.[30][31][32][33][34] It was created in May 2016 by a group of core OpenWrt contributors due to disagreements on OpenWrt internal processes.[31] The schism was nominally reconciled a year later in May 2017 pending approval of the LEDE developers.[35] 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,[36] and formally announced in January 2018.[37] Merging process was completed before OpenWRT 18.06 release.[38]

Version Release Date Revision Number[39] Notes
17.01.0 22 February 2017 r3205 First stable release[40]
17.01.1 19 April 2017 r3316 Kernel 4.4.61, bug fixes and enhancements[41]
17.01.2 12 June 2017 r3435 Kernel 4.4.71, security fixes[42]
17.01.3 3 October 2017 r3534 Kernel 4.4.89, security fixes[43]
17.01.4 18 October 2017 r3560 Kernel 4.4.92, security fixes (KRACK, as far as addressable by server side fixes)[44]
17.01.5 18 July 2018 r3919 Kernel 4.4.140, security fixes [45]
17.01.6 3 September 2018 r3979 Kernel 4.4.153, security fixes [46]

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.[47][48] Additional software can be installed with the opkg package manager and the package repository contains approximately 6000 packages.

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.[49] 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.[52][53]

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.[52][54]

OpenWrt Buildroot provides the following features:[52][54]

  • Makes it easy to port software across architectures
  • Uses kconfig (Linux kernel menuconfig) for the configuration of all options
  • Provides an integrated cross-compiler toolchain (gcc, ld, uClibc etc.)
  • Provides an abstraction for autotools (automake, autoconf), cmake and SCons
  • Handles standard OpenWrt image build workflow: downloading, patching, configuration, compilation and packaging
  • Provides a number of common fixes for known badly behaving packages

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

Hardware compatibility

OpenWrt runs many different routers, and includes a table of compatible hardware on its website.[56] In its buyer's guide,[57] 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 8MB of flash and 64MB of RAM, preferably higher amounts.[58]

Adoption

OpenWrt, especially its Buildroot build system, has been adopted many times:

  • AltiWi "one-time-fee-only" replacement for Cloudtrax.
  • Freifunk and other mesh network communities
  • Bufferbloat.net (Cerowrt)
  • SIMET Box, developed by NIC.br, is OpenWrt-based[59]
  • IETF IPv6 integration projects HIPnet and HomeNet are OpenWrt-based

Derivatives

  • AREDN – The Amateur Radio Emergency Data Network uses a firmware based on OpenWrt: GitHub Project
  • CeroWrt – with a purpose to complement the debloat-testing kernel tree and provide a platform for real-world testing of bufferbloat fixes[60][61]
  • Coova chilli – OpenWrt-based with focus on wireless hotspots, a fork of chillifire with focus on wireless hotspot management
  • Flukso – Wireless sensor nodes using an Atheros AR2317 chipset running a patched OpenWrt OS for communication. Sources and hardware schematics available on GitHub.
  • Fon – OpenWrt-based wireless routers acting as hotspots. Sources and toolchain available on fonosfera.org
  • Gargoyle – a web interface for OpenWrt with a strong emphasis on usability that later forked into a separate distribution
  • Gluon – Framework for building OpenWrt-based firmwares fitted for mesh network deployment: GitHub Project
  • libreCMC – OpenWrt-based distribution which excludes non-free software or binary blobs, endorsed by the Free Software Foundation[62]
  • Linino – OpenWrt-based distribution for the MIPS-based Arduino Yùn: GitHub Project
  • Midge Linux – an OpenWrt-based distribution for devices based on Infineon Technologies ADM-5120 SoCs, such as Edimax BR-6104K and BR-6104KP.
  • OpenSAN – iSCSI target Storage Area Network realization.
  • PacketProtector – OpenWrt-based security distribution that includes IDS, IPS, VPN, and web antivirus capabilities. Packages included Snort, Snort-inline, FreeRADIUS, OpenVPN, DansGuardian and ClamAV. These tools were accessible via the old web GUI management interface of OpenWrt, called X-Wrt or webif^2. Project ended on June 7, 2012.[63]
  • Qualcomm's QCA Software Development Kit (QSDK) which is being used as a development basis by many OEMs is an OpenWrt derivative
  • The Turris Omnia and Turris MOX routers run on an OpenWrt derivative
  • Ubiquiti's wireless router firmwares are based on OpenWrt
  • Diverse grassroots projects for wireless community networks, including Freifunk, Libre-Mesh and qMp
  • JUCIWRT – a modern distribution using the JUCI webgui that later became an OpenWRT feed instead. The source code for JUCI is available at https://github.com/mkschreder/juci and is still usable by installing openwrt feed found at https://github.com/mkschreder/juci-openwrt-feed
  • RutOS – an operating system for all Teltonika routers and based on OpenWRT. The source code for RutOS is available at https://wiki.teltonika-networks.com/view/GPL.

See also

References

  1. ^ "OpenWrt 19.07.5 - Stable Release - May 2020".
  2. ^ "LuCI Translation Portal". September 1, 2004. Archived from the original on November 19, 2010. Retrieved December 31, 2010.
  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. ^ "Release Notes Backfire 10.03". openwrt.org. April 7, 2010. Retrieved April 26, 2013.
  13. ^ "Release Notes Attitude Adjustment 12.09". openwrt.org. April 25, 2013. Archived from the original on August 8, 2013. Retrieved April 26, 2013.
  14. ^ "OpenWrt BarrierBreaker 14.07". openwrt.org. October 2014. Archived from the original on October 6, 2014. Retrieved August 15, 2014.
  15. ^ "kernel: update to 3.10.49". dev.archive.openwrt.org. July 20, 2014.
  16. ^ "OpenWrt Project: Freescale i.MX". openwrt.org. Retrieved July 16, 2018.
  17. ^ "OpenWrt Chaos Calmer 15.05". openwrt.org. September 2015.
  18. ^ "[OpenWrt-Devel] Chaos Calmer 15.05-rc3". July 16, 2015. Archived from the original on September 28, 2015. Retrieved July 25, 2015.
  19. ^ a b "Chaos Calmer 15.05.1". March 16, 2016. Archived from the original on March 24, 2016. Retrieved March 21, 2016.
  20. ^ "v17.01.7 Tag". July 15, 2018. Retrieved November 23, 2019.
  21. ^ "LEDE Project Releases". Retrieved August 8, 2018.
  22. ^ "OpenWrt/LEDE 17.01.7 - Seventh Service Release - June 2019". June 20, 2019. Retrieved November 23, 2019.
  23. ^ "[OpenWrt-Devel] OpenWrt switches to musl by default". June 16, 2015. Archived from the original on June 30, 2015. Retrieved June 27, 2015.
  24. ^ https://openwrt.org/releases/19.07/notes-19.07.0
  25. ^ https://openwrt.org/releases/19.07/notes-19.07.1
  26. ^ https://openwrt.org/releases/19.07/notes-19.07.2
  27. ^ https://openwrt.org/releases/19.07/notes-19.07.3
  28. ^ "Lua Configuration Interface: /modules/luci-base/po". May 10, 2017. Archived from the original on September 26, 2017. Retrieved May 14, 2017.
  29. ^ "LEDE Source Repository: /target/Config.in". March 30, 2017. Archived from the original on September 26, 2017. Retrieved May 14, 2017.
  30. ^ Larabel, Michael (May 14, 2017). "OpenWRT Gets Forked By Some Of Its Own Developers As LEDE Project". Phoronix. Retrieved May 3, 2016.
  31. ^ a b Willis, Nathan (May 11, 2016). "LEDE and OpenWrt". LWN.net. Retrieved May 14, 2017.
  32. ^ Chirgwin, Richard (May 5, 2016). "Router hackers reach for the fork: LEDE splits from OpenWRT". The Register. Retrieved May 14, 2017.
  33. ^ Grüner, Sebastian (May 5, 2016). "OpenWRT-Kernentwickler starten eigenen Fork". golem.de (in German). Retrieved May 14, 2017.
  34. ^ Ahlers, Ernst (May 4, 2016). "Router-Firmware: LEDE als offenere OpenWRT-Alternative" (in German). Heise Online. Retrieved May 14, 2017.
  35. ^ Sharwood, Simon (May 10, 2017). "OpenWRT and LEDE agree on Linux-for-routers peace plan". theregister.co.uk. Retrieved August 31, 2017.
  36. ^ 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.
  37. ^ Wich, Jo-Philipp (January 2, 2018). "Announcing the OpenWrt/LEDE merge". LEDE Project Forum. Retrieved January 10, 2018.
  38. ^ "OpenWrt Project: OpenWrt 18.06". openwrt.org. Retrieved November 2, 2018.
  39. ^ https://lede-project.org/releases/start LEDE Release Builds
  40. ^ "LEDE Project: LEDE 17.01.0 - First Stable Release - February 2017". lede-project.org. Retrieved October 20, 2017.
  41. ^ "LEDE Project: LEDE 17.01.1 - First Service Release - April 2017". lede-project.org. Retrieved October 20, 2017.
  42. ^ "LEDE Project: LEDE 17.01.2 - Second Service Release - June 2017". lede-project.org. Retrieved October 20, 2017.
  43. ^ "LEDE Project: LEDE 17.01.3 - Third Service Release - October 2017". lede-project.org. Retrieved October 20, 2017.
  44. ^ "LEDE Project: LEDE 17.01.4 - Fourth Service Release - October 2017". lede-project.org. Retrieved October 20, 2017.
  45. ^ "OpenWrt/LEDE 17.01.5 - Fifth Service Release - July 2018". lede-project.org. Retrieved July 20, 2018.
  46. ^ "OpenWrt/LEDE 17.01.6 - Sixth Service Release - September 2018". lede-project.org. Retrieved November 2, 2018.
  47. ^ "The OpenWrt Flash Layout". OpenWrt Project. Retrieved July 7, 2018.
  48. ^ Corbet, Jonathan (June 15, 2011). "Debating overlayfs". LWN.net. Retrieved July 7, 2018.
  49. ^ "The UCI System". OpenWrt Project. Retrieved July 8, 2018.
  50. ^ "29C3: ISP's black box". events.ccc.de. January 19, 2013.
  51. ^ "kernel: add codel and fq_codel to generic 3.3 patch set". dev.archive.openwrt.org. May 16, 2012. Retrieved July 2, 2018.
  52. ^ a b c "OpenWrt Buildroot – About". openwrt.org. Retrieved October 21, 2013.
  53. ^ "OpenWrt Buildroot - Usage and documentation". openwrt.org. January 8, 2006. Archived from the original on October 21, 2013. Retrieved October 21, 2013.
  54. ^ a b Tao Jin (February 13, 2012). "OpenWrt Development Guide" (PDF). Wireless Networks Lab, CCIS, NEU. Retrieved October 21, 2013.
  55. ^ "Creating packages". openwrt.org. Retrieved October 21, 2013.
  56. ^ "OpenWrt Project: Table of Hardware". openwrt.org. Retrieved July 2, 2018.
  57. ^ "OpenWrt Project: Buyers' Guide". openwrt.org. Retrieved July 2, 2018.
  58. ^ https://openwrt.org/supported_devices/432_warning
  59. ^ "Simet Box". Retrieved September 14, 2017.
  60. ^ "CeroWrt Wiki". Retrieved September 16, 2015.
  61. ^ "ANNOUNCE: debloat-testing kernel git tree". LWN.net. Retrieved February 13, 2014.
  62. ^ "Free Software Foundation adds libreCMC to its list of endorsed distributions". FSF.org. September 4, 2014. Retrieved December 21, 2014.
  63. ^ ""closing time" message from author on PacketProtector forum". Archived from the original on April 21, 2013.