前面我们将项目环境已经搭建并编译输出了升级文件,下面我们将对开发板的使用接口进行介绍,并介绍每个模块的升级命令。
1、硬件说明
openwrt-one开发板拆开之后如下:
前置说明:
- 开发板设计了nor和nand双flash机制,正常的产品只会有nand flash,但是开发板为了避免用户自行开发过程将nand flash固件升坏变砖,设置了nor flash用来救系统使用。
- WAN口集成了POE供电模式,也就是说我们可以使用POE交换机直接给WAN口即供电又提供网络,可以不用再插入电源数据线。
- 开发板只有一个lan口,没有使用switch芯片扩展,正常的产品会加MT7531进行扩展
- 开发板默认串口和ssh都是开启的。
2、nand flash下升级
将启动方式拨到上面,通过NAND启动,然后上电。接串口或者ssh进入openwrt后台,如下:
BusyBox v1.36.1 (2025-03-09 16:28:50 UTC) built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt 24.10-SNAPSHOT, r28533-2b0cce92ae
-----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:~#
root@OpenWrt:~#
更多的时候我们是对系统功能进行开发,所以系统升级最频繁,命令如下:
系统升级:
sysupgrade /tmp/openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb
升级系统的同时恢复出厂设置:
sysupgrade -n /tmp/openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb
如果改动到uboot的内容,需要升级uboot/fip的时候,我们需要在uboot下升级。
重启上电启动,到uboot倒计时的时候,通过输入对应的数字选择要升级的固件类型,选项如下:
( ( ( OpenWrt ) ) ) [SPI-NAND] U-Boot 2024.10-OpenWrt-r28533-2b0cce92ae (Mar 09 2025 - 16:28:50 +0000
1. Run default boot command.
2. Boot system via TFTP.
3. Boot production system from NAND.
4. Boot recovery system from NAND.
5. Load production system via TFTP then write to NAND.
6. Load recovery system via TFTP then write to NAND.
7. Load BL31+U-Boot FIP via TFTP then write to NAND.
8. Load BL2 preloader via TFTP then write to NAND.
9. Reboot.
a. Reset all settings to factory defaults.
0. Exit
Press UP/DOWN to move, ENTER to select, ESC to quit
可以看到我们选择7就是升级fip固件,也就是编译后生成的openwrt-mediatek-filogic-openwrt_one-snand-bl31-uboot.fip
文件就是。
在uboot模式下升级的话,有以下准备:
- 电脑需要使用网线接路由器LAN口
- 电脑网卡IP设置成静态IP:192.168.11.23
- 打开tftpd64.exe工具,将路径选择到
openwrt-mediatek-filogic-openwrt_one-snand-bl31-uboot.fip
文件存放的目录 - 之后启动开发板,当运行到选择目录时,按下7,进行fip固件升级
同样的,我们在uboot下可以升级,preloader还有系统,只是选择的数字不一样。
nand flash对应的升级文件如下:
- preloader:openwrt-mediatek-filogic-openwrt_one-snand-preloader.bin
- fip:openwrt-mediatek-filogic-openwrt_one-snand-bl31-uboot.fip
- system:openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb
3、nor flash下升级
将启动方式拨到下面,通过NOR启动,然后上电。
在NOR FLASH的uboot模式下,与NAND FLASH的类似,如下:
( ( ( OpenWrt ) ) ) [SPI-NOR] U-Boot 2024.10-OpenWrt-r28161-ea17e958b9 (Dec 03 2024 - 11:41:08 +0000)
1. Run default boot command.
2. Boot system via TFTP.
3. Unlock NOR. (Make sure the NOR/WP jumper is populated)
4. Load BL31+U-Boot FIP via TFTP then write to NOR.
5. Load BL2 preloader via TFTP then write to NOR.
6. Load recovery system via TFTP then write to NOR.
7. Lock NOR. (Remove jumper afterwards)
8. Reboot.
0. Exit
Press UP/DOWN to move, ENTER to select, ESC to quit
可以在uboot下对NOR FLASH本身的preloader、fip、system进行升级,方式与上面的一样。
nor flash对应的升级文件如下:
- preloader:openwrt-mediatek-filogic-openwrt_one-nor-preloader.bin
- fip:openwrt-mediatek-filogic-openwrt_one-nor-bl31-uboot.fip
- system:openwrt-mediatek-filogic-openwrt_one-initramfs.itb
如果我们开发nand flash的时候,不小心搞成砖了,这时候也可以通过nor flash来救活
nor flash启动完成后,进入系统,查看mtd分区可以看到如下分区,具体定义在dts里面,后面修改时再介绍。
root@OpenWrt:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00010000 "bl2-nor"
mtd1: 000c0000 00010000 "factory"
mtd2: 00080000 00010000 "fip-nor"
mtd3: 00c80000 00010000 "recovery"
mtd4: 00100000 00020000 "bl2"
mtd5: 0ff00000 00020000 "ubi"
前面mtd0-3的分区都是nor flash的,后面的mtd4、mtd5分区是nand flash的。
- bl2:就是preloader,对应的升级文件为openwrt-mediatek-filogic-openwrt_one-snand-preloader.bin
- ubi:是一个集成了fip和system的ubi分区,对应的升级文件为openwrt-mediatek-filogic-openwrt_one-factory.ubi。
所以可以通过如下命令恢复nand flash的内容
spi下更新nand bl2
# 使用 mtd 工具写入
mtd -e /dev/mtd4 write /tmp/openwrt-mediatek-filogic-openwrt_one-snand-preloader.bin /dev/mtd4
# 验证
mtd verify /tmp/openwrt-mediatek-filogic-openwrt_one-snand-preloader.bin /dev/mtd4
spi下更新ubi格式的fip+sysupgrade
# 使用 mtd 工具写入
mtd -e /dev/mtd5 write /tmp/openwrt-mediatek-filogic-openwrt_one-factory.ubi /dev/mtd5
# 验证
mtd verify /tmp/openwrt-mediatek-filogic-openwrt_one-factory.ubi /dev/mtd5
写入成功后,将拨码再切换nand flash正常启动nand系统。
官方还支持usb升级之类的,但是个人觉得没有必要学习,毕竟不是常用的方式,而且还要格式化U盘,制作镜像;上面的方法已经够用了。
https://openwrt.org/toh/openwrt/one