备忘录:升级 OpenWrt 的步骤
本文最后更新于:2023年1月11日 晚上
本人家中使用的主路由器是新路由 3 (Newifi D2),刷 Breed 后安装了原版的 OpenWrt 系统。每次都跟随版本步伐,升级到最新版本的 OpenWrt。
之前将 OpenWrt 从 19.07.9 升级到 21.02 时,由于 OpenWrt 升级了 Linux 内核,swconfig
被切换成 DSA (Distributed Switch Architecture),交换机端口和 VLAN 的设置发生了巨大的改变,所以不得已在升级的时候没有选择 保持设置并保留当前配置
。升级完成了花费了大量的时间重新进行配置。
所以,我决定趁着这次将 OpenWrt 从 21.02.3 升级到 22.03.2 的机会,把升级过程记录下来。
一、下载镜像文件
在 [OpenWrt Wiki] Table of Hardware 中找到自己的设备。新路由 3 的设备页面为 [OpenWrt Wiki] Techdata: D-Team Newifi D2 (Newifi3)。在 Dataentry
中找到 Firmware OpenWrt Upgrade URL
,后面就是升级固件的下载链接。
OpenWrt.org 提供了 Firmware Selector 帮助用户找到设备对应的固件,新路由最新固件的页面
二、升级固件
下载 sysupgrade.bin
升级固件后,打开浏览器访问路由器 OpenWrt 管理页面,点击 “系统 System” - “备份与升级 Backup / Flash Firmware”,点击 “刷写新的固件 Flash new firmware image” 下面的 “刷写固件 Flash image…”
点击 “浏览 Browse…” 选择下载的 sysupgrade.bin
文件,然后 “上传 Upload”。

图1 刷写固件
刷写固件之前一定要记得核对上传镜像的 SHA256
是否与 Firmware Selector 页面上显示的 sha256sum
一致,以免路由器变砖。
刷写新固件之前一定要记得在 “系统 System” - “备份与升级 Backup / Flash Firmware” 中将路由器 “备份 Backup” 一遍。
三、修改 OPKG 源
使用 清华大学开源软件镜像站 或者 中国科学技术大学镜像站 可以加速 Openwrt 的软件下载。在 “系统 System” - “软件包 Software” 中“配置 Configure OPKG…)” 将 URL 中的 downloads.openwrt.org
这部分替换为 mirrors.ustc.edu.cn/openwrt
即可。
点击 “更新列表 Update lists…”,更新软件列表。
四、安装软件包
【1】 安装软件的汉化包可以直接安装其对应的软件,搜索 zh-cn
关键词,安装以下汉化包。
- luci-i18n-base-zh-cn
- luci-i18n-firewall-zh-cn
- luci-i18n-mwan3-zh-cn
- luci-i18n-nlbwmon-zh-cn
- luci-i18n-opkg-zh-cn
- luci-i18n-wireguard-zh-cn
- luci-i18n-wol-zh-cn
1 |
|
【2】 为了支持 U 盘扩展,需要安装 kmod-fs-ext4、block-mount、kmod-usb-storage,然后重启路由器(“系统 System” - “重启 Reboot” )。
1 |
|
【3】安装 luci-theme-argon 美化 Luci 界面
【4】安装 luci-app-adguardhome 提供屏蔽的家庭 DNS 服务
如果点击 “服务 Service” - “AdGuardHome” 时出现以下错误信息:
1 |
|
需要安装 luci-compat 兼容库
开启 AdGuardHome 的自启动,“系统” - “启动项” 中找到 AdguardHome 将 “已禁用” 切换为 “已启用”。
在 “服务 Service” - “AdGuardHome” 中更新 AdGuardHome 的核心版本:
(1) 在 “升级用的下载链接” 中更改对应核心的版本号,例如 v0.107.21
:
1 |
|
(2) 在更新核心时出现下面的错误信息:
1 |
|
需要 SSH 到路由器主机,将 /usr/share/AdGuardHome/update_core.sh 文件中第 168 行 wget-ssl
修改为 wget
,之后点击 “更新核心” 就可以正常更新核心版本了。