烧写 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