路由器固件DD-WRT刷OpenWrt方法

Written by

in

在上一篇文章《家庭路由器部署分类规则实现透明代理的基本介绍》中,我们简要介绍了翻墙路由器的简要配置方法,下面实际我操作找一台路由器刷入第三方固件进行测试,正好家里有一台 Buffalo WHR-HP-G54 无线路由器闲置,索性拿它进行测试。

Buffalo WHR-HP-G54 当年也是 802.11g 标准下的旗舰,以出色的性能和强大的穿墙能力著称,并以其漂亮的外观设计俗称“小黑”。

目前适合作为翻墙路由器的第三方固件有 DD-WRT OpenWrt,从各方面的反馈来说,目前更新的脚本程序多适合 OpenWrt,且 OpenWrt 更加轻量化,可配置和自由度更高,安装更加灵活方便,不像 DD-WRT 一样默认就安装了众多扩展包,导致不稳定和运行臃肿。

因此我们这次以 OpenWrt 为例。

网上关于刷新 OpenWrt 固件的教程已经很多了,英文好的直接访问 OpenWrtWiki 网站,根据路由器的型号搜寻刷新(Flash)的方法,查询页面为:http://wiki.openwrt.org/toh/start 。

依照本路由的型号,我们找到了官方刷机教程的页面:http://wiki.openwrt.org/toh/buffalo/whr-hp-g54

如果路由器从未刷过第三方还是官方固件的话,相对就很简单,按照如下步骤采用 TFTP 方式即可完成刷新,网上教程很多这里就不再复述了。

下面我们重点讲一下这台已经刷成 DD-WRT 固件的路由器如何再次刷成 OpenWrt 固件,首先做好如下准备(以 Windows7 系统为例):

一、准备工作

  • 1.通过网线连接路由器,并关闭其他无线连接和防火墙(据说要连在最靠近 Wan 口的那个 Lan 口);
  • 2.去这里下载 Buffalo WHR-HP-G54 最新的 OpenWrt 系统:openwrt-brcm-2.4-squashfs.trx,文件有2.3MB大小;
  • 3.将电脑 win7 系统的本地连接的 IP 地址设置为 192.168.1.120 ,子网掩码为 255.255.255.0
  • 4.点击这里去下载 Http 服务软件 HFS , 这是个绿色软件双击运行,然后选择“Menu”—“IP address”,然后选择“192.168.1.*“,将刚下载的固件上传到 ”Virtual File Systme“,则在这个局域网中,它的下载地址为:http://192.168.1.120/openwrt-brcm-2.4-squashfs.trx (当然你也可以用 winscp 上传来替代)

二、刷机方法

1.方法一:TFTP

首先我尝试着使用 TFTP 从底层刷入系统,具体教程点击这里,进入 Windows 系统程序卸载界面,打开 TFTP 权限,然后进入 CMD 命令行,输入如下命令:

tftp -i 192.168.11.1 PUT openwrt-brcm-2.4-squashfs.trx

但按照官方步骤一直提示无法链接,遂放弃。

2.方法二:命令行 MTD 写入系统

进入 DD-WRT 系统,打开 SSH 权限,通过 Putty 等软件连入路由器进入终端,然后输入如下命令:

cd /tmp
wget http://192.168.1.120/openwrt-brcm-2.4-squashfs.trx
mtd -e linux -r write original.trx linux

执行结果如上,应该是系统提示我参数不正确,弄得我一头雾水

3.方法三:命令行 MTD 升级法

最后我看到了一个官方教程中有一个升级的方法,于是我想试试是否可行,反正这老路由变砖了扔掉也不可惜,还是用 Putty 通过 SSH 接入路由终端,输入如下命令:

cd /tmp/
wget http://192.168.1.120/openwrt-brcm-2.4-squashfs.trx
mtd write /tmp/openwrt-brcm-2.4-squashfs.trx linux && reboot

这一次没有提示错误,最后一行的字母不停的在“W”和“E”之间跳跃,大约三分钟后,停在了字母“W”上面,然后路由器的灯全灭了,我心里咯噔一下,不会真的变砖了吧。

等了十分钟后还不见亮,我想重启一次也没这么慢吧,尝试着在电脑浏览器中输入“192.168.1.1”,经过缓慢的载入,终于见到了 OpenWrtLuci 的图形界面,提示我修改 root 密码。

意外的收获是:上次刷了 DD-WRT 后应该常闪的 “Wireless” 灯变成长亮,没想到这一次刷了 OpenWrt 之后也恢复正常了。

大功告成。E


11月7日重要更新

本来一切都搞定,后来我准备在这个 OpenWRT 路由上安装应用的时候发现诸多问题,不仅程序占用的内存空间告满,在编译程序时经常出现“incompatible with the architectures configured ”错误。

应该是架构问题,有可能是对应的固件刷的不对,我重新回到当初下载固件的官方网页,发现可选固件除了openwrt-brcm-2.4-squashfs.trx 以外,还提供了 openwrt-brcm47xx-squashfs.trx 的选择,但网页上只有前者的下载地址。

随后查看路由的 CPU 型号是 Brcm47xx,正好与后者固件名称相符,于是开始查找这个固件的下载地址。

brcm47xx 固件下载地址

按照上面的方法重新刷入系统,终于正常。E