HG255D

无论是电信原版还是已经更换uboot的路由,记得先备份eeprom,eeprom对应factory分区的数据包含mac地址和无线信息,可以这个分区的损坏导致的无线信号比较弱的情况出现。

TTL刷改版uboot

路由器原版u-boot波特率为57600,最新的u-boot波特率为115200,是httpd,不是tftpd。

1、建议看完本教程再动手刷

2、如果是Windows系统,TFTP上传有问题,请看一下是否系统自带的防火墙阻止了。

HG255D TTL插座定义(V+ 为3.3V的电压,千万不能接)

┃ ┃ ┃ ▂ ┃

RX GND V+ NULL TX

HG255D TTL接线

一、 用到的东西

  1. 网线 一条
  2. USB转TTL线 一条
  3. Putty终端
  4. TFTPD32软件及固件

二、 接驳TTL线

路由器PCB板上的RX、GND、TX分别连接到USBTTL(USB转串口)的RX、GND、TX插针上。

三、 电脑预设(笔者用的是XP系统)

将USB转TTL接到电脑上,装好USBTTL驱动,选择正确的COM口(在设备管理器中查看第几个COM口,笔者这里是COM9)。

把电脑的网卡地址改成静态IP地址(笔者设置为192.168.1.100)

Windows下:设置Putty的Serial line为COM3,Linux下:设置Putty的Serial line为ttyUSB0,官方cfe的Speed为57600,不死cfe是115200。

把相关的文件(u-boot、eeprom及Openwrt固件),与tftpd32放在同一文件夹HG255D内,运行tftpd32(什么都不要设置)。

Windows:

Linux:

sudo pip install tftpy
cat > tftpd.py << EOF
import tftpy
server = tftpy.TftpServer('HG255D')
server.listen('0.0.0.0', 69)
EOF
python tftpd.py

四、 开始刷机——刷入u-boot(确保TTL线已经正确接好)

(一)用Putty打开Serial,打开HG255D电源, 当出现

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: Enter boot command line interface.
  9: Load Boot Loader code then write to Flash via TFTP.

(二)马上按4后出现如下(不能按9,按9更新U-boot 100%变砖头——键盘上的数字键4)

4: System Enter Boot Command Line Interface.

U-Boot 1.1.3 (Nov 28 2012 - 12:00:15

Main_loop !!

RT3052 #
RT3052 # help
?       - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootm   - boot application image from memory
bootp   - boot image via network using BootP/TFTP protocol
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
echo    - echo args to console
erase   - erase FLASH memory
flinfo  - print FLASH memory information
go      - start application at address 'addr'
help    - print online help
httpsvr - Start HTTP server to load image
iminfo  - print header information for application image
loadb   - load binary file over serial line (kermit mode)
loop    - infinite loop on address range
loopback   - Ralink eth loopback test !!
md      - memory display
mdio   - Ralink PHY register R/W command !!
mm      - memory modify (auto-incrementing)
mtest   - simple RAM test
mw      - memory write (fill)
nm      - memory modify (constant address)
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sleep   - delay execution for some time
spicmd  - read/write data from/to eeprom or vtss
tftpboot- boot image via network using TFTP protocol
version - print monitor version

如果不确定什么时候该按4可以接上电源就马上一直按数字键4, Putty可以不需要关。

(三)设置tftp服务的网络地址与上传文件到内存 插好网线到Lan口,输入如下命令:

setenv serverip 192.168.1.100 #回车
tftpboot 0x80100000 tftpd-uboot.bin #回车

(四)也可以等Putty里显示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 #回车

(八)备份EEPROM EEPROM,原意是电可擦可编程只读存储器,一种掉电后数据不丢失的存储芯片。但对于HG255D所说的eeprom,并不是指的这样的芯片,而是指的HG255D的factory信息,这个信息是保存在flash中的。因为更换uboot会改变flash的分区起始位置及大小,所以会导致原厂的factory信息丢失。 不同uboot的EEPROM位置:

0x00FA0000 – 0x00FBFFFF (原厂UBOOT)

0x00060000 – 0x0007FFFF (Lintel UBOOT)

要备份EEPROM信息,必须要搞清楚EEPROM所在的位置。

原厂uboot使用的flash分区如下:

Using physmap partition information
Creating 6 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000020000 : "u-boot"
0x000000020000-0x000000120000 : "kernel"
0x000000120000-0x000000fa0000 : "rootfs"
mtd: partition "rootfs" set to be root filesystem
mtd: partition "rootfs_data" created automatically, ofs=6A0000, len=900000
0x0000006a0000-0x000000fa0000 : "rootfs_data"
0x000000020000-0x000000fa0000 : "firmware"
0x000000fa0000-0x000000fc0000 : "factory"  ------ EEPROM所用的分区
0x000000000000-0x000001000000 : "fullflash

root@DreamBox:# cat /proc/mtd

dev:  size     erasesize  name
mtd0: 00020000 00020000 "u-boot"
mtd1: 00100000 00020000 "kernel"
mtd2: 00e80000 00020000 "rootfs"
mtd3: 00900000 00020000 "rootfs_data"
mtd4: 00f80000 00020000 "firmware"
mtd5: 00020000 00020000 "factory"  ------ EEPROM所用的分区
mtd6: 01000000 00020000 "fullflash"

从上面的信息可以确定EEPROM使用的是/dev/mtd5分区,所以只需要备份这一个分区就好了,大小为0x20000字节。

备份有两种方法:

方法一:原地备份

这一步操作不当(地址写错)有可能会使机子变砖,这步的主要作用是备份MAC地址及无线信息。

#先把EEPROM写到地址0x80100000
cp.b 0xBFFA0000 0x80100000 0x20000
#查看写入结果
md 0x80100000
#擦除Lintel的uboot保存EEPROM信息的存储空间
erase 0xBF060000 0xBF07ffff
#把高地址的内容写回0xBF060000
cp.b 0x80100000 0xBF060000 0x20000
md 0xBF060000

重要提示:如是怕砖的话,先用方法二备份EEPROM,可以用tftp刷入备份好的EEPROM,也可以后面可以更新lintel的EEPROM。

方法二:异地备份

cat /dev/mtd5 > /tmp/factory.bin
#或
dd if=/dev/mtd5 of=/tmp/mtd5.bin

这两个命令备份出来的文件是完全一样的。备份好了,再把文件取出来存到电脑上,现在可以安心更换uboot了,有备无患。

(九)刷完系统会自行重启,如果没有重启请按Ctrl+C来重启机器。

(十)到这里u-boot刷完成,关闭tftpd32.exe。

五、刷第三方eeprom

【本步骤会使无线变弱——不建议操作,直接用tftp刷入PandoraBox固件】,原版的EEPROM有checksum限制,很多第三方固件不能刷,Putty终端/SecureCRT窗口内会提示Flash限制,可以选则先刷入hg255d-eeprom.bin(这个是第三方破解版的EEPROM)来破解,然后再刷DD-WRT/OpenWRT/Tomato等第三方固件。

(一)修改第三方的eeprom.bin中的MAC地址

用WinHex打开eeprom.bin,定位到0x00000020-8,如下图:

(二)刷入eeprom.bin

相对于u-boot,刷eeprom要简单得多。先把HG255D断电,运行tftp软件,选择eeprom.bin,按住reset键不松接通电源,5秒种后会进入刷机模式,点击tftp上的“更新固件”,等那个灰色的圆圈变成绿色就可以了。

六、刷lintel修改的httpd-uboot

用之前的方法输入改版的uboot会比较保险,据说用这个方法直接刷有变砖的风险,反正两种方法我都刷成功了。 这个版本的uboot刷机最方便,下载地址:http://downloads.openwrt.org.cn/PandoraBox/HuaWei_HG255D/u-boot/u-boot-pandorabox-hg255d-dhcpd-20141227-release.bin

波特率115200

开机按住wps键就可以激活刷机模式。

默认web ip:192.168.1.1,内置dhcpd服务器,该uboot刷机无需设置IP,刷机带进度条显示状态。 提前准备好: ralink.bin(md5sum: ba61f0402ad839b2593e5bc44e157ee0) Lintel修改的httpd-uboot PandoraBox 的固件

  1. 将电脑插在路由器 LAN 口(比如,LAN4)上,把 IP 设成固定 IP 192.168.1.100,子网掩码255.255.255.0。
  2. 打开一个浏览器,事先在地址栏输好http://192.168.1.1/upload.html,准备按回车。
  3. 路由关机。按住 reset 键,不要松开,开机。
  4. 当看到路由器 LAN 灯亮起后立刻按回车,看到一个用英文写的固件上传页面。选择刚才下载的 ralink.bin,点「上传」。上传完毕, 页面提示超时,就可以松掉reset键。等待 固件写入(写入时 路由器的灯全部是亮着的)过个三到五分钟左右路由器会自动重启。 如果判断写入完成,已经重启成功呢? 可以不停地 ping 192.168.1.1
  5. 待重启结束后使用 admin/admin 登录http://192.168.1.1。找到系统管理->系统指令,键入/hg255d/hg255d-flash-uboot.sh,执行命令,三秒钟就行,重启路由。

    这一步也可以用telnet来更新uboot,telnet 192.168.1.1用户名是admin, 密码也是admin,执行/hg255d/hg255d-flash-uboot.sh。 此时 uboot已经成功更新为Lintel大侠的 支持tftp协议的uboot,能刷 u-boot、firmware 和 EEPROM。

  6. 现在不用捅菊花,按住侧边的 WLAN 或 WPS 键也能进 uboot 了。进 uboot 后,你已经可以上传你需要的固件了。
    curl -T PandoraBox-ralink-rt305x-hg255d-squashfs-sysupgrade-r1147-20150710.bin tftp://192.168.1.1
    
  7. 更新最新版的httpd-uboot

    Windows: 在本机运行 tftp32.exe,把你Lintel的httpd-uboot 给 put 上去。路由会自动重启。

Linux:

curl -T httpd-uboot.bin tftp://192.168.1.1

至此,大功告成,已经刷成最新版的支持httpd和自动分配地址的uboot。最新版的uboot才是使用http上传固件的,旧的uboot是用tftp协议刷机的,如果需要恢复到原厂U-BOOT的,同样在TFTP下更新ralink.bin固件,更新的命令更改成:/hg255d/hg255d-flash-tel-uboot.sh

七、刷dd-wrt固件

刷的固件是asus-to-ddwrt.trxftp://ftp.dd-wrt.com/betas/2017/02-07-2017-r31277/asus-rtn13ub1/

asus N13U的固件,刷写之后没有Lan,但是通过"设置"-->;"网络"-->,把wan指定成Vlan1就能用有线了.

直接把路由器当ap使用的话,好像有问题,没有详细测试。

刷机常用命令

用tftp协议刷机

curl -T PandoraBox-ralink-rt305x-hg255d-squashfs-sysupgrade-r1147-20150710.bin tftp://192.168.1.1

查看当前系统分区信息

cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00020000 "CFE"
mtd1: 000dff00 00020000 "kernel"
mtd2: 00ee0000 00020000 "rootfs"
mtd3: 00840000 00020000 "rootfs_data"
mtd4: 00020000 00020000 "nvram"
mtd5: 00fc0000 00020000 "linux"

备份系统CFE

dd if=/dev/mtd0 of=/mnt/cfe.bin

备份恢复Openwrt系统配置

#备份自定义系统信息,包括新安装软件
dd if=/dev/mtd3 of=/mnt/overlay.bin
#恢复备份设置
mtd -r write /mnt/overlay.bin rootfs_data
#仅备份系统配置
sysupgrade -b /mnt/back.tar.gz
#恢复系统配置
sysupgrade -r /mnt/back.tar.gz

恢复Openwrt系统默认设置

rm -rf /overlay/* && reboot
#删除/overlay分区所有文件,重启即恢复默认设置
mtd -r erase rootfs_data
#使用mtd清除/overlay分区信息后重启即恢复默认设置

刷新系统:

#使用mtd更新系统
mtd -r write openwrt.bin linux
#刷机并恢复系统配置,推荐
sysupgrade -f /mnt/back.tar.gz img.bin

参考文章

  1. HG255D电信原版刷机实战整理
  2. 原厂华为HG255d刷PandoraBox及其后续工作

results matching ""

    No results matching ""