手头上有一个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分区情况就病急乱投医。
  2. 通过sysupgrade升级

    创建/etc/sysupgrade.conf[1]

    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又活过来了。


1. 来自wiki.openwrt.org中的/etc/sysupgrade.conf