babylab的头像-勇爱设计Netwrok
这家伙很懒,什么都没有写...
1个月前
4A千兆V1从无限重启到只能进入bread,然后成功了 增加一个变量:变量名:autoboot.command,值为:boot flash 0x180000 :所以现在判断基本明确 不是你不会刷,也不是单纯固件坏了,而是: 你的 Breed Web 刷机页面布局选项不适合这台 4A 千兆版当前方案 启动地址是 0x180000 但 Web 刷机只能按 0x50000 / 0x60000 / 0x40000 ... 这种模板写 结果就是 写入位置和启动位置不一致 现在最稳的思路 你接下来别继续反复换 OpenWrt 文件了,优先走这两个方案之一。 方案一:用 Breed 命令行手动写入 0x180000 ### **按你现在的情况,最稳的是用 Breed 命令行把固件手动写到 `0x180000`。** 下面我按你当前环境,给你一份尽量直白的步骤。你先完整看一遍,再动手。 ### **先说风险点** 这一步比网页上传风险高一点,但你现在还能进 Breed,所以总体还在可救范围内。 操作时注意三件事: 1. **全程用网线** 2. **不要断电** 3. **不要写错地址** 你这次只动 **固件区**,不动: - Bootloader - EEPROM ### **你的当前前提** 从你前面的信息看,你现在基本满足条件: - 路由器是 **小米路由器 4A 千兆版 MT7621** - 电脑地址是 **192.168.1.3** - Breed 能打开 - 已设置: ```text autoboot.command = boot flash 0x180000 ``` ### **第 1 步:把固件放到电脑上并开本地 HTTP 服务** 你要准备这个文件: ```text openwrt-24.10.0-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin ``` 把它放到一个单独文件夹,比如: ```text D:\r4a ``` 然后在这个文件夹里开一个最简单的 HTTP 服务。 #### **如果你电脑装了 Python** 在这个目录打开命令行,执行: ```bash python -m http.server 80 ``` 如果这个不行,再试: ```bash py -m http.server 80 ``` 如果 80 端口提示权限或占用问题,可以用 8000: ```bash python -m http.server 8000 ``` 或者: ```bash py -m http.server 8000 ``` 开起来以后,你电脑上的下载地址就会像这样: 如果是 80 端口: ```text http://192.168.1.3/openwrt-24.10.0-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin ``` 如果是 8000 端口: ```text http://192.168.1.3:8000/openwrt-24.10.0-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin ``` #### **先验证一下** 你可以先在自己电脑浏览器里打开这个地址,看看是不是能下载这个 `.bin` 文件。 如果浏览器能下,说明这一步 OK。 ### **第 2 步:进入 Breed 命令行** 不同 Breed 版本进入命令行的方式略有差异,常见是 **telnet 到 192.168.1.1**。 你在 Windows 里可以这样试。 先启用 Telnet 客户端,然后打开命令提示符,输入: ```cmd telnet 192.168.1.1 ``` 如果能进去,会出现 Breed 命令行提示。 如果提示 telnet 不是内部命令,先启用 Windows 的 Telnet 功能: 控制面板 → 程序 → 启用或关闭 Windows 功能 → 勾选 **Telnet 客户端** ### **第 3 步:在 Breed 里下载固件到内存** 如果你 HTTP 服务开在 80 端口,执行: ```text wget http://192.168.1.3/openwrt-24.10.0-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin ``` 如果你开在 8000 端口,执行: ```text wget http://192.168.1.3:8000/openwrt-24.10.0-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin ``` 正常情况下,Breed 会显示类似: ```text Length: xxxxxxxx Saving to address 0x80001000 ``` 这里你重点记住两样东西: 1. **文件大小** 2. **保存地址**,通常像这样: ```text 0x80001000 ``` 如果你看到的保存地址不是 `0x80001000`,后面的写入命令就要以你实际看到的地址为准。 ### **第 4 步:擦除固件区** 你前面看到文件大约 6.88MB,换算后大概不到 `0x700000`。为了保险,擦除范围可以给大一些,但不要乱大到碰别的关键区。 一般按你这台机子的情况,可以先用: ```text flash erase 0x180000 0x800000 ``` 含义是: - 从 `0x180000` 开始擦 - 擦除 `0x800000` 大小 这通常够覆盖你的 OpenWrt 固件区。 ### **第 5 步:把固件写入 `0x180000`** 如果刚才 `wget` 显示: - 固件保存地址是 `0x80001000` - 文件大小你自己实际看到是多少 那写入命令格式是: ```text flash write 0x180000 0x80001000 文件大小 ``` 比如,如果实际大小是你前面截图里的: ```text 7209584 ``` 把它换成十六进制大概是 `0x6e0000` 左右。最稳妥的方法是**按 wget 输出里的十六进制大小来填**,不要自己瞎估。 例如如果 wget 结果显示: ```text Length: 7209584/0x6e0000 Saving to address 0x80001000 ``` 那就写: ```text flash write 0x180000 0x80001000 0x6e0000 ``` 如果显示的是别的长度,比如: ```text Length: 7209584/0x6e0000 ``` 就以它显示的十六进制数为准。 ### **第 6 步:手动启动** 写完后,先不要急着重启整机,先直接尝试: ```text boot flash 0x180000 ``` 如果顺利,路由器就应该开始启动 OpenWrt。 ### **第 7 步:等待并访问后台** 等 2 到 5 分钟。 然后电脑还是保持现在网段,比如: ```text 192.168.1.3 ``` 浏览器访问: ```text http://192.168.1.1 ``` 如果出现 OpenWrt 界面,就成功了。 ### **第 8 步:确认自动启动变量** 如果已经成功进 OpenWrt,以后正常重启也要从这里启动,所以你保留这个环境变量: ```text autoboot.command = boot flash 0x180000 ``` 这个你前面已经设好了。 ### **你执行时,推荐照着这个顺序抄** 假设你 HTTP 服务用的是 8000 端口,那么大概是: ```text telnet 192.168.1.1 wget http://192.168.1.3:8000/openwrt-24.10.0-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin flash erase 0x180000 0x800000 flash write 0x180000 0x80001000 这里填wget显示的十六进制文件大小 boot flash 0x180000 ``` ### **最重要的一句** `flash write` 这条命令里,最后那个“文件大小”**一定按 wget 实际显示的十六进制值填**,不要凭感觉写。