烧写 OpenWrt 固件 
实验目的: 
  理解什么是 smb 服务器以及 smb 服务器的安装配置使用 
  掌握 OpenWrt 固件的烧写方法 
1.  嵌入式系统启动流程 
对于一个完整的嵌入式系统,它由 U-boot、内核(Linux)、文件系统、应用程序四部分组成。
那么这四部分之间的关系是怎么样的呢?OpenWrt  是属于哪部分呢?当我们 RT5350  开
发板,然后给它一上电,首先运行的就是我们的 U-boot  程序,然后就是 U-boot  来启动
我们的内核(Linux),当内核(Linux)启动完成以后,内核(Linux)就会去挂载我们的文件系统,
当文件系统挂载成功以后,就会在文件系统上面运行我们的应用程序,比如我们学习 C  语
言时写的 Hello World  应用程序。 
OpenWrt  系统是一个嵌入式的 Linux  发行版。它本生是包含了内核(Linux)和文件系统两
部分的。因此,上一章中,我们编译出来的 openwrt-ramips-rt305x-mpr-a2-squashfs-sy 
supgrade.bin  固件,就是将内核(Linux)和文件系统打包成了一个 bin  文件。在这里,大
家肯定会有疑问了,那么 U-boot  是谁提供的呢?对于其它的嵌入式设备,U-boot  是需
要我们单独来编译和烧写的,而对于我们的 RT5350  开发板,我们在出厂的时候,已经在
开发板上的 Flash  中烧入了 U-boot  了。我们可以自己烧写 U-boot  吗?可以哦。 
注意: 
虽然我们可以自己烧写 U-boot,但是,如果不是动手能力特别强的同学,不建议自己烧 
写 U-boot,因为随时都有可能变砖,如果你有 SPI Flash  编程器可以试下。变砖以后,就
只能通过 SPI Flash  编程器来拯救了。还要会焊接 IC 哦,用 SPI Flash  编程器来烧 U-boot、
固件比较慢,过程比较麻烦,所以请大家自己慎重,变砖寄回公司恢复要自行承担运费哦。 
 
2.  smb 网络服务介绍及其安装配置 
  简单的讲,smb 服务器是用来做虚拟机中 ubuntu 与 Windows 文件共享的,如图: 
我们上一讲编译后 OpenWrt 的固件可以通过 smb 服务器共享到 Windowns 中,这样
 
 
深圳市安联德科技有限公司  专注专业无线通讯  勇于创新追求卓越品质    1 
网址: http://aldsz.taobao.com    技术支持与项目合作(Tel):13088850665 QQ:330609038 
我们才能拿到固件进行下载。 
1)  好的,首先进行 smb 服务器的安装操作: 
sudo apt-get install samba   
2)  安装完成后对 smb 配置文件进行配置,如下: 
vi        /etc/samba/smb.conf 
在配置文件最后添加代码: 
[linux] 
comment = smb 
path = /home/linux/smb 
browseable = yes 
writable = yes 
read only = no 
guest ok = yes 
为 smb 服务器创建一个共享目录:  sudo mkdir /home/linux/smb 
改变共享目录的权限:  sudo chmod 777 /home/linux/smb 
3)  重启 smb 服务器 
sudo service smbd restart 
sudo service nmbd restart 
好的,现在可以把我们的固件复制到 smb 共享文件夹里面了: 
固件位置在:  openwrt/trunk/bin/ramips,我们直接 cp 到/home/linux/smb 文件
夹就可以。 
现在我们要在 Windows 中从 smb 服务器拿到我们的固件了,首先必须保证 Windows
可以与 ubuntu 相互 ping 通,首先我们必须知道 ubuntu 的 ip 地址,很简单,输入命令: 
$ifconfig 
  在保证可以 Windows 和 ubuntu 可以相互 ping 通之后,我们在 Windows 中使用运
行( Windows 健+r ),并且输入 ubuntu 的 ip 回车就进入 smb 服务器了! 
 
 
深圳市安联德科技有限公司  专注专业无线通讯  勇于创新追求卓越品质    2 
网址: http://aldsz.taobao.com    技术支持与项目合作(Tel):13088850665 QQ:330609038 
进入 smb 服务器后就可以把我们的固件共享到 Windows 去了,而且不会因为系统不
同而导致文件的改变! 
  我们后面会介绍使用 ssh 网络服务直接开发板从 ubuntu1 下载文件,但是这里我们强
烈要求大家掌握 smb 服务器的使用方法,因为 smb 服务器非常好用和常用! 
 
 
3.  烧写固件前的准备工作 
首先将我们的开发板进行与电脑的连接,即接通过 usb 线连接电脑。 
如果没有安装驱动的话进行驱动的安装,安装完成后电脑可以识别到串口,这里不加讲
述了,参考 zigbee 文档中的驱动安装吧。 
接下来将开发板和电脑进行网络连接,因为我们的程序是通过网线进行下载的! 
然后打开 SecureCRT,如果没有安装该软件的话可以参照本实验的附件:必要工具
和 openwrt 固件文件夹中的内容获得,securecrt 是绿色版解压就可以使用的哦。 
驱动,连接,SecureCRT 软件都准备好了后,我们通过 SecureCRT 建立一个串口连接: 
 
深圳市安联德科技有限公司  专注专业无线通讯  勇于创新追求卓越品质    3 
网址: http://aldsz.taobao.com    技术支持与项目合作(Tel):13088850665 QQ:330609038 
 
 
 
深圳市安联德科技有限公司  专注专业无线通讯  勇于创新追求卓越品质    4 
网址: http://aldsz.taobao.com    技术支持与项目合作(Tel):13088850665 QQ:330609038 
然后我们重新给开发板上电,在 CRT 终端中我们可以看到信息: 
然后停留在了选项部分: 
 
 
 
这里是 U-boot 的选项操作部分。 
 
深圳市安联德科技有限公司  专注专业无线通讯  勇于创新追求卓越品质    5 
网址: http://aldsz.taobao.com    技术支持与项目合作(Tel):13088850665 QQ:330609038 
选项功能如下: 
1).  选择  1,表示将固件通过网络下载到内存中,如果是刷  SDK  固件,可以选择这个选 
项,但是,如果是刷  OpenWrt,该选项没有用,我们会发现,刷固件成功以后,系统并不
能正常启动; 
2).  选择  2,表示将固件通过网络下载到  Flash  中,在以后的开发中,使用该选项即可; 
3).  选择  3,表示启动内核(Linux),上面说的  5  秒结束,不做任何选择,系统就会默认 
来选择该选项,然后启动系统; 
4).  选择  4,便会进入到  U-boot  的命令行,注意区分  Linux  系统的命令行。在  U-boot 
的命令行我们可以使用  printenv、set、loadb  等命令。 
5).  选择  7,表示将  U-boot  通过串口下载到  Flash  中; 
6).  选择  9,表示将  U-boot  通过网络下载到  Flash  中。 
 
4.  openwrt 固件烧写 
网线接左右都行的,图片没有修改而已,后面会有 wan 和 lan 切换 
 
深圳市安联德科技有限公司  专注专业无线通讯  勇于创新追求卓越品质    6 
网址: http://aldsz.taobao.com    技术支持与项目合作(Tel):13088850665 QQ:330609038 
 
烧写方法是通过网络的方式进行烧写。因此,需要用到网线。接线方式有两种,一是通
过网线将开发板的网口和电脑的网口直接相连(电脑---开发板);  另一种是电脑和路由器通
过网线或者  wifi  连接,然后开发板和路由器通过网线连接(电脑---路由器---开发板)。为了
更加方便和稳定,推荐使用第二种方法。 
无论使用哪种方法,  都必须遵循一个大前提,  就是要让电脑和开发板的  IP  处于同一
个网段。另外,一定要关闭电脑的防火墙和一些顽固的杀毒软件。 
烧写之前我们还需要一个软件: 
tftpd32: 
   
同样的,我们在“附件:必要工具和 openwrt 固件”文件夹中可以找到该软件! 
Tftpd32  软件适用于  32  位系统和部分 64 系统,64 位系统有异常可以使用里面的 Tftpd64。
方法一样我们以 Tftpd32 介绍,首先启动软件,Tftpd32  的界面如下。 
 
①  对应的  Current  Directory  用于选择固件所在的目录,  通过  Browse  按钮来进行选
择设置。比如,我将固件放在了  E 盘的目录,则需要进行如上图所示的设置。 
②  对应的  Server interface  用于选择服务器的  IP  地址。此时,如果你是通过网线和开 
发板或者路由器进行连接,  那么这里就应该选择为本地有线网卡的  IP  地址;  如果是通过 
WiFi 和路由器进行连接,那么这里应该选择为无线网卡的  IP  地址。 
 
电脑的  IP  地址通过在  CMD  中输入  ipconfig  命令得到,如图所示。 
 
深圳市安联德科技有限公司  专注专业无线通讯  勇于创新追求卓越品质    7 
网址: http://aldsz.taobao.com    技术支持与项目合作(Tel):13088850665 QQ:330609038 
当  Tftpd32  软件设置完成以后,  接下来就是将开发板的  USB  口通过  USB  线和电
脑的 USB  口进行连接,然后安装串口驱动和设置好相应的串口(8N1,57600),然后开发
板上电,在如图  1  所示的界面中,选择  2。得到如图所示界面。 
我们输入  y  以确定我们是要烧写固件到  Flash  中。接着便会进入到下图所示界面。 
 
1).  上图  1  中,输入设备  IP,这个  IP  可以是任意的,但是必须要和  2  中输入 
的服务器  IP  是同一个网段;192.168.10.1 理解为开发板 IP 地址。 
 
深圳市安联德科技有限公司  专注专业无线通讯  勇于创新追求卓越品质    8 
网址: http://aldsz.taobao.com    技术支持与项目合作(Tel):13088850665 QQ:330609038