|
本帖最后由 Earthman 于 2018-6-22 15:43 编辑
一直以来用着RT-AC66U,装着Tomato Shibby的改造界面版本 advanced tomato,作为Tomato十多年的老用户,很习惯,也很喜欢。
不过最近升级了100M网络,靠着软件转发的Tomato,配着600MHz的mips cpu,真的力不从心。
对于ac66u的下一任接力者,还没有考虑好,不过看着ac5300m性能好像还可以,价格也可以接受。不过仍然没有停止规划下一代家庭无线网络,说不定会用x86+AP的架构,以实现2G/5G宽带接入为目标。
总而言之,当前的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 ,地址 https://bit.ly/2EV5Oat。原来这是一个基于374.43_2 fork的固件,相对较老,管他呢,先弄下来刷。下载了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麻烦,网上也没有现成的经验,于是又花费一些时间来记录下这个惨痛的过程,愿后来者少走些弯路。
|
|