一直以来用着RT-AC66U,装着Tomato Shibby的改造界面版本 Advanced Tomato,作为Tomato十多年的老用户,很习惯,也很喜欢。
不过最近升级了100M网络,靠着软件转发的Tomato,配着600MHz的mips cpu,真的力不从心。
对于RT-AC66U的下一任接力者,还没有考虑好,不过看着AC5300性能好像还可以,价格也可以接受。不过仍然没有停止规划下一代家庭无线网络,说不定会用x86+AP的架构,以实现2G/5G宽带接入为目标。
总而言之,当前的RT-AC66U还得撑一段时间,还好家里的无线网络负担并不重,继续用也没问题。不过有必要替换Tomato为Merlin软件。
于是决定动手干,先把Tomato里面的一些配置都手动保存下来,比如Static DHCP,Dnsmasq Configuration,等等。保存完毕就下载了RT-AC66U_380.70_0.zip开干。上传固件,勾选erase nvram,开始刷。
刷完重启,做了一些配置,无非登录验证,无线SSID、密码等等。玩弄一会儿,发现这Merlin跟Tomato差别挺大,好多东西都没了,难免有失望,不过可以获得Nat Hardware Acceleration。
然后就发现问题了,5G无论如何都打不开,页面显示有,但是Site Survey显示5g disabled,我的sbc也连不上5g。感觉糟透了,试过去Advanced Content关闭再打开5g,没用,试过重启,也没用,尝试Restore Factory Default,也没用。
后来调查nvram里面的东西才发现wl0与eth1挂钩,wl1被配置为与eth2,但是 ifconfig根本就没有eth2,看来有什么配置丢失了。既然Restore Factory Default没用,那说明固件默认配置有问题,刷其他版本吧。
首先想到的是官网的固件,去下载了最新的FW_RT_AC66U_300438250470.ZIP,2018.5.21发布,挺新的。好,刷进去,然后Restore Factory Default,简单配置一下,进入界面看看。
哇,好土,比Merlin更加少的功能,又少了不少的东西,管他呢,先去看5g咋样了。结果令人失望:5g,没有客户端连接。
这下有点懵逼,有些不知道该怎么办,不过不太想走回头路,得赶紧,保证网络可用。之前就看到Merlin的changelog写道,这是380.xx的最后更新,后面的维护留给另一位john9527,地址。原来这是一个基于[size=13.3333px]374.43_2fork的固件,相对较老,管他呢,先弄下来刷。下载了E版本的固件RT-AC66U_374.43_32E4j9527.zip开刷,同样要恢复初始设置。哈哈哈,很棒,有5g了。不过这界面可真的要古老一些,不太好看,于是决定刷老版本的asus stock firmware FW_RT_AC66U_30043789313.zip,这样刷进去,没有恢复设置,但是还好有5G。于是决定刷到最新的FW_RT_AC66U_300438250470.ZIP,反正都是官网固件嘛,应该没问题。然而结果却令人遗憾,5g,无法连接。
于是决定返回用Merlin,要用古老的版本,简单分析了changelog,决定从非常古老的Merlin固件开始刷起。RT-AC66U_378.56_2.zip,这个版本是跃进到380.xx前的最后一个版本,大概没问题。然而上传刷机却有问题,asus firmware包含Merlin不允许降级。简单搜索得知要降级需要进bootloader,用asus的刷机工具刷新。于是下载了Rescue_2000.zip 安装,选择好固件点击上传,然后去给机器断电->按住reset键->上电,等几秒->放开reset键。这个过程需要快速而准确,不然软件就超时了。弄了几次成功上传了固件。
从高版本降级到低版本,进入系统后进行了重置,然后重启。再一次进入系统,简单配置一下,非常高兴,5g回来了,当然eth2也在的。于是开始考虑升级,根据changelog,asus在Merlin 380.60的时候改变了固件格式,于是我先升级到RT-AC66U_380.59_0.zip,再升级到RT-AC66U_380.61_0.zip。这期间都没有重置设置,保留配置升级,这样5g就留了下来。继续往上升级,为了保险,按顺序升级了RT-AC66U_380.63_2.zip,RT-AC66U_380.64_2.zip。仍然没有问题,5g还在,于是打算继续升级,但是没必要一个一个来。根据changelog,在 380.69 的时候更新了RT-N66U 和RT-AC66U 的SDK,这里或许有问题。于是升级到RT-AC66U_380.68_4.zip,这是升级到380.69前的最后一个版本,更新后没有问题,于是继续升级到 RT-AC66U_380.69_2.zip,仍然没有问题。根据changelog这后面没有什么关键的影响驱动的更新,本来是不打算升级到最新版的380.70 ,但是有讨厌的更新提示,这个还没法设置关闭,于是决定尝试继续升级。怀着忐忑的心情刷入了RT-AC66U_380.70_0.zip 。重启后进入系统,很高兴,5g还在。
这样一来就知道了,低版本到高版本期间的某个版本(380.60可能性较大)改变了一些nvram settings ,但是这个改变没有被记入Restore Factory Default 这个动作。这导致了丢失eth2硬件,5g无法使用。我虽然备份了380.70的5g能用和不能用的配置,但是那是.cfg文件不是export的文本格式,加上nvram条目众多,一时没法弄清楚到底是哪些nvram项目导致了问题。这里就算结束吧。
总结下来,Tomato转Merlin需要先刷入低版本的Merlin,然后根据changelog选择在关键项目做出改变的版本(如 380.60)依次升级,如果遇到需要降级的情况就需要用ASUS的Recovery软件。根据情况如Merlin 380.70根本没法成功用Recovery软件降级,需要先升级到ASUS更新的版本才能用Recovery软件降级。据此的经验,感觉真TM麻烦,网上也没有现成的经验,于是又花费一些时间来记录下这个惨痛的过程,愿后来者少走些弯路。