无聊开始玩路由器,入门Tomato固件

在Wordpress上消失了一段时间,其实我最近几个月都比较宅。相信最近大家都了解过新出的一款很NB的路由器叫极路由,功能很强大,8G的可存储空间,可以安装路由apps也可以下载资源,据说翻墙插件还很给力。对新鲜事物一直保持着高度兴趣的我,却没有机会买到这款路由,而且据说价钱会越来越贵,说不定之后还有收费的apps。想在路由器上翻墙嘛,自己动手实践一下就可以了 🙂

在之前的《路由器上写CMCC自动登录验证脚本》  这篇文章中,我尝试了在使用openWRT的WR703N上接入8G的U盘也实现了在路由上安装和运行Python应用。不过当时很有目的性的玩玩,所以没有怎么深入探究底层的东西。

昨天在ziv同学的陪同下,搞来了两个Tenda的路由器,老板邓先生帮我刷了Tomato的固件。话说,以前我的703N也是在他这里网购的,不过这次路过实体店了。在他的店里,看着他轻轻松松的拆掉里面的电子元件,然后放到一个地方进行编程,接着又轻轻松松的安装回去。我呆呆的看着,觉得很酷。突然想起初中的时候,自己拆开一个mp3.5为了刷固件,短路两条引脚结果太暴力被我弄断了,为了修好到处找店铺想方设法焊接上那块芯片上的引脚,到最后还是放弃了。邓先生说这个Tenda的路由只能刷Tomato的固件,刷openWRT固件的路由价格贵,稳定性也不高,所以我就看着便宜的捡了70块钱的Tenda回去。

tenda

晚上就开始上手刷机,没有阅读任何说明书,没有查阅任何wiki资料,没有看过任何论坛帖子,直奔Tomato官网下载固件,然后很淡定地从路由器管理界面的升级栏目里上传固件。结果悲剧的事情发生了,路由器重启之后就一直没有启动过了,没有Wifi信号,连接端口也没有自动获取IP地址。咨询邓先生,看样子已经变砖,只能送回去修理。从没刷过路由固件的我,最后只能能怪自己不认版本,刷了不兼容的固件。

不过幸好我买了两个路由,坏了一个还可以继续玩。既然那个要我这个宅男山长水远的送回去修理,还不如再弄坏一个一起拿去修。第二次就聪明很多了,开始逛一些国内外的论坛,看了一个晚上的固件信息,在 http://tomato.groov.pl/ 上学习怎么看固件文件名中的信息,当然还要感谢店铺邓先生的指导。

naming

 

发现国内上关于Tomato的资料真的很少,也几乎很少有人去编译它的源代码。在很多地方都看到网名叫佐须之男的大神发布的固件,不过他的固件似乎没有开源,修改开源项目的东西然后进行商业化,感觉不是很好吧!因为国内关于路由固件的资料相当缺乏,技术也不开放,所以也难怪为什么现在很多路由器的界面都那么单一和简陋。

从路由器系统状态里得知我的CPU芯片是Broadcom BCM53572,据说跟BCM5357差不多。但是Shibby博客上并没有提到BCM5357能够使用哪些固件,邓先生也不清楚,只能每一个去尝试一下。那这样岂不是不止变砖一次了,对于不懂硬件的我来说砖头永远还是砖头。不过我还是挺幸运的,居然跑去了GitHub上搜代码,结果还真的搜出来了跟BCM5357相关的东西,发现Linksys的E系列和Asus的N系列也用到了BCM5357。那么既然芯片一致,应该就可以跑同一个内核的了吧。祈祷一下这回不会变砖了。

bcm

在Shibby上找了一个RT N系列的固件,开始着手升级了。这次有点小紧张,不过似乎很顺利。通过Wifi进入管理界面,如下图:

rtn

 

不过刷完这个固件后出现了一点小问题,就是所有LAN端口都用不了,邓先生说是VLAN问题,然后我重新配置了一下VLAN,问题又解决了!

tomato

 

好吧,这次刷固件成功之后,略有成就感,一下子收获了不少,于是发文祝贺。有些同学已经知道下一步我打算做什么了,哈哈,在上面安装和运行我的Python应用。

 

无聊开始玩路由器,入门Tomato固件》有69个想法

      1. kuafoo

        RT3052F 384M CPU, 8M ROM,32M 内存, 也有改版的50块钱左右 16M ROM,64M内存。 可以插U盘,移动硬盘,装不下的软件比如Python,可以放到U盘里面。

        回复
        1. Xiaoxia 文章作者

          也听说过HG320,知道这两个的区别么?
          我想在路由器上做一些云的东西,不知道你有没有兴趣 🙂

          回复
          1. taloo2012

            我给你说说吧,hg255一般刷op hg320一般刷tt或者磊科的固件,不能刷op,因为bcm的芯片不开源

            回复
              1. taloo2012

                主流好几种呢
                加上被收购的,具体我忘了,看看我在给你说
                anywlan.com论坛和http://www.right.com.cn/forum/forum.php论坛你去看看

                回复
          2. kuafoo

            主流的话应该是AR系列吧,不过Ralink的芯片便宜,现在不少山寨移动WIFI路由都用Ralink的芯片。 如果想做点云应用,当然是能刷OpenWrt的路由更好玩,想玩HG255D吗?我送你一个HG255D吧。 手上有一个闲置的 64M内存,我对云应用也挺有兴趣的,不知道你又有什么新点子。

            回复
            1. Xiaoxia 文章作者

              哈哈,我去淘宝上买一个应该更方便,免得你邮寄。如果可以一起研究吧,你加我即时聊天了么?

              回复
  1. 救赎

    最近才发现你的网站,发现你是个少有的人才,文章什么的都翻过了一遍,写的好。
    前一段我也在倒腾路由,刷坏了两个,又买了一个,刷的ddwrt。cmcc自动登录脚本也实现,实现的方式和你的一样。正在尝试增加功能,例如缓存加速,google翻q,dns加速等。极路由做的很好。但是路由的flash太小很多实现其他挺困难的。期待你多多更新文章。

    回复
      1. liyvhg

        我也在做,最近装了shadowsocks和redsocks,用iptables翻wll,google的ip可以找_netblock.google.com,外加dnsmasq、pdnsd和vps上的dnsmasq配合

        回复
  2. willy

    不知道xiaoxia 有没有注意到过一款开源硬件 raspberry Pi 呢?那个很容易刷机,在上面跑python也很流畅。关键还是省电,只有5w,也可以刷成路由器那样的,很适合折腾。。

    回复
  3. wmtcool

    我想请教一下,通过交换机连接无线路由器,电脑通过无线路由器上网,应该怎么设置。交换机的线应该连接wan口,还是lan口。wan口,和lan口的ip怎么设置,如何不发生arp冲突。

    回复
    1. Xiaoxia 文章作者

      方法很多,你连入交换机是静态ip还是动态ip分配的?还是说要pppoe?
      你可以把路由器桥接到交换机,这样就不要接wan口,路由器也不需要dhcp。
      也可以接wan口,路由器需要设置wan的ip,同时打开dhcp,最好lan和wan的ip不冲突。

      回复
  4. silent

    那极路由就是那openwrt+luci换皮肤的。。。真坑爹

    我也想搞个tomato的来玩玩,可惜万恶的锐捷,还是老老实实的用openwrt了~

    回复
          1. VellBibi

            自由职业?我最近都在纠结是考研还是工作呢。。。现在大三了,菜鸟技术,情商还有点低。。。咋办啊,呵呵

            回复
  5. winsel

    re200e-ca 这个不错啊,用tomato的跟你这个差不多,CPU5358的500Mhz,默认64M内存,16Mflash,带usb口,网上有tomato固件,不过好像也是佐须之男发布的,,大虾研究一下呗,这个是电信配送的,网上都是二手,50几一个,比腾达好多了去

    回复
  6. 夜的咖啡

    翻的话我暂时没想把ga放到路由器里,我路由器ROM比较小想塞进python太折腾
    我目前是用了pptp vpn拨号,然后配合国内外IP路由表来分流流量。
    dns污染的话暂时用西厢的那些IP特征过滤来解决,不过要使用国外DNS才能收到正确DNS响应包,但国外DNS会让CDN失效。
    所以我在路由器上跑unbound做DNS服务器迭代查询。

    目前碰到点BUG,比如dns查询不总是走本地线路出去,有时候就会返回一个国外CDN的IP回来。

    上面这个方法如果自己有个高速VPN(最好是香港一类的,毕竟访问国外网站万一人家有亚洲CDN IP,这样访问网站不会从美国绕回来)就很好了~

    回复
  7. HG255d小菜鸟

    小虾你好,因为关注你的博客,所以本人最近刚开始玩HG255D,现在想要编译一个USB无线网卡(磊科NW360,芯片是RTL8191s)驱动到路由器上使用,目前自己安装了debian6.06,从svn://svn.openwrt.org.cn/dreambox/trunk下载并编译了一个OpenWrt-Toolchain-ramips-for-mipsel_r2-gcc-4.3.3+cs_uClibc-0.9.30.1.tar.bz2
    ,然后解压到一个目录,并把交叉编译路径usr/bin加到PATH变量,接着从网上下载RTL8191SU_usb_linux_v2.6.0006.20100601.zip(这个我在ubuntu8.0下编译通过,并可以正常使用),
    接着修改Makefile,修改配置新增
    ifeq ($(CONFIG_PLATFORM_OPENWRT), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DRTK_DMP_PLATFORM
    ARCH:=mips
    CROSS_COMPILE:=mipsel-openwrt-linux-
    KVER:= $(shell uname -r)
    KSRC:=/usr/src/linux-source-2.6.32
    endif
    然后make,发现报很多错误,是不是KSRC设置错了,还是版本号不对? 希望小虾能给点指导,指出错误的地方,最好能给个能编译通过的例子,附上驱动代码,能抽空帮忙指导下让我这个小菜鸟能编译成功就更好了!

    资源路径:
    参考编译openwrt dreambox: http://www.right.com.cn/forum/thread-119877-1-1.html
    usb网卡驱动地址:http://pan.baidu.com/s/1eg4bt

    回复
    1. Xiaoxia 文章作者

      hi, 我还没有编译过openWRT,可能要迟点才有时间研究。如果我顺利编译过了,我会写文章的 😀

      回复
      1. HG255d小菜鸟

        已经编译成功,KSRC:=/usr/src/linux-source-2.6.32 改成 KSRC := /home/david/openwrt/src/openwrt-dreambox/build_dir/linux-ramips_rt305x/linux-2.6.32.59 ,原来openwrt的内核代码在这里! insmod xxx.ko 然后ifconfig wlan1 up,USB无线网卡的灯就亮了,看下内核日志也没有报错! 可就是/etc/config/network 和 /etc/config/wireless文件怎么配置也无法使用新的网卡,不知还少了哪一步,只能先买个能够加载成功的无线网卡了,本人想弄一个无线中继(客户端+接入点),这样,路由器拿到有无线网络的地方就可以使用openwrt了(不需网线了),还有就是想做一个远程监控,房间图像有变化就发送图像,消息到139邮箱(可以免费短信通知),高级点就通过发送邮件,让路由器执行命令。YY中… 呵呵~

        回复
  8. 邓老板

    找资料不在意找到了这里,原来小虾还是软件高手,有机会大家合作一下,你软,我硬。上面的图片上的236W的字很眼熟,原来是我写的,大家以后需要改版机(TOMATO,OPENWRT,DD-WRT,235,236等等)都可以联系我QQ:126184561,广州的客户可以直接到我实店里拿机。

    回复
  9. 輕微

    哈,树莓贵啊,路由残啊,现在流行玩瘦客户机呢,我花90块钱淘了个mintwave的瘦客户机,内存512,带128cf卡做硬盘,功率也不到10瓦,而且是x86无风扇哦。

    回复
  10. Jack

    你好,请教一下,我的是E2000,刷的tomato by shibby,用网线连接电脑以后,修改不了IP地址(想把192.168.1.1修改为192.168.2.1,以免跟光猫IP冲突)。请问是哪里出错了?

    回复

回复 haitun 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据