OpenWRT 的官網(wǎng)只有詳細的小米路由器 3G(第一代,使用的是 NAND Flash 并帶 USB 接口) 和 小米路由器 4A 千兆版(硬件和小米路由器 3G V2相同但 bootrom 不一樣)詳細的刷機教程: MIR 3G 和 mi_router_4a_gigabit_edition。
我試著使用 4A 千兆版刷 3G V2后(使用命令:mtd -e OS1 -r write openwrt.bin OS1),直接變磚,串口提示:
## Booting image at bc180000 ...
Image Name: MIPS OpenWrt Linux-6.6.73
Image Type: MIPS Linux Kernel Image (uncompressed)
Data Size: 3180869 Bytes = 3 MB
Load Address: 80001000
Entry Point: 80001000
Verifying Checksum ... Bad Data CRC
我試著使用另一種方式,將 uboot 的環(huán)境變量進行修改,將 uboot 的串口交互開啟(環(huán)境變量中的 boot_wait
off 修改成 on)。然后使用 uboot 啟動 initramfs 后,進入 web 網(wǎng)頁升級。這樣刷 OpenWRT 可以成功。
下面是步驟:
- 使用 OpenWRTInvasion 工具,使得路由器的 telent 和 ftp 生效(詳見:mi_router_4a_gigabit_edition)
- 使用命令 dd if=/dev/mtdXXX of=/var/mtd.bin (mtdXXX 需要通過命令 cat /proc/mtd 找到 Config 區(qū),記得是 mtd2)
- 找一臺串口 uboot 交互可用的路由器,將 mtd.bin 文件導入到其 uboot 環(huán)境區(qū)(注意做好原 uboot 環(huán)境變量的備份)
- 修改環(huán)境變量中的 boot_wait 從 off 修改為 on
- 導出文件,文件名為mtd2_mod.bin
- 將 mtd2_mod.bin 燒錄回 3G V2 路由器
mtd -e Config -r write mtd2_mod.bin Config
- 此時 3G V2 的 uboot 串口交互可打開,通過命令 1 啟動下載 initramfs,在 web 網(wǎng)頁中升級即可。