无聊开始玩路由器,入门Tomato固件
在之前的《路由器上写CMCC自动登录验证脚本》 这篇文章中,我尝试了在使用openWRT的WR703N上接入8G的U盘也实现了在路由上安装和运行Python应用。不过当时很有目的性的玩玩,所以没有怎么深入探究底层的东西。
昨天在ziv同学的陪同下,搞来了两个Tenda的路由器,老板邓先生帮我刷了Tomato的固件。话说,以前我的703N也是在他这里网购的,不过这次路过实体店了。在他的店里,看着他轻轻松松的拆掉里面的电子元件,然后放到一个地方进行编程,接着又轻轻松松的安装回去。我呆呆的看着,觉得很酷。突然想起初中的时候,自己拆开一个mp3.5为了刷固件,短路两条引脚结果太暴力被我弄断了,为了修好到处找店铺想方设法焊接上那块芯片上的引脚,到最后还是放弃了。邓先生说这个Tenda的路由只能刷Tomato的固件,刷openWRT固件的路由价格贵,稳定性也不高,所以我就看着便宜的捡了70块钱的Tenda回去。
晚上就开始上手刷机,没有阅读任何说明书,没有查阅任何wiki资料,没有看过任何论坛帖子,直奔Tomato官网下载固件,然后很淡定地从路由器管理界面的升级栏目里上传固件。结果悲剧的事情发生了,路由器重启之后就一直没有启动过了,没有Wifi信号,连接端口也没有自动获取IP地址。咨询邓先生,看样子已经变砖,只能送回去修理。从没刷过路由固件的我,最后只能能怪自己不认版本,刷了不兼容的固件。
不过幸好我买了两个路由,坏了一个还可以继续玩。既然那个要我这个宅男山长水远的送回去修理,还不如再弄坏一个一起拿去修。第二次就聪明很多了,开始逛一些国内外的论坛,看了一个晚上的固件信息,在 http://tomato.groov.pl/ 上学习怎么看固件文件名中的信息,当然还要感谢店铺邓先生的指导。
发现国内上关于Tomato的资料真的很少,也几乎很少有人去编译它的源代码。在很多地方都看到网名叫佐须之男的大神发布的固件,不过他的固件似乎没有开源,修改开源项目的东西然后进行商业化,感觉不是很好吧!因为国内关于路由固件的资料相当缺乏,技术也不开放,所以也难怪为什么现在很多路由器的界面都那么单一和简陋。
从路由器系统状态里得知我的CPU芯片是Broadcom BCM53572,据说跟BCM5357差不多。但是Shibby博客上并没有提到BCM5357能够使用哪些固件,邓先生也不清楚,只能每一个去尝试一下。那这样岂不是不止变砖一次了,对于不懂硬件的我来说砖头永远还是砖头。不过我还是挺幸运的,居然跑去了GitHub上搜代码,结果还真的搜出来了跟BCM5357相关的东西,发现Linksys的E系列和Asus的N系列也用到了BCM5357。那么既然芯片一致,应该就可以跑同一个内核的了吧。祈祷一下这回不会变砖了。
在Shibby上找了一个RT N系列的固件,开始着手升级了。这次有点小紧张,不过似乎很顺利。通过Wifi进入管理界面,如下图:
不过刷完这个固件后出现了一点小问题,就是所有LAN端口都用不了,邓先生说是VLAN问题,然后我重新配置了一下VLAN,问题又解决了!
好吧,这次刷固件成功之后,略有成就感,一下子收获了不少,于是发文祝贺。有些同学已经知道下一步我打算做什么了,哈哈,在上面安装和运行我的Python应用。