最近的研究方向:Nginx
分类: 嵌入式
2016-02-17 16:49:44
本文转自:http://blog.csdn.net/linux_xuxiyang/article/details/50589015
openwrt 是一个开源的路由器操作系统由linux改造而来源代码开放,一般的开发方法是用linux操作系统来搭建环境开发
openwrt有两种版本一个是测试版俗称 trunk,二是稳定版俗称 backfire
在开始编译Openwrt之前需要您做些准备工作;与其他编译过程一样,类似的编译工具和编译环境是必不可少的:
一个构建OpenWrt映像的系统平台,简单说就是准备一个操作系统(比如Ubuntu、Debian等);
确保安装了所需的依赖关系库。
1、安装依赖包
升级组件包
sudo apt-get update
安装编译需要的组件
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
sudo apt-get install autoconf
sudo apt-get install gettext
sudo apt-get install texinfo
sudo apt-get install unzip
sudo apt-get install sharutils
sudo apt-get install subversion
sudo apt-get install libncurses5-dev
sudo apt-get install ncurses-term
sudo apt-get install zlib1g-dev
sudo apt-get install subversion
sudo apt-get install git
sudo apt-get install gawk
sudo apt-get install asciidoc
sudo apt-get install libz-dev
sudo apt-get install libssl-dev
2、下载源码
下载源码的途径有二,一是通过 svn ,一是通过 git,建议使用 svn ,因为Openwrt主要以 svn 来维护Openwrt系统的版本。另外,请注意Openwrt中不同的分支版本
(1)通过SVN获得源码
若想通过svn下载源代码需安装 Subversion,Subversion,或称SVN, 是OpenWrt的project中用来控制版本的系统,它非常类似的 CVS的界面和使用条款。执行下述命令即可安装SVN:
# apt-get install subversion
(2)通过git获得源码
下载git工具:sudo apt-get install git
在home文件夹下新建OpenWrt
mkdir OpenWrt/
cd OpenWrt/
svn co svn://svn.openwrt.org/openwrt/branches/backfire
或
git clone git://git.openwrt.org/15.05/openwrt.git
获得源码
(3)跟新SVN工具(如果用git此步可不做)
# cd OpenWrt/backfire/
# svn up
'svn up' 命令用于更新SVN上更新了,但本地尚未更新的这部分源代码(本人实践证明此命令会将本地源码与SVN上的源码先比较,若SVN有更新才会下载更新的部分,很实用的一个命令)。如果未指定目标路径,则此命令将更新当前目录及当前目录的子目录内的源码。
(4)Feeds下载
Feeds下载
Feeds即为包含到你的OpenWrt环境中的额外软件包的索引之类的,最主要的Feeds有以下三个:
'packages' - 路由的基本功能,
'LuCI' - OpenWrt默认的GUI(WEB管理界面), 及
'Xwrt' - 其他的GUI。
一般情况,你至少需要含 'packages' 和 'LuCI'两个Feeds。
下载完feeds之后, (为编译OpenWrt的recipies额外的预定义包) 您可以检查哪些feeds要包括在内。编辑在你的编译环境的根目录下的'feeds.conf.default'文件。
然后使用下列命令开始下载(注:可能你需要先运行cd trunk进入trunk目录才能成功执行下列命令):
# ./scripts/feeds update -a
在此之后,下载的软件包需要安装。亦即指的下边的命令啦。若路过下边的install命令则后续make menuconfig将无法成功执行!(注:可能你需要先运行cd trunk进入trunk目录才能成功执行下列命令):
# ./scripts/feeds install -a
更新后的文件列表如下
(5)下载编译
下一步是检查编译环境,若可进行编译则生成默认配置:
# make defconfig
若defconfig回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可,不难的,细心点就行。
Menuconfig
# make menuconfig
'menuconfig' 用来配置openwrt 需要你指定何种目标平台,要包含的package软件包和内核模块等均需要你指定,配置标准的过程中会包括修改:
目标平台(即路由器何种架构,BCM呢还是AR均可选择)