Origin
The story begins with an ancient router called LINKSYS WRT54G, which comes from the brand LINKSYS. The brand name might sound unfamiliar, but if you search for it on JD.com, you will find many of their products, which are quite high-end. LINKSYS was founded in 1988 and was acquired by Cisco in 2003, mainly dealing with home and small business networking products. The main character we are discussing, the WRT54G, was released by this company in 2002 as an 802.11g protocol wireless router, as shown in the picture below.
In December 2002, LINKSYS released the WRT54G, which defined the form of home wireless routers. Due to cost reasons, Linux was used as the firmware instead of the expensive VxWorks. It is said that Professor Eben Moglen from Columbia Law School made an open-source request to LINKSYS based on the GPL terms, and LINKSYS, under pressure, ultimately made its implementation code open source. This move stirred a wave of interest globally, quickly attracting developers who saw an unprecedented opportunity: to utilize the powerful hardware of this router combined with the power of open-source software to create more flexible and powerful networking device firmware. The OpenWrt project was born in this context, and how popular was the WRT54G at that time? Some even published books specifically about it:
Development
The OpenWrt project was initiated in January 2004, with the first version of OpenWrt based on the LINKSYS GPL source for WRT54G and the uClibc project. Its core compilation framework is based on buildroot, and this version is known as the OpenWrt “stable release,” which is widely used, and many OpenWrt applications are based on this version. OpenWrt can be understood as the abbreviation for Open Wireless Router, and their slogan is Wireless Freedom, which you can see in the first line of the banner information when entering the device backend of the official version, for example:
BusyBox v1.33.2 (2024-03-31 08:41:38 UTC) built-in shell (ash)
_______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 21.02-SNAPSHOT, unknown -----------------------------------------------------
In early 2005, some new developers joined the team, and after several months of closed development, the team decided to release the first “experimental” version of OpenWrt. This version used a highly customized build system based on the uClibc project buildroot2. OpenWrt uses the official GNU/Linux kernel source and only adds patches for the on-chip system and network interface drivers. The developer team attempted to reimplement most proprietary code from different vendors’ GPL tarballs, and free tools (mtd) can directly write new firmware images to flash, using wireless-tools to configure wireless LAN chips, and programming switches with VLAN functionality through the proc file system.
The stable release version number starts from the year and month of creating a new stable branch, and the third number represents the service or temporary version of that branch. For example, the latest version as of now is OpenWrt 23.05.5, which was created in May 2023, and 6 Release versions have been issued (numbering starts from 0). Next, let’s briefly go through the development history of each version.
White Russian
In January 2007, the first OpenWrt version codenamed “White Russian” was released. It should be noted that White Russian is a popular cocktail, and the subsequent release names from 2007 to 2016 were all based on other cocktails, which will be displayed in the /etc/banner configuration.
This version used version number 0.9, but subsequent releases continued to use the versioning scheme without the ‘0.’ prefix, and the version number roughly depends on the release date. White Russian is no longer maintained or supported and is not recommended for any use.
Kamikaze
Between 2007 and 2010, multiple release versions codenamed Kamikaze were released, during which significant improvements were made to the build environment under the Buildroot-NG branch in August and September 2006, and it was merged into the Kamikaze main development branch in mid-October 2006, becoming the first official release of “Kamikaze”. The OpenWrt 7.x and 8.x version series were all released under the codename “Kamikaze” during 2007~2010.
Backfire
In April 2010, the first Backfire version was released, version number OpenWrt 10.03; in December 2011, a maintenance version of Backfire was released, version number OpenWrt 10.03.1.
Attitude Adjustment
On April 25, 2013, OpenWrt 12.09 was released, codenamed “Attitude Adjustment”, which marked the beginning of the dual-word naming convention, and we commonly refer to it as the “AA” version.
Barrier Breaker
In October 2014, OpenWrt 14.07 was released, codenamed “Barrier Breaker”, referred to as the “BB” version. From this version on, more and more chip manufacturers began to invest in developing SDKs based on OpenWrt, such as Qualcomm’s Wi-Fi 5 products.
Chaos Calmer
In September 2015, OpenWrt 15.05 was released, codenamed “Chaos Calmer”, referred to as the “CC” version. Subsequently, in March 2016, OpenWrt 15.05.1 patch version was released. This version may be the oldest OpenWrt version that most young developers have seen, and a representative example is that MTK’s Wi-Fi 4 and Wi-Fi 5 chip solutions used this version as the SDK baseline, with kernel 3.18.x, and relevant information is abundant.
LEDE
In February 2017, due to internal disagreements within the OpenWrt project, a brand new version codenamed LEDE (Linux Embedded Development Environment) 17.01.0 was forked from the OpenWrt mainline, with some members completely “splitting” from OpenWrt. In the subsequent year and a half, 6 releases were published; details can be found at: https://openwrt.org/releases/17.01/start
It is unnecessary to understand the ins and outs of this matter too much, as it is just a small episode for us ordinary developers. There are also related reports in China, for example:
https://www.163.com/dy/article/D0UVGJG40511CPOJ.html
In June 2018, LEDE merged back with the original OpenWrt organization, and it remains so to this day.
The LEDE version indeed brought significant improvements and gained favor from many chip manufacturers. For instance, Qualcomm and MTK’s Wi-Fi 6 chip solutions chose to base their SDK on LEDE.
New Era of OpenWrt
Since the release of the first OpenWrt 18.06 version in July 2018, up to the current OpenWrt 23.05.5 version, the OpenWrt community has been exceptionally active, with an increasing rate of version iterations and new features and technologies being introduced to meet the demands of the times. The kernel version has reached Linux 5.15, and the next version plans to use the Linux 6.0 kernel.
You can view all version release records here: https://openwrt.org/releases/start
The community’s vibrancy has driven technological innovations, allowing many new hardware to be quickly supported, which in turn encourages more manufacturers to choose OpenWrt as their code base.
In addition, device manufacturers are continuously exploring the application scenarios of OpenWrt. Besides traditional home wireless routers, many enterprise-level switches, routers, and wireless products are also based on OpenWrt to create proprietary systems. Other smart home device manufacturers are also rapidly developing products leveraging the rich software ecosystem of OpenWrt.
Conclusion
As OpenWrt has developed over the past 20 years, it remains increasingly active. Although various factors contribute to its current popularity, I believe there are several key reasons:
-
1. The convenience brought by buildroot and complete open-source nature. Buildroot reduces the difficulty for developers to set up embedded cross-compilation environments, while open-source provides motivation for developers, researchers, and hackers to delve deeper.
-
2. Unified infrastructure. OpenWrt provides a set of common infrastructure for system development, process management, and communication, such as uci, ubox, ubus, procd, etc., allowing developers to quickly develop features that can interoperate with many open-source projects based on OpenWrt.
-
3. A well-established openwrt.org community. For ordinary developers, its rich documentation encourages newcomers to spend more time engaging with it.
-
4. The collective choice of many leading chip manufacturers. More and more chip manufacturers are developing their SDKs based on OpenWrt, which deepens research investment in this area across the entire industry chain, resulting in a surge in talent recruitment demands.
While there are many various opinions available online, based on my past experiences and feelings, the above four points are sufficient to support newcomers in choosing OpenWrt as an essential skill.
Leave a Comment
Your email address will not be published. Required fields are marked *