1. 在平台搭建之前,有几点需要说明一下的:
所谓的平台搭建,不仅包括固件的烧写,还包括开发,编译和调试的环境搭建。
Openwrt平台是基于Linux的,其支持虚拟机安装,对于手边没有设备的亲们,可以通过安装虚拟机感受一下(木有图形界面,需要命令行控制)。
2. Openwrt开发环境搭建流程(仅列出我本人所搭建的环境,以Atheros 9344为例):
(1)操作系统: Ubuntu12.04。(版本有点老,推荐使用更行的版本)。
(2)在Ubuntu下搭建Openwrt开发环境:
apt-get install g++
apt-get install libncurses5-dev
apt-get install zlib1g-dev
apt-get install bison
apt-get install flex
apt-get install unzip
apt-get install autoconf
apt-get install gawk
apt-get install make
apt-get install gettext
apt-get install gcc
apt-get install binutils
apt-get install patch
apt-get install bzip2
apt-get install libz-dev
apt-get install asciidoc
apt-get install subversion
因源码随时可能变动,下载后,运行snv up更新本地代码。
下载后一般额外软件包需要更新: (没有安装git的要安装一下:sudo apt-get install git)
./scripts/feeds update -a
./scripts/feeds install -a
(3)Openwrt系统的首次编译(p.s. 在编译过程中,程序会自动通过feed机制,在网上下载相应的依赖文件,这要求编译者所在网络环境良好!):
编译必须保证有良好的网络连接,且非root账户。
下一步是检查编译环境:
#make defconfig
若defconfig回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可
若提示有某个依赖库没有安装,请按照提示按照对应的依赖库. 直到上述检查无返回。
进行编译配置:
对目标固件进行配置
make menuconfig
对目标固件进行配置. 由于首次编译时间会较长,因此我创建一个无外加软件的固件:(下面三幅图,分别对应于Target System,Subtarget和Target Profile)
最后保存设置:
之后就是漫长的编译的时间了:
make #默认安装,无提示 make V=99 #显示编译日志,并打印在shell中
等待漫长的时间之后,如果成功,可在编译目录下 bin/
可以看到多个.bin文件,这些.bin文件中
openwrt-ar71xx-generic-db120-kernel.bin:对应于只烧写内核固件
openwrt-ar71xx-generic-db120-rootfs-squashfs.bin:对应于文件系统固件
openwrt-ar71xx-generic-db120-squashfs-sysupgrade.bin:对应于完整的固件
至此,一个可以烧写的固件就编译好了。当然,可以看出这个系统只能将路由器启动,能够正常加电运转,但是其没有任何功能。(在后面,我们需要对其添加各种软件支持,甚至是通过编译内核的方式添加软件应用)
(4) 固件烧写
对于固件烧写呢,有多种方式,我仅将我所使用过的方式列出来:
++Web在线固件升级,这个一般适用于原厂固件升级,或者Openwrt镜像烧写。此方法难度低,如果固件没有问题并且少些过程中没有断电的话,都能成功烧写。
++tftp方式升级,本人使用的Atheros9344路由,机身自带有console口,可以通过网线直连的方式,直接通过PC进行烧写。
此过程难度较高,需要有一定的开发基础。
此外,还有好多方法,在网上都能找到,由于暂时不需要,我就不一一列出了。
(5) 路由重启,测试
进入这一步,整个开发、编译、调试和烧写的过程就到最后了。
转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!