华为HG255D通过TTL线刷uboot、Openwrt固件笔记整理

by Web全栈工程师 on 2018 年 06 月 11 日

原理说明:
  • TTL线就是串口线(USB转串口)
  • 系统固件不是通过TTL线传输到路由器中
  • TTL线的作用是让PC端和BOOT进行串口通信
  • PC端通过串口线使用BOOT的控制台
  • 系统固件实际是通过网口(TFTP协议)传输到路由器中
刷机流程
  • 路由器进入BOOT控制台模式
  • PC端通过串口控制台调用BOOT映像中包含的TFTP程序
  • BOOT映像中的TFTP程序和PC端的TFTP程序通信,将系统固件通过网络传输到路由器的内存中
  • PC端通过串口控制台调用BOOT映像中包含的其他程序,将内存中的系统固件数据烧写到FLASH中
准备物料:

一、连接TTL线
  1. TTL线使用的 PL-2303HXA芯片,驱动只支持到windows7,安装驱动
  2. 在【我的电脑】-【计算机管理】- 【端口(COM和LPT)】里可以查看到TTL线的信息,比如COM9端口号,传输速率等
  3. 打开Xshell 或者 SecureCRT  设置 SERIAL模式,信息和上一步一致(Protocol:Serrial   Port:COM9   Baud rate:57600   Data bits:8      Parity:None   Stop bits:1)
  4. 连接TTL和路由器PCB板子
    • USBTTL的针脚颜色对应的是:紅色 +5V; 白色 RxD;绿色 TxD;黑色 GND
    • HG255D板子上TTL插座定义(V+ 为3.3V的电压,千万不能接)
      • ┃__ ▂ __┃__┃__┃
      • TX  NULL  V+ GND  RX
    • 拔掉路由器WAN和LAN口所有网线
    • 打开路由的电源,如XShell有显示就表示接驳正确,关上电源。如没有,把RX和TX两根线对调。
二、刷uboot固件(非必须)
  1. 打开XShell界面,接通HG255D的电源,出现如下选择时候,选择4,出现Main_loop !! RT3052 # ,即进入成功
    • 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 4
  2. 可以使用help命令查看该BOOT支持的命令,其中“printenv”、“tftpboot”、“erase”、“cp”、“bootm”命令是后面依次会使用到的
    • “printenv”命令查看当前BOOT的网络配置,主要是查看TFTP的服务器IP(BOOT的TFTP程序是作为客户端,因此需要知道TFTP的服务器地址)
    • 在PC端运行TFTP服务器软件“tftpd32.exe”
  3. 刷uboot流程
    • 设置tftp服务的网络地址与上传文件到内存
      • setenv serverip 192.168.1.100
      • tftpboot 0x80100000 tftpd-uboot.bin
    • 等XShell里显示2个Arp Timeout Check插上网线时,把网线插入路由器的LAN口(黄色的接口),随便哪个口都可以,注意:如果没有提示成功下载到问题,千万不要继续下面的操作。等完全tftp上传好,出现NetBootFileXferSize= 00023874)后 (00023874为tftpd-uboot.bin文件大小的16进制数值,别的U-boot文件的值可能不同)
    • 解锁flash保护: protect off all
    • 擦除U-BOOT:erase 0xBF000000 0xBF03FFFF
    • 写入U-BOOT:cp.b 0x80100000 0xBF000000 0x40000
    • 刷完系统会自行重启,到此u-boot刷机完成
三、更新路由器固件(OpenWrt)
  1. 先将HG255D断电,运行tftp软件,选择要刷的固件
  2. 按住reset键不松接通电源,5秒种后会进入刷机模式,点击tftp上的“更新固件”
  3. 刷完之后,路由器会自动重启,请等待
  4. 重启之后也可以进入Xshell 命令行操作OpenWrt
  5. 我这里刷的OpenWrt版本是:openwrt-ramips-rt305x-hg255d-squashfs-sysupgrade.bin(OpenWrt Barrier Breaker 14.07 / LuCI 0.12 Branch (0.12+git-16.038.38474-0d510b2) , 所以默认用户名是root,密码是admin

(注意:HG255D刷了OpenWrt固件之后,默认的WAN接口可能不是路由器面板上的WAN接口,需要自己子在VLAN里设置,我这里设置的是LAN4作为WAN接口)

Leave a Comment

Previous post:

Next post: