首页 > 代码库 > 嵌入式Linux下开源路由器OpenWRT编译与下载
嵌入式Linux下开源路由器OpenWRT编译与下载
***************************************************************************************************************************
作者:EasyWave 时间:2014.10.26
类别:Linux应用-开源路由器OpenWRT的编译与下载 声明:转载,请保留链接
注意:如有错误,欢迎指正。这些是我学习的日志文章......
***************************************************************************************************************************
一:开源路由器OpenWRT简介与特性
OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。 同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而 OpenWrt SDK 更简化了开发软件的工序。
OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统。实际上,这意味着您能够使用您想要的功能而不加进其他的累赘,而支持这些功能工作的linux kernel又远比绝大多数发行版来得新。
对于开发人员,OpenWrt 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。
二:开源路由器OpenWRT官网与下载
目前开源路由器OpenWRT的最新版本为:OpenWrt (Barrier Breaker) 14.07,当前主要更新和改进如下:
RC3 之后的重大改进
- various ath9k related fixes
- a few board related fixes
- fixes for packages depdending on curl
- per feed download folders
- NAT & firewall throughput improvements
- Security updates for OpenSSL & PolarSSL
- Minor fixes in DHCP & DHCPv6 handling
- Configuration support for GRE tunnels
- Various other fixes
- fix a long standing ath9k deadlock bug
- all feeds are now built
- image builder now works and RC2 contains all board specific images
- various board/stability fixes
- Highlights since Attitude Adjustment
- Default configuration and images
- Procd: new preinit, init, hotplug and event system written in C
原生 IPv6 支持
- RA & DHCPv6+PD client and server
- Local prefix allocation & source-restricted routes (multihoming)
- Added support for sysupgrade on NAND-flash
- Added support for filesystem snapshot and rollback
- Rewritten mounting system in C for rootfs and block devices
- Support for testing configuration and rollback to working
- last working state
- Unified change trigger system to restart services on-demand
- Added a data validation layer
- Netifd now handles setup and configuration reload of wireless interfaces
- Added reworked event support to allow obsoleting network hotplug-scripts
- Added support for dynamic firewall rules and zones
- Added support for transparent multicast to unicast translation for bridges
- Various other fixes and improvements
扩展 IPv6 支持
- Added DS-Lite support and improved 6to4, 6in4 and 6rd-support
- Experimental support for Lightweight 4over6, MAP-E and MAP-T
- Draft-support for self-managing home networks (HNCP)
- rpcd: new JSONRPC over HTTP-frontend for remote access to ubus
- mdns: new lightweight mdns daemon (work in progress)
- Initial support for the musl C standard library
- Support for QMI-based 3g/4g modems
- Support for DNSSEC validation
- Added architecture for package signing and SHA256 hashing
OpenWRT开发网址:dev.openwrt.org,如下所示:
上图的红色圈中的部分,是告诉我们如何去下OpenWRT的代码,点击进入之后,可以看到有git和svn两种方法下载,不过我选择git的方式来下载。如下所示:
上图中蓝色圈中部分的为现在一直在开发的版本,而红色圈中的部分为Rlease版本,具体想下载那个版本,就看自己的想法啦,不过我建议是下载红色圈中的部分,在采用git命令下载之前,需要先确保自己的机器上是否有安装git-core,如果没有的话,请用 sudo apt-get install git-core来安装git工具。安装完git工具之后,采用命令:git clone git://git.openwrt.org/14.07/openwrt.git下载,下载期间必须确保网络一直畅通。下载完之后的OpenWRT的目录基本结构如下所示:
之后需要采用命令:./scripts/feeds updata -a去更新OpenWRT的源码包,如下所示:
更新完之后,需要采用命令:./scripts/feeds install -a去下载更新包,如下所示:
需要注意的是,这个时候并没有将OpenWRT的任何源码下载下来,而是需要通过make命令之后才会去下载OpenWRT项目中所需要的源码的,这一点请一定要注意哦,这也是为什么编译的速度会很慢的根本原因。在OpenWRT项目中有个README文件,有些注意事项需要看看,如下所示:
上图中已经说的很清楚啦,首先需要安装一些必须的工具和第三方库,比如:gcc, binutils, bzip2, flex, python, perl, make, find, grep, diff, unzip, gawk, getopt, subversion, libz-dev and libc headers.安装完这些工具和三方库之后,就采用make defconfig命令设置默认的配置文件,然后在这个配置文件的基础上去修改和配置自己项目所需的配置,后续的配置就都可以采用:make menuconfig来配置和修改,这个跟Linux配置菜单是一样的,当然里面的配置项目很多,需要花点时间去熟悉,目前我也在熟悉当中,不能讲太多的东西。
三:开源OpenWRT的编译
前面已经详细的介绍了如何下载OpenWRT,这个部分就简单地说明如何编译,编译过程出错之后,如何查看错误信息,一般来说,都是采用make命令来编译代码,而采用make V=s来编译和查看错误的信息。如下所示:
编译的过程会很漫长,这是因为在编译的过程中,会去下载相关的源码压缩包,一般第三方库是放在dl目录下,而其它的会放在toolchain目录下,如下所示:
四:开源OpenWRT的总结
在编译和下载过程中要非常有耐性,因为有些时候网络并不是很好,就需要去查找是哪里导致停止等等。。
嵌入式Linux下开源路由器OpenWRT编译与下载