一 . 安装虚拟机,我选择安装ubuntu14.04版本。
二. 安装编译工具
更新ubuntu软件仓库中软件包的索引文件。
sudo apt-get update
安装如下工具:
sudo apt-get install subversion
sudo apt-get install g++ flex patch
sudo apt-get install libncurses5-dev zlib1g-dev
sudo apt-get install git-core
sudo apt-get install libssl-dev
sudo apt-get install gawk
sudo apt-get install xz-utils
subversion 版本管理工具。
g++ GNU 工程的c/c++编译工具。
FLEX (The Fast Lexical Analyzer) 一个快速词法分析工具。
patch 是将diff文件应用到原始文件的工具。打补丁。
libncurses5-dev 用于屏幕终端控制。
zlib1g-dev 是压缩及解压缩开发库。
git-core 大型工程的分布式管理工具。
libssl-dev 是openssl开发库。
gawk 是GNU工程实践的awk语言工具。
xz-util 是xz格式的压缩工具。
三. 下载代码
OpenWrt社区同时使用svn和git 两种工具来管理代码, svn管理代码通常会创建 tags,branches和truck 3个目录管理代码。
truck 目录用来保存开发的主线,一般最新的功能均在trunk目录提交。
braches目录存放分支,用于功能开发完成之后创建分支,修改bug及发布版本使用。
tags目录保存标签复制,一个标签是一个项目在某一时间点的快照,用来给发布版本的代码创建快照,以便多数开发人员基于这个版本进行开发。一般永远不再修改。
openwrt代码在2016年3月将代码库由svn彻底转到github提供的git托管空间上,因此我们使用git命令来下载代码。
openwrt 3个主要版本
分支 | chaos calmer 15.05(CC) | barrier breaker 14.07(BB) | Attitude Adjustment 12.09(AA) |
---|---|---|---|
内核 | Linux kernel 3.18.21 | Linux kernel 3.10 | Linux kernel 3.3 |
git代码地址 | git://git.openwrt.org/15.05/openwrt.git | git://git.openwort.org/14.07/openwrt.git | git://git.openwrt.org/12.09/openwrt.git |
主要修改 | 增加大量的3G/4G调制解调器支持 Netfliter性能增加 网络栈多核支持 DNSSEC增强支持 | 增加procd新的preinit,init,热拔插及时间通知机制 原生IPV6支持 文件系统增强 UCI配置增强 网络功能增强 | 增加并行编译支持 使用密文密码 无线驱动更新及稳定性增强 新平台支持:ramips,bcm2708等等
|
我选择BB发布代码进行编译,因此使用目录bb下载代码
mkdir openwrt_bb
chmod 777 openwrt_bb
cd openwrt_bb
git clone git://git.openwrt.org/14.07/openwrt.git bb
四. 代码下载完成,开始配置和编译。
1. 更新和安装所有可选软件包
./scripts/feeds update //更新最新的包定义
./scripts/feeds install -a //安装所有包
feeds命令将安装扩展代码包编译选项,如果不运行该命令,在menuconfig配置时将没有选择这些扩展包的机会。
2. 进行编译配置
make defconfig
make menuconfig
选择自己所需的配置
3. 编译
make V=s 输出编译时每一个动作.