OpenWrt版本更新录(202x)
2025-02-07 16:44:44 阿炯

OpenWrt是面向嵌入式设备(通常是无线路由器)的开源 Linux 发行版系统。

本文系从OpenWrt的产品主页分离出来的,专门用于记录该软件的更新,截止到2029年12月31日。

最新版本:24
v24.10 已于2025年2月上旬正式发布首个稳定版,距离上一个版本(v23.05.0)已经过去了一年又四个月,期间包括 5400 多次更新提交,初步支持 Wi-Fi 7。

v24.10 的新特性包括:
支持逾 1970 款设备,比 23.05.0 增加了 100 多款;
Linux 内核从 5.15 升级到 6.6;
包管理器仍然是 OPKG,APK 包尚不支持,预计下个版本才会切换到 APK;
加密库 mbedtls 更新到 3.6;
改进了 WiFi6 (802.11ax) 支持,初步支持 WiFi7 (802.11be);
改进了 Link Layer Discovery Protocol (LLDP) 支持,等等。

支持 1970 多款设备,比 23.05.0 新增了 100 多款,包括第一方的 OpenWrt One 路由器。其 Linux 内核已经从 5.15 升级到 6.6;默认情况下将支持 TLS 1.3 协议;包管理器仍然是 OPKG,APK 包尚不支持(仅主分支已改为 APK);加密库 mbedtls 更新到 3.6。

新版本改进了 Wi-Fi6 (802.11ax) 支持;初步支持 WiFi7 (802.11be);改进了 Link Layer Discovery Protocol (LLDP) 支持。

对于 Docker 用户来说,新版本为具有大容量闪存的设备上的所有文件系统激活 POSIX 访问控制列表和文件系统安全属性。

值得一提的是,小米和 TP-Link 等部分路由器还有少量兼容问题,例如小米 AX3000T 等配备 Airoha 开关的设备其开关 LED 功能无效、TP-LINK Archer C60 v1 等配备 ath10k 芯片的设备无法开启 5GHz Wi-Fi 网络。

用户可以通过 OpenWrt 固件选择器下载固件镜像,也可以直接从下载服务器下载固件镜像。

v24.10 的亮点:
常规变更: 许多组件升级到新版本,例如 Linux 内核从 5.15 版本升级到 6.6 版本。
默认镜像中支持 TLS 1.3。mbedtls 更新到 3.6 版本,其中包括对 TLS 1.3 的支持。
在具有大闪存的设备上,为所有文件系统激活 POSIX 访问控制列表和文件系统安全属性。这是 Docker 现在所需要的。
这已针对所有不具有 small_flash 功能标志的目标激活。small_flash 针对 ath79/tiny、bcm47xx/legacy、lantiq/ase、lantiq/xrx200_legacy、lantiq/xway_legacy、ramips/mt76x8、ramips/rt288x、ramips/rt305x 和 ramips/rt3883 目标设置。
在具有大闪存的设备上激活对 Multipath TCP 的内核支持。
改进了对 WiFi 6 (802.11ax) 的支持,并初步支持了 WiFi 7 (802.11be)。

目前 OpenWrt 尚未支持很多 Wifi 7 设备。 改进了链路层发现协议 (LLDP) 的支持。v24.10 仅使用 OPKG,不支持 APK 包。只有主分支更改为 APK。
新增大量设备支持:v24.10 支持超过 1970 种设备。除了 v23.05 支持的设备外,还增加了对 100 多种新设备的支持。增加了对 OpenWrt One 的支持。

目标变更:为 AllWinner D1 RISC-V SoC 添加了 d1 目标。为 Intel XScale IXP4xx SoC 添加了 ixp4xx 目标。为带有龙芯 LoongArch CPU 的 SoC 添加了 loongarch64 目标。 为 StarFive JH71x0 (7100/7110) SoC 添加了 starfive 目标。为意法半导体 STM32 SoC 添加了 stm32 目标。

将 ipq807x 目标重命名为 qualcommax。移除了 ath25 目标。它支持 Atheros ieee80211g 设备,最大 RAM 为 16MB。移除了 bcm63xx 目标。它支持一些 Broadcom DSL MIPS SoC,并被 bmips 目标取代。Broadcom DSL 本身从未被支持。移除了 octeontx 目标。它支持基于 Octeon-TX CN80XX/CN81XX 的板卡。移除了 oxnas 目标。它支持 PLXTECH/Oxford NAS782x/OX8xx。

构建了用于 NXP QorIQ (PowerPC) SoC 的 qoriq 目标。将用于 Qualcomm Atheros IPQ806X SoC 的 ipq806x 目标转换为 DSA。增加了对 Airoha AN8855 DSA 交换机的支持(小米 AX3000T 在同一版本中同时搭载了联发科和 Airoha 交换机)。核心组件更新:hostapd master 快照,dnsmasq 2.90;dropbear 2024.86 cfg80211/mac80211,来自内核 6.12.6 所有目标的内核版本均为 6.6.73 musl libc 1.2.5 glibc 2.38 gcc 13.3.0 binutils 2.42。

v24.10.0 中的核心组件版本如下:更新的工具链、更新的 Linux 内核、网络等方面。

如何升级到 v24.10:可以使用 sysupgrade 将设备从 23.05 升级到 24.10,在大多数情况下配置将保留。对于 v24.10 稳定系列内部的升级,例如从 v24.10 版本候选版升级,则支持 Attended Sysupgrade,它允许保留已安装的软件包。

官方不支持从 22.03 升级到 24.10。由于切换到 DSA,因此对于 Qualcomm Atheros IPQ806X SoC 的 ipq806x 目标的用户,没有配置迁移路径。必须在不保存配置的情况下升级。

 “镜像版本不匹配。镜像 1.1 设备 1.0 请在升级期间擦除配置(需要强制)或重新安装。配置无法从 swconfig 迁移到 DSA 镜像检查失败” 运行 OpenWrt 23.05 或更早版本的 Linksys E8450(又名 Belkin RT3200)的用户需要运行安装程序版本 v1.1.3 或更高版本,以便为 24.10 版本重新组织 UBI 布局。OpenWrt wiki 中有详细说明。不使用安装程序进行更新会损坏设备。Sysupgrade 会在执行不兼容的升级之前显示警告。运行 OpenWrt v23.05 或更早版本的 Xiaomi AX3200(又名 Redmi AX6S)的用户必须按照 wiki 中描述的特殊升级程序进行操作。这将增加 OpenWrt 可用的闪存。不按照 wiki 中的指南进行更新会损坏设备。Sysupgrade 会在执行不兼容的升级之前显示警告。由于分区布局发生变化,运行 v23.05 或更早版本的 Zyxel GS1900 系列交换机用户必须使用 initramfs 镜像执行新的恢复出厂设置安装。Sysupgrade 会在执行不兼容的升级之前显示警告,并且无法进行升级。
 
已知问题:Airoha AN8855 的 LED 尚未受支持。像小米 AX3000T 这样带有 Airoha 交换机的设备,其交换机 LED 将关闭。此问题将在即将推出的 OpenWrt SNAPSHOT 和 v24.10 次要版本中解决。 某些使用 ath10k 芯片组的设备上的 5GHz WiFi 无法正常工作。受影响的型号包括 TP-Link Archer C60 v1、TP-Link Archer C6 v2,以及其他可能的型号。某些 MT7530 交换机上的以太网链路不稳定。遇到以太网连接不稳定的用户应禁用节能以太网 (EEE) 作为解决方法。启动时 ath10k-ct 驱动程序中的内核警告。
 
警告 WARNING: CPU: 3 PID: 1695 at backports-6.9.9/net/mac80211/main.c:270 ieee80211_do_open+0x4e8/0x5e0 [mac80211] 在启动期间出现,但无害,可以忽略。

最新版本:25
v25.12 包含了 v24.10 版本分支以来超过 4300 次提交,并且已经开发了一年多。总体变动:

本次大版本升级,硬件要求没有发生重大变化,OpenWrt 24.10 支持的大多数设备也应该可以与 OpenWrt 25.12 配合使用。主要的变化如下:
Switch package manager from opkg to apk//即包管理器从原来的opkg切换到了apk(Alpine Package Keeper)
Integration of attended Sysupgrade into default LuCI installation //LuCI默认安装了ASU插件
The shell history is stored in RAM till the next reboot // shell 历史记录会存储在 RAM 中,直到下次重启。
Integration of video feed // 默认集成了video源,这是一个 OpenWrt 软件包源,其中包含视频/图形(比 curses 更高级)相关的库和应用程序,这些库和应用程序不被认为是所谓的“核心”软件包。
Wi-Fi scripts converted to ucode // Wi-Fi脚本切换为ucode实现(以前是shell)

下面再分别对上述调整做一下简单的说明。

包管理器从opkg到apk
OpenWrt 已从传统的opkg包管理器过渡到apk(Alpine Package Keeper)。此变更带来了以下几个优势:
apk 仍在维护中,OpenWrt 的 opkg 分支已停止维护。
apk 支持 opkg 的大部分功能,只有极少数软件包名称发生了变化。apk 的命令行参数与 opkg 的命令行参数不同。
对于迁移现有系统的用户,官方提供了 opkg 到 apk 的转换指南,以简化过渡过程并梳理常见的工作流程。

集成attended sysupgrade (ASU)
现 attended.sysupgrade LuCI 应用程序已默认安装。ASU 允许设备:
升级到新的 OpenWrt 固件版本
使用所有已安装的软件包自动重建固件镜像
在升级过程中保留系统配置
这极大地简化了升级过程:只需在 LuCI 中点击几下,稍等片刻,即可构建并安装自定义固件镜像,无需人工干预。

Shell历史记录得以保留
现 Shell 命令历史记录会存储在RAM-backed filesystem中,从而实现跨会话保留。优势:
登录后命令历史记录不再丢失
默认情况下,不会对闪存进行不必要的写入
对于偏好持久化历史记录存储的用户,可以通过编辑以下文件来更改此行为:/etc/profile.d/busybox-history-file.sh

集成video源
默认集成了video源,这是一个 OpenWrt 软件包源,其中包含视频/图形(比 curses 更高级)相关的库和应用程序,这些库和应用程序不被认为是所谓的“核心”软件包。OpenWrt video feed与 Qt5 和 UI 应用程序默认集成。

拥抱ucode脚本
ucode 是一种极简的通用脚本语言,类似于 ECMA 脚本。它可以作为独立的解释器封装到主机应用程序或其他系统中。虽然 OpenWrt 主要使用 POSIX shell 和 Lua 作为其系统脚本语言,但为了满足新防火墙实现的需求,必须采用一种新的方法。具体来说,这涉及到需要有效地处理 JSON 数据、管理数组和字典等复杂数据结构,以及与 OpenWrt 的 ubus 消息系统无缝集成。

其实ucode从v22.03版本开始就已经引入到了正式版本中,并且许多包已经在逐步用ucode替代实现,目前最彻底的应该是luci项目;只是恰巧,从v25.10版本开始,我们的wifi脚本也要替换成ucode了。所以至少需要具备读懂ucode代码的能力,不然以后分析一些OpenWrt中的软件业务工作原理时可能会比较吃力。

新增硬件支持
v25.12 支持超过 2180 种设备。在 v24.10 已支持的设备基础上,新增了对 160 多种设备的支持。主要包括:
Extend realtek target with support for more switch SoCs like 10G Ethernet switches.
Extend qualcommax target with support for ipq50xx and ipq60xx SoCs.
Added siflower target for Siflower SF21A6826/SF21H8898 SoCs
Added sunxi/arm926ejs subtarget for Allwinner F1C100/200s SoCs

本次对新硬件支持的比较大的变化就是对Realtek的交换机SoC支持更多款型,大家可以考虑用OpenWrt玩转各式各样的高端管理型交换机了;可能更吸引人的是终于支持高通主流的IPQ50XX/IPQ60XX这些Wi-Fi 6芯片方案了。