27
2019
12

小米路由器3/3G/4通过串口(ttl)刷机

准备工作

  1. 淘宝购买:USB转TTL-CH340模块、杜邦线、排针。
    https://detail.tmall.com/item.htm?id=525204252260&spm=a1z09.2.0.0.19dc2e8doubZVx&_u=blagqs130b
    https://detail.tmall.com/item.htm?id=556440560831&spm=a1z09.2.0.0.19dc2e8doubZVx&_u=blagqs9af4&skuId=3609082827939
  2. padavan固件下载地址:https://eyun.baidu.com/s/3pLMbUqR?errno=0&errmsg=Auth Login Sucess&&bduss=&ssnerror=0&traceid=#sharelink/path=%2F2019-7-2&parent_path=%2FPadavan
    根据你的路由器型号,下载相应的版本,如:
    • 小米路由器3,下载:MI-3_3.4.3.9-099.trx
    • 小米路由器3G和小米路由器4,下载:MI-R3G_3.4.3.9-099.trx
      注:小米路由器4 和小米路由器3g的区别,就是阉割了128M内存和usb口,所以小米路由器4直接使用小米3g的版本即可。
  3. breed下载地址:https://breed.hackpascal.net/
    小米路由器3不支持刷Breed,小米路由器4使用小米路由器3G版本的breed:breed-mt7621-xiaomi-r3g.bin 2018-12-29 18:02 103K
  4. 电脑安装好TFTP软件
    MAC下一款很好用的tftp软件:http://ww2.unime.it/flr/tftpserver/TftpServer.dmg

开始干活

  1. 焊接TTL接口排针
    RX接路由器TX,TX接路由器RX,GND接GND,剩下一个不接。
    在这里插入图片描述
    在这里插入图片描述

  2. 连接好电脑、路由器、USB转TTL模块
    用网线把路由器和电脑连接起来,电脑IP设置为192.168.1.3。
    把Usb接口插入电脑,首先看看系统分配的是哪个串口号。然后配置好SecureCRT,选择这个串口设备,速率填写:115200。

  3. 通过TTL进入路由器uboot命令行
    小米路由器第一次启动时,会往uboot 配置(nvram)里写入 uart_en=0 ,这样导致uboot引导后,不接受ttl输入,只能查看,从而没法从ttl刷机了。
    解决方法:
    如果小米路由器还能正常使用,给小米路由器通电,进入路由器管理界面,选择恢复出厂设置。
    SecureCRT应该可以看到数据了,在uboot引导时候,不停按键盘 4 键(即进入uboot 命令行),如下:

    Please choose the operation: 
       1: Load system code to SDRAM via TFTP. 
       2: Load system code then write to Flash via TFTP. 
       3: Boot system code via Flash (default).
       4: Entr boot command line interface.
       7: Load Boot Loader code then write to Flash via Serial. 
       9: Load Boot Loader code then write to Flash via TFTP. 
    

    如果不成功,则看到引导原厂固件时候,会有提示擦除nvram(erase nvram),这时候果断拔电,再插上,就能成功进入 uboot命令行了
    如果还不成功,就重复以上恢复出厂设置的操作。

  4. 让uart ttl口一直有效
    进入uboot命令行以后,输入:
    setenv uart_en 1
    saveenv
    如下图:
    在这里插入图片描述

  5. 小米路由器4刷Breed
    如果你是小米路由器3,请直接跳到第11步。
    开启tftpd,把breed-mt7621-xiaomi-r3g.bin 重命名为1.bin(为了方便)
    路由器拔电,再插电, 同时在引导界面按9,如下:

       Please choose the operation: 
           1: Load system code to SDRAM via TFTP. 
           2: Load system code then write to Flash via TFTP. 
           3: Boot system code via Flash (default).
           4: Entr boot command line interface.
           7: Load Boot Loader code then write to Flash via Serial. 
           9: Load Boot Loader code then write to Flash via TFTP. 
        You choosed 9
        
        9: System Load Boot Loader then write to Flash via TFTP. 
         Warning!! Erase Boot Loader in Flash then burn new one. Are you sure?(Y/N)
         Please Input new ones /or Ctrl-C to discard
                Input device IP (192.168.31.1) ==:
                Input server IP (192.168.31.3) ==:
                Input Uboot filename (uboot.bin) ==:uboot.bin
    

    设置IP,直接回车默认就行。第三个是输入要刷入的 TFTP 服务器上的文件名,回车后, 开始uboot刷机,如下:

        TFTP from server 192.168.31.33; our IP address is 192.168.31.1
        Filename 'uboot.bin'.
        TIMEOUT_COUNT=10,Load address: 0x80100000
        Loading: Got ARP REPLY, set server/gtwy eth addr (00:xx:xx:xx:xx:xx)
        Got it
        #####################
        done
        Bytes transferred = 105490 (19c12 hex)
        LoadAddr=80100000 NetBootFileXferSize= 00019c12
        ..ranand_erase: start:0, len:20000 
        .(5192)offs=0 piece=0 piece_size=105490 rc=0
        Done!
    

    接着会直接引导breed

        Boot and Recovery Environment for Embedded Devices
        Copyright (C) 2018 HackPascal <[email protected]>
        Build date 2018-12-29 [git-135bed9]
        Version 1.1 (r1266)
        DRAM: 128MB
        Platform: MediaTek MT7621A ver 1, eco 3
        Board: Xiaomi R3G
        Clocks: CPU: 880MHz, DDR: 1200MHz, Bus: 293MHz, Ref: 40MHz
        Environment variables @ 00060000 on flash bank 0, size 00020000
        Flash: Toshiba NAND 128MiB 3.3V 8-bit (128MB) on mt7621-nfi.0
        mt7621-nfi.0: Found Fact BBT at block 1023 (offset 0x07fe0000)
        mt7621-nfi.0: Block 768 (offset 0x06000000) is marked as bad block in Fact BBT
        rt2880-eth: MAC address from EEPROM is invalid, using default settings.
        rt2880-eth: Using MAC address 00:0c:43:00:00:01
        eth0: MediaTek MT7530 Gigabit switch
        Network started on eth0, inet addr 192.168.1.1, netmask 255.255.255.0
        Press any key to interrupt autoboot ... 0   
    

    这样就完成了,breed刷好了

  6. 使用Breed界面,刷Padavan固件

    1. 把电脑ip设为192.168.1.2。
    2. 路由器断电,按住重启按纽,插电,等6-10秒,松开重启按纽。
    3. 在浏览器输入192.168.1.1,就可以打开Breed Web界面了。在这里插入图片描述
      固件更新,选择下载好的Padavan固件文件,开始刷机。
  7. 小米路由器4有坑,刷完Padava后,wan口是物理接口lan2口,需要把光猫线接lan2口。
    Padavan 默认配置
    路由器IP:192.168.123.1
    管理账号:admin/admin
    wifi密码:1234567890

  8. 小米路由器3刷Padavan固件
    开启tftpd,把Padavan固件放到tftp目录。
    路由器拔电,再插电,同时按2,如下:

    Please choose the operation:
       1: Load system code to SDRAM via TFTP.
       2: Load system code then write to Flash via TFTP.
       3: Boot system code via Flash (default).
       4: Entr boot command line interface.
       9: Load Boot Loader code then write to Flash via TFTP.
    选择 2 ,然后要马上按Y,才会进入tftp刷机模式。
    2: System Load Linux Kernel then write to Flash via TFTP.
     Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
     Please Input new ones /or Ctrl-C to discard
            Input device IP (192.168.1.1) ==:
            Input server IP (192.168.1.3) ==:
            Input Linux Kernel filename () ==:
    

    设置IP,直接回车默认就行。第三个是输入要刷入的 TFTP 服务器上的Padavan固件文件名。
    回车后,如果你的输入都对的话,接下来就是自动的往路由器写入固件了,完成后,路由器会自动重启。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。