刷机教程

刷机教程

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

一、 用到的东西

网线 一条

USB转TTL线 一条

Putty终端

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 的固件

将电脑插在路由器 LAN 口(比如,LAN4)上,把 IP 设成固定 IP 192.168.1.100,子网掩码255.255.255.0。

打开一个浏览器,事先在地址栏输好http://192.168.1.1/upload.html,准备按回车。

路由关机。按住 reset 键,不要松开,开机。

当看到路由器 LAN 灯亮起后立刻按回车,看到一个用英文写的固件上传页面。选择刚才下载的 ralink.bin,点「上传」。上传完毕, 页面提示超时,就可以松掉reset键。等待 固件写入(写入时 路由器的灯全部是亮着的)过个三到五分钟左右路由器会自动重启。 如果判断写入完成,已经重启成功呢? 可以不停地 ping 192.168.1.1

待重启结束后使用 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。

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

更新最新版的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

参考文章

HG255D电信原版刷机实战整理

原厂华为HG255d刷PandoraBox及其后续工作

🎊 相关推荐

新剧|《金庸武侠世界》定档,五位导演五部短剧
从今天开始,电子支付逐渐淡出,现金时代回归,你知道为什么吗?
御鹿干邑(Hine)--御鹿为英国皇室唯一指定干邑