免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5529 | 回复: 3
打印 上一主题 下一主题

[其它] 【硬创邦】跟hoowa学做智能路由(四):第一次刷机 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-02 17:36 |只看该作者 |倒序浏览
本帖最后由 hoowa 于 2014-05-02 17:41 编辑

题记:冲,而用之或不盈。渊兮,似万物之宗。挫其锐,解其纷,和其光,同其尘。湛兮似或存。吾不知谁之子,象帝之先。

经过前边三个章节,想必大部分人对路由器可以有一个初步了解,甚至有的童鞋已经拿到了自己心仪的板子用来做开发测试。

从本章开始,我们将进入动手阶段,这个阶段需要有板子来操作。无板子操作干看也行,但是这就是像一桌子吃饭,别人吃的满嘴流油,你流口水,这像话么。

进入设备的开发模式

为什么说一定要进入这个呢,其实如果你不开发嵌入式设备,也可以不进串口,但是hoowa觉得,在软件调试的时候,还是需要进到这里来,这里的信息比telnet看到的多很多。

一般路由器设备上面都会留有4个针脚,有的焊了排针,有的没焊。这四个针脚就是他的调试串口。 算了说的太复杂了,就这么讲吧,我们的电脑有显示器,有鼠标有键盘,这叫输入输出接口,用于人机对话的。路由器也有,路由器上就是串口,只要把串口连接到你的电脑上,你就可以看到系统里的东西。

教学套件的硬件中已经包含了一个USB to TTL的串口板,他是专门用来实现连接路由器串口的。如果你不是教学资料自己的板子,请去淘宝上搜索”USB to TTL”查找自己心仪的转换器,不过需要大家注意的是,有的路由器跟转换芯片之间存在不兼容现象,如果遇到此种现象,请更换路由器或更换转换芯片。

连接设备第一步:

将串口板的小板子驱动先在系统中安装完成,如果是Linux有的已经具备了这个驱动,并且自动识别成为了dev下的一个com口设备。

连接设备第二步:

将串口板连接到计算机上,等待Windows识别这个板子,然后查看您计算机的“设备管理器”,是否多了这么一个东西:


(图:串口板的系统设备)


请记住(COMX)这个设备,其中X表示这个板子在你系统中当前的串口编号。

连接设备第三步:

将M150开发板连接到串口板上:


(图:主板串口定义)


主板跟串口板连接器的连接如下表:

主板 串口小板
RX<————->TX
TX<————->RX
GND<————>GND


上面的表大家明白吧,就是很基本的电子连接,一个收(RX),一个发(TX),再有一条地线(GND),就可以传输了。需要大家注意的是,VCC或V3.3就不要连接了,那个是供电的,如果连接了可能会烧毁串口板哦。

连接设备第四步:

www.putty.org下载一个putty这个小工具。然后打开连接类型选择Serial。Serial line里填写COMX(就是你刚才的那个串口的号)。Speed填写115200。然后点击打开。

请注意,由于各种设备的配置不同和Uboot不同,如果你使用的不是M150,连接速率请像你的供货商询问。

(图:putty配置)


putty的使用方式,本文不再讲解。如果没用过putty的,请自己上网学习。

连接设备第五步:

打开路由器的电源。这个时候屏幕中应该可以看到很多信息了。效果差不多如下:

  1. U-Boot 1.1.4 (Apr 11 2013 – 01:45:00)
  2. DRAM: 64 MBled turning on for 1s…id read 0x100000ffflash size 8388608, sector count = 128Flash: 8 MBUsing default environment
复制代码


然后大量的数据涌出,这表明系统已经在启动了,当系统启动差不多的时候,按下回车是否有反应,如果有反应表示你的串口连接已经OK了。hoowa希望在大家没有完全掌握产品之前,多用串口操作系统,这样即使设备崩溃了,崩溃信息也可以通过串口传输到你的个人电脑上。

连接设备第六步:

串口板看起来简单,但是由于各类路由开发板产品质量不完全一样,因此可能存在的几个问题跟大家说明下。

  • putty打不开COM设备:驱动有问题,或参数填写有问题,或你那个板子有问题。
  • 开发板上电以后屏幕啥都不显示:那三条线连接的有问题。
  • 串口板过热或冒烟:恭喜你板子烧了,让你得瑟插到VCC过电了吧。
  • 屏幕显示了,但是现实的是乱码:可能是Speed速率没设置正确,也可能是线接触不良。重新连接所有设备,包括重插串口板。
  • 所有信息都能正常显示,但是按回车没反应并且也无法输入信息:可能还是线连接有错误注意看顺序,重新连接所有设备,包括重插串口板。


如果以上方法你连接还不行,要么是你的什么东西坏了,要么是你真的人品太烂了,请砸掉电脑。

认识bootloader

经过上面的流程,可能有的朋友已经发现了,这个时候你已经进入系统了。可以输入一些标准的linux指令。那么不要那么急,我们再回过头讲下Bootloader(引导系统)。

在嵌入式设备中Bootloader的工作要更多,他要做一些基本的外部电子设备的检测,同时完成CPU所要求的初始化,再启动Flash上的Linux内核。

Uboot是德国DENX小组开发、用于嵌入式CPU的Bootloader,它支持10多种不同的操作系统(包括x86架构)。其小巧速度快,已经成为了Atheros(高通)和Ralink(联发科)产品的标配引导系统,并且在所有嵌入式的引导系统中市场占有率最大。所以我们的开发板也是Uboot系统。

硬件启动揭秘

很多书籍都详细讲解了Uboot如何引导的,其实我觉得讲了也没多大用,那玩意都是CPU厂家提供SDK里完善的东西,有几个人需要改那个啊。所以这里我改变下说法。我说说系统到底咋启动的。

上电—>晶振发起频率抖动—>CPU启动内部代码—>Uboot启动—>Uboot根据参数设置倍频—>Uboot进行一些其他的内部寄存器配置—>Uboot启动操作系统


首先设备上电,上电后晶振开始发起一个指定频率的震动,这个时候CPU就根据晶振的频率进行了启动,CPU工作在晶振频率下启动自己的内部代码(CPU内部有一小段代码和一点点内存,用来做最基础的事情,并且查找bootloader在哪),然后启动uboot,最后进入操作系统。

好吧,我承认,这个太复杂了,我换个说法,汽车打火的时候需要启动机,启动以后,只要给发动机油,发动机就可以工作在高转速下,带着人出去跑了。CPU也是这个原理。

第一次刷机

本来hoowa想从怎么编译固件开始,但是又觉得太深了,我们要深入浅出,所以,我们先从刷固件开始。这样,让大家先熟悉系统,以后再介绍那些更为精彩的世界。

刷机第一步:

首先,请下载网上OpenWRT官方已经制作好的基本固件。如M150开发板的可用标准固件同WR743nd-v2(第二版)的硬件是接近的,因此可以刷为这个路由器所设计的OpenWRT固件。

下载地址:http://downloads.openwrt.org/snapshots/trunk/ar71xx/
文件名为:openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin

非教程开发板请向经销商咨询可刷哪个官方OpenWRT固件,如果你的经销商说没有,那就扔了那个板子换一个有的。

刷机第二步:

(ps:如果你不是本教程的M150开发板,请参考本教程的流程并向经销商询问Uboot的刷机使用方法,以下步骤均仅针对教程板型)

下载好以后,将你的电脑用网线连接到开发板三个网口里中间那个。请注意两点:1.你的串口板子要连接电脑的putty,这样才能知道刷机的过程中到底有什么信息输出;2.最好是直接连接网线并断开无线网络,防止部分交换机刷机过程中闪断失败或IP地址冲突造成电脑路由表不对。

按住Reset按钮,同时给路由器上电,通过Putty看到如下信息后松开Reset按键:

  1. eth1: 00:03:7f:ff:ff:feathrs26_reg_init_lanATHRS26: resetting s26ATHRS26: s26 reset doneeth1 upeth0, eth1Enter Backup Mode…eth1 link downeth0 link downeth1 link downuip init…http init…eth1 link downeth1 link down……eth1 link downeth1 link downdup 1 speed 1000
复制代码


刷机第三步:

将电脑网卡设置为固定IP地址192.168.1.X的地址,通过浏览器(建议使用通用浏览器如IE、Chrome等,不推荐使用加壳浏览器)访问192.168.1.1,你将看到刷机的界面。

用那个选择文件的按钮选中固件openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin这个文件,然后提交。

提交后屏幕将显示:

  1. upgrade firmware now!
  2. Uploaded RunTime Image is 2949124 BytesWe will update the ==firmware== NOW!
  3. First 0×2 last 0x7e sector size 0×10000 86
复制代码


其中那个86表示当前处理的位置计数。当写入完成后屏幕将显示:

  1. Erased 125 sectorswrite addr: 9f020000Finish Upgra
  2. U-Boot 1.1.4 (Apr 11 2013 – 01:45:00)….procd: – init complete -
复制代码


中间有大量系统启动信息,暂时不用理会。按下回车后显示:



表示你刷机完成。

如果你在以上刷机流程遇到了问题,请清空浏览器,或更换浏览器,最不济更换个电脑吧,然后重复操作以上步骤。

在本章刷机已经完成,细心的朋友会发现这个时候系统已经可用了,没错,现在你已经有了一个自己的纯净版的OpenWRT系统,具备了最最最底层OpenWRT的支持,这个时候你可以随便的去玩。玩坏了不要紧,还可以重新刷对不对。 随便折腾吧。在下章,我们将一起讨论下系统方面的知识,以及基本的系统指令和配置方法。

最后,大家现在可以开始提问,在雷锋网文章评论、ChinaUnix帖子、公众号「宅客」:letshome、QQ群:196302618、邮箱:DIYRouter#163.com都可以提交,问题我将会在下章的时候统一解答。需要提醒下,我并不是高手,我回答问题有三个原则:1、我会的我直接回答 2、我不太会的我看着回答 3、我不会的我瞎忽悠 所以我给的答案是否正确需要大家自行判断。

评分

参与人数 1可用积分 +10 收起 理由
amarant + 10 鼓励一下!

查看全部评分

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
2 [报告]
发表于 2014-05-08 15:39 |只看该作者
回复 1# hoowa


    lz快更新,等的花儿都谢了!

论坛徽章:
0
3 [报告]
发表于 2014-05-08 20:34 |只看该作者
对于这个想法,此情可待

论坛徽章:
8
2015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2015-02-04 12:00:07羊年新春福章
日期:2015-02-04 11:57:56双子座
日期:2014-12-02 11:44:59金牛座
日期:2014-10-08 16:47:08狮子座
日期:2014-08-29 13:37:46巳蛇
日期:2014-08-26 17:32:29NBA常规赛纪念章
日期:2015-05-04 22:32:03
4 [报告]
发表于 2014-07-01 11:16 |只看该作者
howwa兄写的很详细,拜读了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP