硬件

为了研究传说中的dd-wrt与tomato系统,专门买了一个linksys e3200路由器。

CPU Broadcom BCM5357 500 MHz
Flash ROM Winbond 25Q128BUFG 16 MB
RAM EtronTech EM6AB160TSC-5G 32M x 16 bit 64 MB
NVRAM   60KB
Radios 2.4 Ghz Broadcom BCM47186 (SoC) IEEE 802.11b(1,2,5.5,11Mbps)/g(6,9,12,18,24,36,48,54Mbps)/n(up to 300+300 Mbps)
Radios 5 Ghz Broadcom BCM43236 IEEE 802.11a(6,9,12,18,24,36,48,54Mbps)/n(up to 300+300 Mbps)
Antenna Location Internal 3
Switch BCM53125SKMMLG 4x GigE + 1 WAN
USB 1x USB 2.0
e3200的cpu为bcm5357(有些网站上说是BCM47186,但我在cpuinfo中看到的是5357),频率为500mhz,千兆交换芯片为bcm53125,5g频段的无线芯片为bcm43236,内存为64m,flash为16m,4口千兆交换机+1口千兆wan口,附带一个usb2.0接口,内置6天线。
在路由器的选择上,也考虑过华硕等其它品牌,不过还是对cisco更信赖,也有深厚的感情,就只在linksys里面找了。考虑到以后会尝试很多复杂的应用,所以比较在意cpu的性能,500mHz已经是市场上很高的了。能挂硬盘是很多应用的基础,所以usb接口必不可少。低于32m内存的话挂bt就会需要swap,所以内存也越大越好,64m内存也是原装中最高的,以后有必要的话再改装成128m的吧。16m的flash就是装complete的tomato固件也游刃有余了。这一款很让人满意。而在12月1号,http://tomato.groov.pl 刚刚出了最新的固件,已经能够完美支持2.5G与5G双频了。
这款的外形还不错。淘宝上买了原装官翻的,500块,拿到手的外形很完美,没有划痕。发热量比家里tp-link的要大,不过也只是点点温热。能带动我的移动硬盘。
固件,刷机
在选择固件方面做了点调查,主要可用的有dd-wrt,原版tomato,dualwan tomato。在网上看了一些介绍与使用心得,大体上我的理解是dd-wrt比较老牌,tomato是近来发威流行起来的,稳定性和功能都不逊于dd-wrt。而且已经能完善到在很多路由器上实现直接刷机而不用通过先刷dd的过度方式。出于初学者随大流的考虑,选择了tomato。而至于原版tomato和dualwan tomato相比,由于现在不太在意双wan双拨来提高带宽,所以暂时选择了原版tt入手,怕万一刷砖了就麻烦了。
在刷机过程中,有几个觉得需要知道的基本知识。
ram,flash,nvram,CEF:这四个是一个路由器所有的存储介质。CEF相当于PC的bios;flash相当于PC的硬盘,用来存放操作系统,也就是固件;nvram相当于PC的cmos,保存路由器的一些设置;ram则与PC的ddr内存一样,是运行时系统存储。
当路由器插上电后自动进入CFE,CFE进行类似PC的BIOS那样进行自检,自检通过后就引导存放在flash中的固件,加载到ram里供cpu执行,并会读取nvram的内容完成自我配置。正常情况下最多一分钟路由器的固件就会引导完毕,并且Power灯是常亮的。如果Power灯一闪一闪,那一般是CFE没有引导成功路由器的固件(固件不存在、不正确、已损坏等等)。
通常的刷机都是刷flash,而nvram里的内容都是跟固件相伴而生的,所以刷了新的flash就应该把nvram的内容清空。这就是为什么刷机前,刷机后都要来一遍传说中的“30-30-30”。当然,能够进入shell模式的话,可以通过命令来清nvram。
我用的固件是从http://tomato.groov.pl下载的,固件的文件名是tomato-E3200USB-NVRAM60K-1.28.RT-N5x-MIPSR2-097-AIO.bin
命名规则一般是tomato-(型号)(是否带USB支持)-NVRAM(nvram大小)-(内核版本,1.28是基于linux2.6内核)-N5x-MIPSR2-097-(功能,比如BT,VPN支持,mini表示最简单版本,适合flash小的,AIO应该是all in one的完整包)
直接通过原系统的upgrade页面刷机。前后“30-30-30”,紧张的看着灯在一闪一闪和熄灭间折腾了一会后到常亮状态。
这里提到的“30-30-30”是如下一个过程,用来清nvram,最好刷机前后各一次完整的流程。
时间  30秒  30秒  30秒  之后
reset  按住  按住  按住  放掉
电源  通电  断电  通电   通电
http://www.dualwan.cn是个不错的网站,“常见问题解答”还有“用户手册”页面都非常值得细读。
初尝系统
刷完后简单配置了一下网络,实现基本的家用路由设置,然后把usb支持,nas(network attached storage)以及ftp支持打开。在PC以及ipad上都试了一下,很快就找到了这个共享文件夹,看720p的电影毫无压力,但是1080p的就比较卡了。
当然,在设置网络的时候,无线功率要调一下,tomato默认的是42mW,太小了,会导致信号弱,无线网速慢。我调高到了70mW,已经能够穿墙150mbps了。
接着就打开ssh访问,进入了路由器的shell。
先来看看文件系统吧
root@router:/# ll
drwxr-xr-x    2 root     root           564 Oct 21 02:43 bin/
drwxr-xr-x    2 root     root             3 Oct 21 02:45 bkp/
drwxr-xr-x    2 root     root             3 Oct 21 02:45 cifs1/
drwxr-xr-x    2 root     root             3 Oct 21 02:45 cifs2/
drwxrwxrwt    5 root     root          1620 Jan  1  1970 dev/
lrwxrwxrwx    1 root     root             7 Oct 21 02:45 etc -> tmp/etc/
lrwxrwxrwx    1 root     root             8 Oct 21 02:45 home -> tmp/home/
drwxr-xr-x    3 root     root          1024 Nov 27 00:46 jffs/
drwxr-xr-x    3 root     root           218 Oct 21 02:45 lib/
lrwxrwxrwx    1 root     root             7 Oct 21 02:45 mnt -> tmp/mnt/
drwxr-xr-x    2 root     root             3 Oct 21 02:45 nas/
drwxr-xr-x    9 root     root          1024 Nov 30 22:40 opt/
dr-xr-xr-x   57 root     root             0 Jan  1  2000 proc/
drwxr-xr-x    4 root     root            32 Oct 21 02:45 rom/
lrwxrwxrwx    1 root     root            13 Oct 21 02:45 root -> tmp/home/root/
drwxr-xr-x    2 root     root           784 Oct 21 02:45 sbin/
drwxr-xr-x   10 root     root             0 Jan  1  2000 sys/
drwxrwxrwx    2 root     root             3 Oct 21 02:45 tftpboot/
drwxrwxrwx   10 root     root           260 Nov 30 23:34 tmp/
drwxr-xr-x    8 root     root            95 Oct 21 02:45 usr/
lrwxrwxrwx    1 root     root             7 Oct 21 02:45 var -> tmp/var/
drwxr-xr-x    3 root     root          2694 Oct 21 02:45 www/
注意看,etc,home,mnt,root,var都是symbol link到tmp下面的,这与普通的linux系统有些不一样。试验了一下,在tmp下面,以及其子目录下面,是可写的,但是重启后数据全丢失;而在除tmp(以及symbol link到其下的目录)以外,其它目录都没有修改的权限。
可以得出结论,tmp下的数据都只存在ram里面,而其它的目录都是在flash上的。其中,jffs目录对应flash存放固件后剩下的空间,是可用的,但是必须在管理页面打开访问权限后才能使用。
www目录当然存放的就是路由器管理页面的代码了。主要用的asp来做的。
刚刷的系统像vi,sed,awk,wget,ping,netstat等常用工具都有了,实现的方式都是内置的busybox
root@router:/# which ping
/bin/ping
root@router:/# ll bin/ping
lrwxrwxrwx    1 root     root             7 Oct 21 02:45 bin/ping -> busybox*

安装软件
能够安装软件是一切扩展功能的开始。但有一系列的问题要解决。
1,装在什么地方?
刚也说了,只有tmp下是可写的,但是重启后就没有了,这软件装在哪里呢?也就是说哪里的存储资源是可用的呢?
jffs:这是第一个救命稻草。刚说了,它实际上是flash上存了固件后剩下来的空间,打开后是可以用的。这也是很多路由器装软件的地方。但是,这确实只是稻草,因为太小了,没几兆,装不了多少东西。
usb:这才是终极解决方案,要多大就有多大。只不过,需要是得ext3的文件格式。于是我小心的用pq magic把移动硬盘挪出几个G的大小格式化成ext3的格式。
有了硬资源后,下面需要一些软件的配置。
软件都是要装到/opt下面的,现在有这个目录存在,但是不可写,也是空的。需用通过mount bind命令来把可用的空间mount到opt目录。
如果使用jffs,则可以用下面的命令
cd /jffs
mkdir opt
mount -o bind /jffs/opt /opt
对于我用移动硬盘,为了跟用jffs看起来一样,故技重施一下,把移动硬盘中的目录先mount到jffs
cd /mnt/linux
mkdir jffs
mount -o bind /mnt/linux/jffs /jffs
然后再接着运行之前的命令,这样我的linux盘下jffs目录中也有了opt目录,而就是实际mount到/opt的位置。
这样的mount命令在重启后就失效了,/opt重新变成空的不可写空间了。所以我把如下脚步通过USB support配置页面加到“Run after mounting”,这样每次重启后,只要移动硬盘插着的就会自动完成这一系列步骤
if mount | grep -q /tmp/mnt/linux ; then
mount -o bind /mnt/linux/jffs /jffs
mount -o bind /jffs/opt /opt
fi
2,用什么装软件?
最简单流行的当然是ipkg包了。网上很容易搜到安装方法,举例如下:
  1. cd /tmp
  2. wget http://bbs.dualwan.cn/downloads/optware-install.sh -O - | tr -d '\r' > /tmp/optware-install.sh
  3. chmod 755 optware-install.sh
  4. sh optware-install.sh

其中,optware-install.sh是一个用来安装ipkg的脚本文件,wget用来从指定url下载这个文件(很多地方都有这个文件,内容相同),由于直接下载下来的这个文件换行符有问题,所以要通过管道执行tr -d '\r'来处理一下。
下载这个文件后,打开看了一下,用的ipkg软件源是http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable,在网上也能找到一些别的ipkg源,但是这个是用的最多的,也是从我这测试网速相对最稳定的,虽然也非常慢,而且也丢包。
执行这个脚本的时间比较长,基本上看到的都是wget下载的进度显示,还经常stall,好不容易装完后,ipkg update更加慢,ipkg install更是卡的让我不能忍,甚至怀疑是不是我路由器的问题。我用wget抓了个网易的主页,瞬间完成,然后又比较了一下ping网易和ping ipkg.nslu2-linux.org的速度,总算安心了,我路由器没问题,是这个源的网速问题。
我几乎都没有用ipkg install成功安装过一个软件,总是下到一半就断了,或者文件下载错误了。
无意中在http://www.dualwan.cn/index.php/download/category/52-tomato-dualwan找到了一丝灵感,装了完整版本的wget,然后给这个源在本地一次性的做一个镜像。
wget -m http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable
把所有的安装包都扒下来后,自己另外建一个http server,把文件夹挂过去,然后把/opt/etc/ipkg.conf中的src改成自己的url,ipkg update一下,再安装软件时就飞一样了。
这个完整版的wget很强大,值得好好研究,把玩一下。实际上,在用上面提到的wget -m命令做镜像的时候,发现下载的index.html文件不完整,缺少部分ipk的链接,导致没有下载这些缺失的ipk文件。另外,发现这个命令不只是抓stable下面的文件,还往上递归了,下了很多不需要的东西。
感觉最好的方式是用wget把http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/index.html文件下载下来,确保其完整性。然后用如下命令来下载里面出现的所有链接的文件。-i表示输入下载文件url列表,-F表示这个输入文件是html格式的,-B指定输入文件中相对路径url的前缀
wget -i index.html  -F -B http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/
我下载的时候网速差不多10k以内,有时候半天不动,如果一次下载出问题了,可以kill掉这个进程后再用同样的命令加上-c来断点续传。
正是折腾这个镜像的过程中让我见识了wget的强大。
dualwan的那个页面还有一个好玩的工具openwrt_cpu_bench,路由器的一个跑分工具,show一下我的数据
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 27us
Time to run memory bench: 2.57[secs]
Time to run computation of pi (2400 digits, 10 times): 6.08[secs]
Time to run computation of e (9009 digits): 5.35[secs]
Time to run float bench: 2.45[secs]
Total time: 16.5s
You can copy/paste the following line in the wiki table at: http://wiki.openwrt.org/HardwarePerformance
|| 2012-12-01 || ''Author'' || 2.6s || 6.1s || 5.4s || 2.5s || v0.6 || ''OS'' || ''DeviceModel'' || ''CPU model'' || ''CPU Frequency'' || ''LinkToHwPage'' ||

转载于:https://www.cnblogs.com/honest/archive/2012/12/14/2817912.html

Linksys e3200初试tomato系统相关推荐

  1. C++程序设计课程设计(研究生初试录取系统)

    一.实验内容 实验设计的题目.内容 研究生考试课程为4门,其中数学.外语.政治为统一命题,而专业基础课则根据不同的专业由招生学校自行命题.国家对初试录取分数有总分要求(如某一年要求4门课总分应达到31 ...

  2. 研究生初试录取系统c++

    一个学期过去了,网课划水一时爽,一直划水一直爽,话不多说,来写写这学期的课程设计吧! 问题描述 研究生考试课程为 4 门,其中数学.外语.政 治为统一命题,而专业基础课则 根据不同的专业由招生学校自行 ...

  3. 研究生初试录取系统C语言,研究生初试录取管理系统

    C语言编写 /*程序运行时首先要求 输入:考生姓名,准考证号,报考专业,是否应届生,4门课程(政治.数学.外语.专业基础课)成绩.这些原始数据应保存到一个文件中. 然后输入:录取的总分要求,各课程的最 ...

  4. 【原创】小米路由R1D 刷Tomato系统及刷回原厂系统

    从朋友手里淘来一个未开封的小米路由R1D(第一代路由器产品),看网上这个能刷第三方系统,我就想试试,家里反正有一个自用的路由器,就放心大胆的开始折腾. 网上能找到的文档都是15年份的,不知道现在还能不 ...

  5. 路由器常见的第三方系统( OpenWRT,LEDE,PandoraBox,Gargoyle | ASUSWrt,Merlin,Padavan | DD-WRT | Tomato )

    先上一张中国最新的路由器十大品牌 https://www.maigoo.com/maigoo/126dnws_index.html 新入坑的同学肯定有此疑问,想刷系统,不知道买哪个路由,也不知道这些系 ...

  6. VISTA系统常识技巧集锦

    VISTA系统常识技巧集锦 2010年06月23日 [b][/b][b][/b][b]缩短响应时间 让Vista运行得更快 在微软以前的几个操作系统中,特是在WindowsXP之前的几个操作系统,当用 ...

  7. 路由配置url跳转传参_如何配置路由器以进行网络范围的URL记录

    路由配置url跳转传参 Don't be in the dark about who is visiting what web sites on your LAN. Use our two-prong ...

  8. 程序员面对下列技术问题,如何做决策

    在开发系统时,经常会面对各种问题进行决策.比如,日志是写到文本文件中,还是写到数据库:邮件提醒功能是由系统自动发送还是由用户主动发送.下面列举我经常遇到的问题,以及我的应对策略. 1  在系统开始运行 ...

  9. 有虚拟服务器的无线路由,无线路由,虚拟服务器,。怎么办?

    问题描述: Tomato是基于Linux的开源路由器系统,提供了强大的功能.其中,提供FTP服务器支持是Tomato比较重要的一个功能,下面讲讲如何在基于Tomato系统的路由器搭建FTP服务器 解决 ...

  10. openwrt多wan限上下行速脚本,基于qosv4,imq模块替换成ifb模块

    由于树莓派2装openwrt官方没有imq模块, 好像说ifb比较有优势,优势对于普通玩家来说,没用~. 百度翻遍各种文档,总算凑合起来可以用.有问题再提出来讨论,欢迎测试. 有些参数是写死在脚本里面 ...

最新文章

  1. epub阅读器_推荐一款Epub(windows版)阅读软件,附下载安装教程
  2. 《剑指offer》——03. 数组中重复的数字——HashSet、哈希思想——java实现
  3. [自爆系列]浅谈我对搜索的错误了解
  4. 【PIC18单片机学习笔记】一、程序的烧录
  5. 实例19:python
  6. Java元宵趣图_模仿百度首页“元宵节汤圆”动图(js的定时任务:setInterval)
  7. Caffe傻瓜系列(2):视觉层(Vision Layers)及参数
  8. 【二级等保】二级等保怎么做?价格怎么样?贵吗?
  9. arduinouno的地是相连的吗_如何连接地线是最标准的,能起到保障的作用吗?
  10. alpha对冲(股票+期货)——Python量化
  11. DataMining——孤立点:落在高于Q1 或低于Q3 的1.5IQR的位置
  12. 一个40岁的男人如果穷得一无所有该怎么办?
  13. 课程设计 齿轮油泵泵体的机械加工工艺规程及工艺夹具装备设计
  14. 外星人Alienware 17R4基本上可完美黑苹果10.13.6
  15. Spring监听器的完整使用步骤
  16. 梦回江南 烟雨朦胧中 相思泪 不常有
  17. 基于微信小程序的音乐播放器系统+后台管理系统(SSM+mysql)-JAVA.VUE【毕业设计、论文、源码、开题报告】
  18. 程序员 的 编程格言 (中英)
  19. sql脚本自动完成数据库创建、切换、建表、数据初始化
  20. (转)开膛破肚!惠普独显双核dv2000拆解

热门文章

  1. 【微信小程序】开发、测试、上线全流程梳理总结
  2. java-php-python-ssm在线教学质量评价系统计算机毕业设计
  3. java-php-python-ssm制药企业人力资源管理系统计算机毕业设计
  4. 过程装备安装调试技术实训装置QY-GCKZ04
  5. PowerDesigner生成java类图
  6. 支持向量机之思维导图
  7. 文献阅读-一种基于机器学习方法的海事监视雷达海杂波抑制方法
  8. flutter 一键生成安卓和ios应用图标
  9. 使用iTunes 12.7 可以直接安装ipa安装包
  10. java-word转pdf时的异常积累