首先,通用TTL刷机教程是:
这里有基础知识介绍:http://www.chiphell.com/thread-424270-1-1.html
1、拆机,找到TTL阵脚,按照线序连接RX、TX、GND三根线。
TX、RX分别连接TTL串口的RX、TX,接反无输出,可以调换重试。另,VCC阵脚不用接,否则烧坏usb-ttl串口转接器。
2、PC上使用相关软件连接串口
安装驱动什么的就不说了,windows下面软件很多,linux下面好像有什么minicom、kermit这些,但是都还算复杂的,我对串口通讯了解不多,需要的功能也非常简单,所以就使用了screen这个小软件。最简单的命令格式为: screen [串口设备] [波特率]
假设你的USB-TTL设备为ttyUSB0,相应的命令就是
1 |
screen /dev/ttyUSB0 115200 |
这里使用的波特率是115200,大部分嵌入式设备好像都是这个吧,不过不是很确定。
这里有个比较傻x的事情,我第一次运行这个命令的时候,没有给root权限,然后总是秒退。折腾了好久才知道这是需要root权限的。。。
成功启动程序之后,终端里不会显示什么,如果嵌入式设备侧有数据输出,终端里才会显示
3、打开嵌入式设备的电源,在终端里交互
在系统启动之前会有一秒钟的时间允许你中断正常引导而进入CFE模式。大部分猫是需要账号密码才能登陆进CFE模式的,电信猫的超级账号都是telecomadmin,默认密码是nE7jA%5m。但是大部分猫的超级密码都被改了。
一般被修改过的超级密码都是telecomadmin+8位数字,没被修改过的可能是nE7jA%5m或者是同是telecomadmin。贝尔的RG100A-AC的密码就是telecomadmin。
得到超级密码最常见的方法是下载配置文件,具体略过。另外,可以使用电信综调软件查询设备超级密码,“综合业务”-“帐号操作”-“查看终端超级密码”-“终端设备序列号”,输入设备mac地址即可查询。当然,也可以选择用户宽带帐号之类的方式查询。
但是我第一次遇到的华天P-660HNU-51就没那么简单,最后是在CFE未登陆的模式下按住重置按钮,然后屏幕上会闪过猫的配置文件。想翻屏去找超级密码,结果发现screen根本不支持翻屏。。。。之后尝试了windows下面的几个软件,可翻页的页数也很有限。。。最后我机智地用simple screen recorder将屏幕录下来,然后一帧一帧地看才找到的超级密码。
4、开始刷机
刷机方法主要有两种,通过web升级页面刷入固件和在命令模式下通过tftp刷机。
进入CFE模式之后,可以通过help命令查看可执行的命令,有些常用的命令比如:
1 2 3 4 |
e n 清除nvram e a 清除所有 f 刷机 格式是:f [ip地址]:[文件名] r 忘了的reboot还是run来着 |
Web刷机:成功进入CFE模式之后,可以通过http://192.168.1.1进入CFE升级页面。(这里需要将猫的LAN口连接至电脑,并将PC设置为静态IP 192.168.1.0/24)
附:不拆机进CFE的方法:
1、按住reset键开机,PC端持续 ping 192.168.1.1, TTL=100即已进入uboot,持续不变,说明uboot在等待串口的交互或者已进入CFE模式。
2、开机,然后迅速短接 TX\RX,发送一个信号使uboot停止自动加载系统,部分机器此时CFE模式处于开机状态。
3、进入CFE模式需要输入超级密码,上面已经说过了,不再赘述。
TFTP刷机: 将电信猫的LAN口连接至运行TFTP服务器的电脑,电脑端ip设为192.168.1.100,然后运行上述的f命令刷机。
设备1:华天P-660HNU-51
硬件配置:bcm96328+bcm4313,flash:16M,ram:64M,cpu:320MHz
TTL接线:从左至右依次是:VCC(3.3V)、TX、RX、(空)、GND
刷成功固件:
D-Link-DSL_2750_v1.0.11_cfe_fs_kernel
DSL_2750_v1.0.14_cfe_fs_kernel
openwrt-96328avng-16M-flash-generic-squashfs-cfe.bin(openwrt原版,barrier breaker)
openwrt-96328avng-16M-flash-generic-squashfs-cfe.bin(openwrt修改版,dreambox)
刷失败固件:
D-Link-DSL-2760U-E1_R2_cfe_fs_kernel_PS3_1206(最后刷成砖的固件。。。)
设备2:贝尔RG100A-AC
硬件配置:bcm96358+bcm5325,flash:16M,ram:32M,cpu:320MHz
TTL接线:
刷成功固件如下:
bcm96358_4.02L.01_cfe_fs_kernel(原厂固件)
bcm96358_4.02L.01_fs_kernel(原厂固件)
openwrt-96358VW2-generic-squashfs-cfe.bin(openwrt修改版,dreambox)
刷失败固件:
openwrt-96358VW2-generic-squashfs-cfe.bin
(openwrt原版,barrier breaker,rg100a-ba内核无法启动)
设备3:中兴ZXV10-H108L V2.2
硬件配置:忘了。。。还没刷呢
TTL接线:
这款需要自己焊接阵脚的,暂时还没搞。
设备4:贝尔RG100A-BA
硬件配置:bcm96328+bcm4313,flash:16M,ram:64M,cpu:320MHz(网上的信息,好像不对,害得我刷成砖了。。。)
TTL接线:
这个TTL针脚定义不是很确定。。。但是可以确定的是右边两个一定是TX/RX。我曾将左边的针脚连接上USB-TTL,然后成功地烧了转接器。。。
所以这个路由器的刷机方法有点特殊:
1、获取超级密码
电信原版固件下,useradmin登陆,然后下载http://192.168.1.1/backupsettings.conf
在这个文件里很容易找到超级密码,但是奇葩的是,这个超级密码只能用于原版固件web登陆,CFE模式登陆的密码仍然是nE7jA%5m。。。。
2、进入CFE模式
因为TTL线接错了,我人生第一个USB-TTL转接器就这样被烧了。。。
然后百度之,可以短接TX/RX实现中断引导,可能这就等于发送一个按键信号吧,不是很清楚。
先将路由器的LAN口连接至PC,PC端IP设为192.168.1.100,然后不断地ping 192.168.1.1。然后电信猫开机,可以看到返回的ICMP包的TTL为100,迅速短接TX/RX针脚,如果之后的包的TTL依旧为100,则证明进入CFE模式,否则请重试。
3、进入web升级页面进行刷机
4、其他
有一次,猫重启之后,我的ping信息如下:
可以看到一开始在CFE加载的时候,TTL返回值为100,然后开始启动系统,ping就收不到回复了。。。这个是刷的系统没能正常启动,可以重新刷其他系统。
然后有一次,我刷了某个系统,然后重启,然后就没有然后了。。。
Fuck!又成砖了。。。这最后一次玩耍不仅毁了一个USB-TTL转接器,还毁了一个猫。。。擦!
原因很简单,太着急了,没有研究一下具体芯片型号,上次看的好像说是bcm96328+bcm4313,但是既然这次刷成砖了,看来不是。。。
附:文中出现的ROM压缩包 rom4router.tar
哎,要开学了,寒假也不能一件事都没做吧,所以就熬夜写了这个。。。手机上的时间已经是凌晨4点多了,确实感觉撑不住了,睡咯。