- CFE 简单点的理解就是相当于PC的BIOS, 通常还称为 Bootload。
Common Firmware Environment (CFE)
CFE stands for Common Firmware Environment. The Broadcom Common Firmware Environment (CFE) is a collection of software modules for initialization and bootstrap of designs incorporating Broadcom MIPS64™ processors. CFE is used to bootstrap the OS.
On startup, CFE performs the following low-level initialization:
- Reset and ROM trap handler vectors
- CPU and FPU initialization
- L1 and L2 Cache initialization
- Multiprocessor initialization
- Memory controller initialization
- PCI and LDT bus configuration
- Environment variables
- Console device initialization
- Bootstrap device initialization
Corrupted CFE is an uncommon reason for a bricked router. But it could happen.
- JTAG, TTL
网上那些关于JTAG的复杂解释我就不废话,说点简单的,JTAG就是在你的路由器变砖时能够让路由器起死回生的法宝,他可以刷CFE、清除NVRAM(譬如超频失败、改内存输错参数)、刷固件等(速度非常之慢,严重不推荐),当然了CFE能刷什么就能备份什么。
JTAG接口的引脚是标准的吗?不是,不同的厂家甚至不同型号的路由器的引脚排序都不一样的,这个需要google一下才能找到(当然本网站也会收集这些资料跟大家分享的)。不过不是所有的机器都带JTAG,如果路由器上某处有10到14脚的DIP直插焊盘,那么是JTAG的可能性比较大。如果你的机器没有JTAG接口,那算我上面的都白说。
说完JTAG,再说说TTL接口和线,有些路由器带4针的TTL接口(也有可能只有焊盘,需要自己把针焊上去),接上TTL线后你可以在你的电脑上看到路由器控制台的信息(从CFE阶段到固件引导完毕),并且可以输入平时那些telnet之后输入的命令。TTL线现在一般都是USB接口了,一边是4 芯的线(只需要用到3芯,4芯中的VCC线不用),将3芯跟路由器的TTL接口接好,另外一边是USB插头,插入到PC的USB接口并安装好驱动后(驱动模拟出COM口)就可以用超级终端、PuTTY等工具连接串口(Serial)看到路由器的控制台信息了。
当路由器出现故常时,接上TTL就可以看到故障的原因和错误代码了,如果自己看不懂的话就把信息发给热心的网友帮忙一起分析一下。
- 实践
http://hi.baidu.com/f_fx/blog/item/b9fdacfd78baf21a08244d6a.html
TTL线刷机前的准备
1. 购买USB转TTL线,价格一般在12到20之间。
2. 在PC上装好TTL线驱动(一定要先装驱动在将TTL线插到电脑上)。
3. 认识TTL线。TTL线一头是USB接口,另外一头一般有4个带杜邦头的插管,分别是GND、RX、TX、VCC,一般GND是黑色,VCC是红色,其他是RX和TX,不清楚的一定要咨询卖家。见下图,你手上的TTL线可能与我提供的图片不同。
4. 下载并安装SecureCRT v6.5.8.380 汉化版
下载地址:http://u.115.com/file/f672fcb574
SecureCRT-v6.58H.rar
安装好后,我们在PC windows上打开设备管理器,点开端口,我们能看到COM x已经作为TTL通信口。(根据每台电脑的具体情况,COM口会不一样,大多数会是COM2口,我自己的是COM5口,需要自己去设备管理器里查看)
如上图那样选中Prolific USB-to Serial Comm Port (COMx), 鼠标右键弹出菜单, 选择属性,然后如下图那样进行设置
5. 拆开机器。初看上去,设备的后盖一般是看不到螺钉的。但后盖4个角上一般都有4个圆形的海绵垫片,螺钉就藏在下面,请先去除之,然后拧开螺钉,打开后盖,我们就能看到电路板了。下面就请在电路上寻找TTL插针,4 个插针是并排的,一般而言,电路板上只有这样一组并排插针,所以并不难找。请注意并排插针的引脚标注GND,标有GND的插针就是GND。而靠近GND右边一般都是RXD插针,其他依次是TXD、VCC插针。请将TTL线的GND的细长型插管插到GND插针上。TTL线的RXD插到RXD插针上,TXD也如此办理。但VCC插针请不要插,千万小心。
上面我们描述的是一般规律,但也有例外。
RG100A-AA、DCHG-800-A、G120-T、HA910、H108Bv1.2电路板上TTL的GND右边依次是RXD、TXD、但VCC却在 GND左边,其详细接线图请参考chinadsl.net 站长yesdong提供的示意图:
RG100A-AA 刷机必须要用到ttl线
RG100A-AA,H108B请参考以下接法
jtag线用于刷错cfe时修复用,jtag线连接方法:
6.将网线一段连入猫的LAN口,任意一个都可以,另一段连接电脑。设置电脑的IP地址为192.168.1.100 ,255.255.255.0 ,192.168.1.1
OK,到此我们的准备工作就做好了
下面我们就开始刷机过程。
刷机步骤
1. 重复检查准备工作。
2. 我们在PC上启动程序SecureCRT
选择菜单“文件”,然后选择快速连接,并按下图进行设置
SecureCRT快速连接
点击连接,我们就能看到如下界面:
SecureCRT快速连接2
3. 然后打开电源,这时SecureCRT窗口会有E文滚动,当滚动到*** Press any key to stop auto run (1 seconds) ***,任意按下键盘任意一个键,就会进入CFE> ,这样我们就进入了CFE命令行界面。
4.CFE>e a 回车
再输入y回车(目的是清空flash)
这一步也有可能要输入用户名和密码,telecomadmin/telecomadmin 或者telecomadmin/nE7jA%5m
5.浏览器地址栏输入192.168.1.1,如果提示要用户名和密码则输入telecomadmin/telecomadmin 或者telecomadmin/nE7jA%5m,进入后会看到FW界面(忘记截图了,不过很简单的,都是中文)
6.1,到这一步要分两种情况对待了,如果你能确定你的CFE可以刷openwrt,直接进入6.2。
我现在只知道RG100A V1.1电信原版的CFE可以刷openwrt,其他不知。保险的方法是先刷至电信原版带CFE固件。我之前就在这个地方走了弯路,因为CFE不合适,刷不上openwrt的。我之前是DLINK固件。RG100A V1.1电信原版带CFE下载地址(一定不要断电或者接触不良等突发状况,不然就只能JTAG了)
刷好原版固件后,会自动重启,按上面的方法进入CFE。再次e a,进入下一步。
6.2,e a后在浏览器进入192.168.1.1,这次要选择openwrt固件刷新了,openwrt固件不含CFE,刷不死的。这里有下载,LUCI3.12版
最新版本可去openwrt中文网查找。
7.设备刷完后会再次重启,我们也要再次进入CFE状态。
b 修改board ID、MAC地址、FLASH格式等等信息。
e 就是人们经常说的清nvram操作,输入e 回车后会看到帮助信息。
i 清除配置文件。
r run命令,启动已经刷好的系统。
我们先输入b,回车(接上边说的,有些猫刷完2次FW后已经停在这个界面了)。
第一步是boardID,CFE会返回所有支持的型号,输入型号后边的数字来定义,如果找不到你自己的设备,保持默认就好。
之后会让你修改MAC长度,一般为12,这里务必修改正确。
回车后会让你输入MAC地址,一般会有个默认地址,按照列出的默认地址格式修改就可,当然嫌麻烦也可以不修改。
后边还有几项设置,一般不需要修改,一路回车就好。
我的CFE启动信息及配置:
CFE> Boot Address 0xbe000000
Initializing Arena.
Initializing Devices.
Parallel flash device: name AM29LV320MT|S29GL128-A, id 0x2201, size 16384KB
Flash Layout: Boot[0,0xbe000000] Kern[1,0xbe020000]
AuxFS[95,0xbebe0000] Misc[125,0xbefa0000] PSI[127,0xbefe0000]
Flash RootFS Partition Length: 12320768
CPU type 0x2A010: 300MHz, Bus: 133MHz, Ref: 64MHz
CPU running TP0
Total memory: 33554432 bytes (32MB)
Total memory used by CFE: 0x80401000 - 0x80529860 (1214560)
Initialized Data: 0x8041E740 - 0x80421060 (10528)
Board IP address : 192.168.1.1:ffffff00
Host IP address : 192.168.1.100
Gateway IP address :
Run from flash/host (f/h) : f
Default host run file name : vmlinux
Default host flash file name : bcm963xx_fs_kernel
Boot delay (0-9 seconds) : 1
Board Id (0-8) : 96358VW
Number of MAC Addresses (1-32) : 12
Base MAC Address : 见你的路由器背面,格式为XX:XX:XX:XX:XX:XX
PSI Size (1-64) KBytes : 64
Flash Block Size (1-128) in KBytes: 128
Auxillary File System Size Percent: 24
Main Thread Number [0|1] : 0
再进行一下清除操作
输入“e n”,回车 按提示输入y 回车 清nvram
输入 i 回车 按提示输入y 回车 清除配置文件
完成了上述修改和清除操作后,输入 r 回车 系统就会启动 不必关了电源再开。
到这里刷新完毕,如果顺利,你已经可以进入http页面了。
END
参考资料:
OpenWrt刷机教程
http://www.openwrt.org.cn/hdwiki/index.php?doc-innerlink-OpenWrt%E5%88%B7%E6%9C%BA%E6%95%99%E7%A8%8B
[新手教学]TTL线修改CFE参数 和通过CFE刷新固件的流程
http://www.chinadsl.net/thread-28078-1-2.html
RG100A-AA、DCHG-800-A、G120-T、HA910、H108Bv1.2等设备的TTL接线图
http://www.chinadsl.net/viewthread.php?tid=30576&highlight=ttl