OpenWRT學習筆記(1)環境部署程式碼下載及編譯
一 . 安裝虛擬機器,我選擇安裝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 輸出編譯時每一個動作.