升级OpenWRT

去年买了一款linksys wrt54g v4改造版,ROM为8M,RAM则升级到了64M,预装了tomato 1.25版。通过web界面,我把它升级到了kamikaza8.09.2,前段时间官网推出了backfire10.03.1-rc4,采用2.6.32的内核,提供更丰富的软件功能,支持的硬件类型也更多,于是我开始了曲折的升级之旅。

根据官网的文档,我执行了以下操作:

  1. 下载backfire 10.03.1-rc4镜像文件;
  2. 在kamikaza的“升级界面”upload该镜像文件,出现不支持该镜像文件的错误。

接着,我尝试将镜像文件上传到ROM中,然后通过命令行进行升级:

  1. 启动SSHd;
  2. 由于kamikaza没有SFTP,因此WinSCP无法通过SFTP将镜像文件上传至OpenWRT,于是我在笔记本上利用hfs这个小工具架设了一个web网站;
  3. 在kamikaza中,通过wget将镜像文件下载至/tmp目录下;
  4. mtd -r write openwrt-wrt54g-squashfs.bin linux

    提示:

Could not open mtd device: linux
Can't open device for writing!

接着

mtd unlock linux
mtd -r write openwrt-wrt54g-squashfs.bin linux
Bad trx header
This is not the correct file format; refusing to flash.
Please specify the correct file or use -f to force.
Image check failed.

shit,不就是升个级吗?!

于是又尝试了以下几种操作:

1.mtd -r write openwrt-wrt54g-squashfs.bin firmware

实际上并没有firmware这个分区,当时找到的文档太老了,也不了解OpenWRT的flash分区情况就病急乱投医。
{: class=“info”}

2.通过sysupgrade升级

创建/etc/sysupgrade.conf(复制wiki.openwrt.org中的/etc/sysupgrade.conf)

sysupgrade openwrt-wrt54g-squashfs.bin
Bad trx header
This is not the correct file format; refusing to flash.
Please specify the correct file or use -f to force.
Image check failed.

傻眼了,难不成经过改造后的这款Linksys无法升级?

后来忽然想到,当时是通过tomato的web页面升级到OpenWRT的,何不先将kamikaza升级至tomato,然后再从tomato升级至backfire?但又有些担心,万一变成砖头怎么办?所以google到一篇文章:Installing Tomato over OpenWRT for Linksys WRT54G,似乎DD-WRT对unbricked有一手,即便出错了还能倒退。
于是下载了一个dd-wrt.v24_mini_generic.bin,颤抖的双手终于将kamikaza升级到DD-WRT,接下来就非常顺利了,又从DD-WRT的web升级到了backfire。紧接安装所需的软件包:

opkg update
opkg install tcpdump
opkg install tmux
opkg install openvpn
opkg install iftop
opkg install iperf

至此,Linksys WRT54G又恢复了元气,甚至更为强壮。