跟hoowa学做智能路由.docx
- 文档编号:8767320
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:83
- 大小:2.83MB
跟hoowa学做智能路由.docx
《跟hoowa学做智能路由.docx》由会员分享,可在线阅读,更多相关《跟hoowa学做智能路由.docx(83页珍藏版)》请在冰豆网上搜索。
跟hoowa学做智能路由
(一):
我们来动手吧!
2013、2014年,智能路由产品层出不穷,从极路由到如意云、从360安全路由到小米“智能家居”路由;在此之前,许多创客玩家们也都有尝试在开发板上自己制造出一台路由器。
究竟一台智能路由是如何做出来的呢?
我们是否可以在众多开源组件的基础上自己来构建一台智能路由?
0
雷锋网在此携手硬件达人hoowasun(孙冰),以切身实践来为大家解密。
在本次实践活动中,hoowa将把自己在DIY智能路由的实践以文章形式发布在雷锋网上,我们的读者小伙伴们可以在文章下评论交流,让我们一起来打造一台智能路由器吧!
0
什么是智能路由?
要说什么是智能路由,一定要从功能路由说起。
我们传统的、包括市面上现在最容易购买到的路由器我们普遍称呼为功能路由,这些路由器的功能是固定的为了满足不同用户而设计的产品。
而智能路由是采用了更高性能的CPU和更大的RAM所实现的类似Android这样的全功能操作系统环境。
而智能路由的概念是从2013年初逐步的普及到市场,目前智能路由市场已经包括有:
极路由,小米路由,果壳路由等多家互联网公司加入。
0
hoowa认为,各大厂家目前瞄准的市场是“占领用户的客厅”,但智能路由的市场远远没有真正的来到春天,现在来说,还是一种鱼龙混杂,诸侯割据的年代。
首先芯片厂家并没有为此做好硬件的准备,互联网公司只是盲目的进入了这个领域,随便搞个网址过滤也都号称智能路由,智能个卵子哦,缺乏真正对用户有价值的内容。
而掌握有价值内容的公司,由于尚没有了解怎样保护自己的利益情况下进入这个领域,也大部分都在观望。
0
另外,有一个市场"智能家居"也近两年逐渐的被互联网公司“相中”,目前普遍市场认为,智能家居的中控中心也是应以智能路由所用的基础架构进行设计,这样才利于成本的降低。
0
讲解形式
教程每章结束后,在后一篇教程发布之前读者可以提出问题,问题可通过在雷锋网发布文章下评论、公众号「宅客」:
letshome、QQ群:
196302618 三种方式提交给hoowa互动解答。
0
章节设置:
0
∙第一章前言
∙第二章从芯片开始了解路由器
∙第三章准备工作
∙第四章第一次刷机
之后章节,将根据各位喜好及hoowa能力,每周动态公布。
0
本教程适合的读者
本教程的讲解内容将以软件的调试,安装,部署,架构为主。
尽量少接触到与硬件相关性的东西。
我们的教程不是教大家怎么学嵌入式,而恰恰是为了让您以更小的代价去进入到智能路由领域。
0
本教程适合有以下基础之人员:
0
1.具备Linux操作基础
2.具备LinuxShell基础
3.互联网从业人员,或是智能路由爱好者
外篇之目录
Area1介绍关于智能路由、芯片、设备的知识
第一章前言0
第二章从芯片开始了解路由器0
MIPS架构
芯片厂商
传统路由器怎么做的
OpenWRT操作系统介绍0
第三章选择合适的设备0
认识设备电路
开发板选型0
Area2做智能路由的基础知识,以及相关的工具软件使用
第四章安装系统0
认识TTL
认识uboot
启动流程
第一次刷机0
第五章先熟悉下OpenWRT0
系统结构
基本信息
基本指令
软件包管理0
第六章编辑和配置基础0
vi使用方法
uci使用方法
scp文件管理0
Area3在系统中基本路由功能的配置方法
第七章基本路由设置0
包含PPPOE拨号,DHCP,STATIC,LANDHCPServer,LANIP,无线配置0
第八章防火墙/DMZ/UPNP0
包含防火墙,端口转发,DMZ,UPNP设置方法0
第九章时区/服务/SSH/0
Area4在不对硬件和软件修改情况下我们可以玩的功能
第十章扩充RAM和FLASH
第十一章实现播放MP3
第十二章实现WEB+PHP环境
第十三章安装MySQL数据库
第十四章实现PERL环境
第十五章实现动态域名
第十六章实现网络存储
第十七章实现摄像头监控
第十八章实现VPN服务器
第十九章实现4G上网
第二十章实现打印机共享0
Area5了解OpenWRT系统的交叉编译,内核驱动的开发方法,以及编程器的使用
自己编译固件
实现系统中刷固件/恢复出厂设置
制作OpenWRT软件包
开发OpenWRT内核模块
实现实现PROC符号
实现内核字符设备
实现BUTTON功能
实现GPIO控制LED灯
实现给CPU超频0
Area6通过软硬结合的手段,智能路由更多的玩法
连接GSM猫收发短信
连接粉尘传感器
连接条码扫描仪
连接电阻屏
[没确定]连接HIFI音响(I2S接口)0
极客路由当电脑用方案
路由空气自动加湿方案
路由红外报警方案
路由企业考勤方案
路由手机音乐播放器方案
(二):
从芯片开始
上一章我们讲了这次DIY活动的来龙去脉,本章我们将一起了解下路由器的架构,芯片,操作系统相关的知识。
我们的目标是让大家都能做智能路由,所以hoowa会尽可能少涉及到嵌入式的知识,因为这孩子本身学习就不好,他自己也害怕那些所谓的各种"定义"会让他联想到上学的时候理科从来都不及格。
0
1嵌入式的架构定义
略。
刚说了不讲这些的,就算我给大家讲了我也是从别的书里抄过来的,有意义么,我一定讲我自己的。
谢谢鼓掌0
2MIPS处理器架构
现在的路由器基本架构和性能已经非常接近于我们的电脑了。
近十年来,路由器所采用的CPU主要都是基于MIPS架构设计的。
说到MIPS可能很多人陌生,说到龙芯了解的人就比较多了,龙芯便是MIPS架构下的一种比较烂的处理器。
0
MIPS架构是由斯坦福大学的教授约翰·轩尼诗在闲的无聊的时候带领他的团队开发的一款处理器。
在随后的3年时间他创立了MIPS科技公司。
MIPS采用了RISC精简指令集设计技术,MIPS架构处理器在当时刷新了32位处理器性能的历史。
在2002年中国研发龙芯处理器,采用了MIPS架构但是没有经过MIPS公司授权遭到起诉,2009年与MIPS公司和解。
0
MIPS架构有过辉煌的历史,它曾经是芯片三国大战(x86、MIPS、PowerPC)的佼佼者,hoowa记得在2000年间国内还可以买到一款叫做Cobalt的服务器(Sun公司为抢占市场收购了这家公司)。
0
简单地说,MIPS架构当年就是为了电脑而设计的,跟另外两种通用处理器一样,但是后期在这一领域被Intel给无情的打死了。
之后转战嵌入式领域,由于MIPS架构的开放性,因此涌出大量芯片公司基于该架构开发路由器芯片。
0
3芯片厂商
我们现在所使用的路由器,其中90%以上都是采用的MIPS架构的芯片,而且基本上都是32位处理器。
在同等价位的情况下,32位,高集成,高性能的处理器,只有MIPS在这个定位领域中最强(相比ARM的低性能版本要强很多)。
0
路由芯片目前普遍采用的是SoC(SystemonaChip)设计,路由器厂家喜欢叫做RoC(RouteronaChip)设计。
0
这些厂家将内存控制、外围IO电路接口、Switch芯片、Wi-Fi芯片、加密芯片、SATA接口、PCIE接口、USB接口等等你能想到没想到的统统都集成到了一块手指甲大小的芯片中,其功耗只有1W到3W之间,性能达到了400MHz到800MHz之间。
但目前有少数厂家已经开始基于ARM开发路由器芯片了,比如Broadcom(博通)公司的BCM470X系列芯片,采用的就是ARM架构,小米路由器第一代产品便是基于此芯片设计。
0
Atheros公司:
Atheros是全球路由芯片的顶级公司,其创始人便是MIPS架构的发明者约翰·轩尼诗。
Atheros的芯片采用MIPS32位架构设计,并且该公司也是Wi-Fi标准的制定者之一,国内已上市的智能路由产品中目前只有极路由·壹代采用这款方案。
Atheros也是目前OpenWRT系统支持最完整、全全面的芯片。
在后期的教程中为了让大家更多了解OpenWRT降低入门难度,我们将基于该公司的方案进行讲解。
该公司目前唯一的问题是在国内的配套产业链不够完善,并且其一款经典芯片跟TP-Link穿一条裤子限制卖给其它厂商。
Atheros在2011年被高通收购,目前旗下产品线正逐步切换到高通品牌下。
0
Broadcom公司:
Broadcom是全球主要无线路由芯片的出货商之一,其产品以稳定可靠著称。
小米第一代路由器便是采用其BCM470X系列处理器,该处理器是ARM架构,不过Boradcom其他的路由芯片大部分都是MIPS架构。
该公司的路由器芯片目前在国内有两个问题,一是对合作厂商要求极高,小公司不搭理。
二是,其芯片发热量很大。
0
Ralink公司:
雷凌科技来自中国台湾地区,也是一家常年耕耘在路由器领域的芯片厂商,而且是目前国内出货量最大的路由器厂商,该厂商不论是产业链,还是相关开发资料,在国内都是最成熟的,其芯片价格也是最便宜的。
因此目前国内上市的智能路由产品大部分都采用该公司方案。
这家厂商的问题,主要是不重视OpenWRT项目,并且其重要的驱动代码并不开源。
Ralink在2011年被联发科收购,目前产品线已经完全切换到MTK品牌。
0
常见的路由器硬件规格0
硬件规格
处理器
MIPS32位架构(无FPU),ARM架构(非常少见)
主频
320Mhz到800Mhz
内存类型
SDRAM,DDR1,DDR2
内存容量
16MB-256MB,常见的是32MB/64MB/128MB
存储器类型
NorFlash/SPIFlash/NandFlash
存储器容量
4MB-128MB,常见的是SPI8MB/SPI16MB
交换机
一般芯片内置或外挂
WIFI
一般芯片内置完整的WIFI或部分外挂
支持操作系统
Linux,VxWorks
部分名词解释0
NorFlash:
最早的用于嵌入式的存储技术,读取速度接近于内存,写速度稍慢。
NandFlash:
目前使用最多的存储器技术,在手机,U盘,SSD硬盘上都采用该技术,容量较大,路由器领域使用较少。
SPIFlash:
串行总线Flash,目前路由器领域使用最广泛的存储器,读速度比NorFlash慢,写速度比NorFlash快很多。
0
传统路由器怎么做的
目前传统路由器厂商,都是基于以上公司芯片设计的。
这些芯片公司们会提供各种资料,包括电路板设计原理图、开发SDK等,这些东西完善到大家难以想像的地步,只要有一台电脑、一款开发板编译安装好系统,一台样品路由器就出来了,连WEB界面都是完善的,所以以前传统厂商拼杀的基本只剩价格和外观。
而一些不法的小厂商,为了让大家觉得无线路由器信号强,使用了违规的大功率信号放大装置,我们现在国内的无线Wi-Fi污染其实已经很严重了。
如果这件事情发生在美国,美国政府会把厂商告破产。
但是在国内,找不到人管。
0
由于国内的传统路由器厂商,过于注意外观(比如路由器必须有天线,因为客户觉得有天线信号强,真他妈神奇只有中国才有这种说法),不注重软件(芯片厂家连WEB都做了,没自己啥事),所以普遍传统路由器厂商在智能路由的领域中,都处于被动,存在被边缘化的风险。
这其中的大厂像TP-Link、磊科这类公司已经意识到自己的风险,正在努力的开发智能路由产品。
不过我还是要黑下,对于这些公司来说,早晚是要左手打右手,他们到底敢革自己命到啥程度,难说!
0
4智能路由器怎么做的
目前大部分智能路由采用了OpenWRT这个开源路由器操作系统作为自己的系统,然后对系统进行修修改改,做个自主知识产权的产品,然后还申请了源代码著作权登记,真不知道这群玩意咋想的,感觉如果比脸皮后,中国人应该是银河系中最强的。
0
OpenWrt被称作为一个嵌入式的Linux发行版。
当年Linksys开源了一款路由器的源代码,然后就有不同的人对这个源代码进行打补丁,然后每一个源代码都是针对一个不同的市场,最后东西就做的乱七八糟了。
OpenWRT选择了另外一条路,他从头开始,一点点把各种软件加到系统中,而开放式的架构,令OpenWRT支持数量繁多的芯片,从X86、ARM到各种不知名的奇怪芯片。
而开发者使用OpenWRT编译出来的固件,烧写到自己的电路板上之后,就相当于拥有了一台服务器。
OpenWRT还支持一种称作为OPKG的增强型安装技术,它使用起来像CentOS下的YUM一样,只需要一个命令,就可以把需要的软件安装在路由器中。
0
从2005年2月截止今日,OpenWRT已经支持了一千多种软件,并且自己移植软件到OpenWRT中非常容易简单。
并且该系统高度模块化,有人说我的产品是深度定制的OpenWRT,其实,只要跟着hoowa把我们的课时学完,只要你懂Linux,人人都可以深度定制OpenWRT真的,是毫无技术可言的。
0
我们选择基于Atheros芯片的方案来配合OpenWRT也是因为该芯片方案被OpenWRT官方支持的最好,非常适合教学。
而国内现在使用最多的Ralink芯片,虽然价格便宜,但是由于OpenWRT官方,和该公司都不太支持,因此并不适合本教学的教程。
大家总不会让我去违反Ralink的保密协议,公开他们的那些自以为非常重要的驱动吧。
0
连载教程的以后章节,将主要围绕OpenWRT这个系统讲解智能路由的开发,从简单的开发移动应用和WEB应用到涵盖到移植软件等各方面内容。
(三):
选择合适的设备
题记:
蛾儿雪柳黄金缕,笑语盈盈暗香去。
众里寻他千XX,蓦然回首,那人却在,灯火阑珊处。
0
选板子最纠结。
随便上淘宝搜索,有一堆乱七八糟的板子,但是这些板子确大部分都不支持官方OpenWRT,很多都是一些行内人Patch出来之后的成果,所以搭建起来很麻烦。
0
1认识基本的电路
我们先说说,认识基本的电路,不论路由器有多大变化,他一定遵循一个原则“CPU里带的不外挂芯片,CPU里不带的外挂芯片”。
对于软件开发者,我们不需要对整个电路十分熟悉或了解。
我们只需要了解大概意思即可。
0
CPU
一般路由器的电路板,CPU都设计在中间位置,旁边有一颗晶振。
目前主流的路由器CPU基本采用BGA封装或QFN封装。
0
如果是功能比较多的会采用BGA封装,他的焊点在芯片下面,如果焊拆CPU需要使用风枪进行。
有经验的焊接人员成功率在80%以上(连续学习1-5天即可)。
0
如果是功能比较少或是为了节省成本的使用QFN封装,该封装在PCB贴片工艺上可以使用在两层电路板上(工艺最简单的)降低成本。
不过QFN比较脆弱一般难以更换CPU。
0
内存
一般在CPU的附近、内存和CPU之间可以看到有很多线在蠕动,大家可以以此辨别内存的位置。
内存包括SDRAM、DDR1、DDR2、DDR3等多种类型。
0
∙SDRAM类型一般选择TSOP封装,有两排脚,经过培训可以随意焊接,也可以去找个修手机的弄。
∙DDR1类型一般也选择TSOP封装的比较多,与SDRAM差不多。
∙DDR2类型一般选择BGA封装,修手机的一般也会更换。
∙DDR3类型一般选择BGA封装,由于速度非常快已经属于高频设备,用在路由器大多数算性能过剩。
如果想知道内存的容量,可以查看内存的型号,然后上该公司的官方网站上查询容量。
一般内存采用bit表示,比如1024Mbit表示内存为128MB。
0
存储器
以前还有很多路由器使用NorFlash做存储器,现在很少了,NorFlash看起来很像内存,但是内存是修长的。
0
现在大部分都使用SPI接口的SOP8或SOP16的封装Flash,在主板上很小的有8个脚的那颗芯片,可能就是你要的Flash存储器。
0
其他芯片
一个普通路由器,除了上述CPU、内存、存储三个主要芯片外,还有供电模块,再没有多余的芯片。
如果你的板子真的有其他芯片,那可能是CPU没有集成所需要的那个功能。
0
2选择一个教学板
理论上只要CPU被支持了,并且拥有8MB的存储器和32MB的内存,就可以流畅运行OpenWRT这个系统,但是如果你想玩得好,配置还是要稍微再高一些。
0
在hoowa的教学资料所使用的系统是hoowa为本次教学制作的定制版OpenWRT,该版本与官方标准发行版OpenWRTAA高度兼容,操作方式可以互换。
(有些童鞋可能会问,为什么要做定制版OpenWRT呢?
原因在于OpenWRT最近版本更迭较频繁,很容易出现新版不兼容旧版命令,定制一个固化的版本可以免于学习时被报错)0
适合新手的选择0
如果你是新手,hoowa推荐你选择跟他用来做教学课程相同的测试板M150,该电路板生产商为Easylink,厂家为本次教学提供完整的支持和服务。
购买该电路板请在淘宝上搜索"跟hoowa学做智能路由教学套件"。
0
教学板的配置:
0
CPU:
Atheros基于MIPS24Kec架构,主频400Mhz
RAM:
DDR2BGA封装512Mbits(64MB)
FLASH:
华邦8MBSPIFLASH
WIFI:
CPU内置150Mbps无线芯片,板载150Mbps无线天线
USB:
2.0接口*3
SD:
TF卡接口
继电器:
两个
GPIO接口:
20个可定义
BUTTON:
2个可定义按键
适合爱动手的朋友0
hoowa定制版OpenWRT还兼容一些市面上现有的路由器,这些路由器产品经过动手调整和修改也可以完成教学内容,适合爱动手的朋友们。
0
大概可以兼容的型号如下表:
0
0
由于芯片、电路板设计多少都有一些区别,接口形态也不完全一致,因此这些型号太繁杂hoowa没有经过详细的测试,如果在学习使用过程中遇到问题,还请多动手解决。
hoowa也建议大家,选择相关型号时,在淘宝上可以询问卖家是否支持AA版OpenWRT系统,淘宝上很多硬件都只能刷特定二进制固件,因此不适合教学。
0
3ElinkM150介绍
(该方案采用核心板+底板方式设计)0
底板接口0
0
底板接口说明0
0
底板按键和灯0
0
底板按键和灯说明0
0
在本章,我们主要介绍了下板子的情况。
如果十分熟悉的朋友,这章凑合看过就好;如果是第一次的朋友,那就请认真看下,因为下一章开始我们就要动手了。
下一章:
“安装系统”,内容包含:
TTL、Uboot、硬件启动揭秘、第一次刷机。
(四):
第一次刷机
题记:
冲,而用之或不盈。
渊兮,似万物之宗。
挫其锐,解其纷,和其光,同其尘。
湛兮似或存。
吾不知谁之子,象帝之先。
0
经过前边三个章节,想必大部分人对路由器可以有一个初步了解,甚至有的童鞋已经拿到了自己心仪的板子用来做开发测试。
0
从本章开始,我们将进入动手阶段,这个阶段需要有板子来操作。
无板子操作干看也行,但是这就是像一桌子吃饭,别人吃的满嘴流油,你流口水,这像话么。
0
1进入设备的开发模式
为什么说一定要进入这个呢,其实如果你不开发嵌入式设备,也可以不进串口,但是hoowa觉得,在软件调试的时候,还是需要进到这里来,这里的信息比telnet看到的多很多。
0
一般路由器设备上面都会留有4个针脚,有的焊了排针,有的没焊。
这四个针脚就是他的调试串口。
算了说的太复杂了,就这么讲吧,我们的电脑有显示器,有鼠标有键盘,这叫输入输出接口,用于人机对话的。
路由器也有,路由器上就是串口,只要把串口连接到你的电脑上,你就可以看到系统里的东西。
0
教学套件的硬件中已经包含了一个USBtoTTL的串口板,他是专门用来实现连接路由器串口的。
如果你不是教学资料自己的板子,请去淘宝上搜索"USBtoTTL"查找自己心仪的转换器,不过需要大家注意的是,有的路由器跟转换芯片之间存在不兼容现象,如果遇到此种现象,请更换路由器或更换转换芯片。
0
连接设备第一步:
0
将串口板的小板子驱动先在系统中安装完成,如果是Linux有的已经具备了这个驱动,并且自动识别成为了dev下的一个com口设备。
0
连接设备第二步:
0
将串口板连接到计算机上,等待Windows识别这个板子,然后查看您计算机的“设备管理器”,是否多了这么一个东西:
0
(图:
串口板的系统设备)0
请记住(COMX)这个设备,其中X表示这个板子在你系统中当前的串口编号。
0
连接设备第三步:
0
将M150开发板连接到串口板上0
(图:
主板串口定义)0
主板跟串口板连接器的连接如下表:
0
主板串口小板
RX<------------->TX
TX<------------->RX
GND<------------>GND
上面的表大家明白吧,就是很基本的电子连接,一个收(RX),一个发(TX),再有一条地线(GND),就可以传输了。
串口线的线序是红+5V、黑GND、白RXD、绿TXD。
需要大家注意的是,VCC或V3.3就不要连接了,那个是供电的,如果连接了可能会烧毁串口板哦。
0
连接设备第四步:
0
去www.putty.org下载一个putty这个小工具。
然后打开连接类型选择Serial。
Serialline里填写COMX(就是你刚才的那个串口的号)。
Speed填写115200。
然后点击打开。
0
请注意,由于各种设备的配置不同和Uboot不同,如果你使用的不是M150,连接速率请像你的供货商询问。
0
(图:
putty配置)0
putty的使用方式,本文不再讲解。
如果没用过putty的,请自己上网学习。
0
连接设备第五步:
0
打开路由器的电源。
这个时候屏幕中应该可以看到很多信息了。
效果差不多如下:
0
U-Boot1.1.4(Apr112013-01:
45:
00)
DRAM:
64MB
ledturningonfor1s...
idread0x100000ff
flashsize8388608,sectorcount=128
Flash:
8MB
Usingdefaultenvironment
然后大量的数据涌出,这表明系统已经在启动了,当系统启动差不多的时候,按下回车是否有反应,如果有反应表示你的串口连接已经OK了。
hoowa希望在大家没有完全掌握产品之前,多用串口操作系统,这样即使设备崩溃了,崩溃信息也可以通过串口传输到你的个人电脑上。
0
连接设备第六步:
0
串口板看起来简单,但是由于各类路由开发板产品质量不完全一样,因此可能存在的几个问题跟大家说明下。
0
∙putty打不开COM设备:
驱动有问题,或参数填写有问题,或你那个板子有问题。
∙开发板上电以后屏幕啥都不显示:
那三条线连接的有问题。
∙串口板过热或冒烟:
恭喜你板子烧了,让你得瑟插到VCC过电了吧。
∙屏幕显示了,但是现实的是乱码:
可能是Speed速率没设置正确,也可能是线接触不良。
重新连接所有设备,包括重插串口板。
∙所有信息都能正常显示,但是按回车没反应并且也无法输入信息:
可能还是线连接有错误注意看顺序,重新连接所有设备,包括重插串口板。
如果以上方法你连接还不行,要么是你的什么东西坏了,要么是你真的人品太烂了,请砸掉电脑。
0
认识bootloader0
经过上面的流程,可能有的朋友已经发现了,这个时候你已经进入系统了。
可以输入一些标准的linux指令。
那么不要那么急,我们再回过头讲下Bootloader(引导系统)。
0
在嵌入式设备中Bootloader的工作要更多,他要做一些基本的外部电子设备的检测,同时完成CPU所要求的初始化,再启动Flash上的Linux内核。
0
Uboot是德国DENX小组开发、用于嵌入式CPU的Bootloader,它支持10多种不同的操作系统(包括x86架构)。
其小巧速度快,已经成为了Atheros(高通)和Ralink(联发科)产品的标配引导系统,并且在所有嵌入式的引导系统中市场占
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hoowa 智能 路由