该方法适合绝大多数带miniweb系统的路由器。
方法一:使用miniweb刷机
1、按住路由器的reset(刷机完成前不要松手),打开路由器电源,此时路由进入CFE miniweb模式。
2、打开浏览器输入:http://192.168.1.1进入miniweb。
3、先点击清空NVRAM,然后点继续。
4、创建一个本地目录,放入TFTP32,并且在目录中放下CFE文件:比如 cfe.bin。
5、打开tftp32程序备用。
6、在浏览器地址栏输入:
http://192.168.1.1/do.htm?cmd=flash+-noheader+192.168.1.2:cfe.bin+flash0.boot
并回车。这时候tftp32会闪一下,把CFE传入到路由上并刷入。等浏览器提示完成时再点继续。再reboot,这样就可以进入新的CFE的miniweb了。
上面的192.168.1.2 是操作机器的IP,根据实际情况填写。
理论上也可以通过如上相似的命令在原厂的CFE下进行固件强行刷新
http://192.168.1.1/do.htm?cmd=flash+-noheader+192.168.1.2:TEST.bin+flash0.trx
原文:
http://www.360doc.com/content/14/0508/17/14797374_375861508.shtml
方法二:利用 Telnet 登陆路由器后,用路由器内的 mtd 设备来完成
- 用 Telnet 命令登陆路由器(要注意一点,用户名一定要写 root,哪怕你自定义过用户名,但在这里也还是要用 root 才可以)。
- 输入:cat /proc/mtd ,一般会返回如下信息:
dev: size erasesize name mtd0: 00040000 00010000 "cfe" mtd1: 003b0000 00010000 "linux" mtd2: 002bd000 00010000 "rootfs" mtd3: 00010000 00010000 "nvram" mtd4: 00010000 00010000 "ddwrt"
从返回的信息中,我们可以看到 cfe 其实就是放在 mtd0 区内的。有时cfe会显示为prom。
- 现在我们先把 cfe 备份出来,使用命令:dd if=/dev/mtd/0 of=/tmp/cfe.bin ,一般返回如下信息:
512+0 records in 512+0 records out
这样就把路由 FLASH 中的 cfe 备份到了 /tmp/cfe.bin 中去了。
- 获取现在路由的 MAC 地址,这个方法有很多种了,你可以访问一下 http 方式的管理页,然后把 Lan MAC 记下来(必须是 LAN MAC ,千万别记成 WAN MAC 或者 WLAN MAC 了),也可以用命令: ifconfig eth0 来获取(命令中最后一个字符是数字 0 ,别输入成字母 0 了)。
假设这里获取到的 MAC 地址是 00:16:11:17:91:95 。 - 用 sed 命令把 cfe 中的 MAC 地址改掉,假设改成 00:16:11:17:81:95,改好后的 cfe 保存到 cfe.new 文件中。
命令格式如下:sed "s/00:16:11:17:91:95/00:16:11:17:81:95/g" /tmp/cfe.bin > /tmp/cfe.new
由于该命令是没有回显的,所以只要运行结束显示提示符,就可以了。
- 最后用 mtd 命令把新的 cfe 内容写回 cfe 。
mtd write /tmp/cfe.new cfe
如果有提示错误,可以改用以下2条命令进行:
mtd unlock cfe mtd write -f /tmp/cfe.new cfe
如果提示信息是类似下面的这行,就说明更新完毕:
Writing from /tmp/cfe.bin to cfe ... [w]
- 完成,您可以在 http 方式的管理页面中,选择恢复出厂默认设置一下,也可以按路由器背后的 RESET 强制恢复。现在路由器的 MAC 地址已经是新的了。
可能有人会问,你只改了 LAN MAC 地址,那路由器还有 WAN MAC 和 WLAN MAC 呢,这两个又怎么改?其实这两个根本不用改的,如果打开 cfe 看的话也可以发现,里面根本没有这两个 MAC 地址,只有 LAN MAC 地址的。那这两个 MAC 地址怎么生成呢?其实很简单,cfe 会自动用 LAN MAC 地址 + 1 和 +2 来自动生成 WAN MAC 和 WLAN MAC 地址的,所以你改掉了 LAN MAC 就可以了。
原文:
http://wangyuicq.blog.163.com/blog/static/46395730201011105512277/