本來只是想建立交叉編譯環境編譯一些自己的代碼放在wr703n路由器上運行,但是現在官方的 tool-chain 解壓修改PATH之後編譯的時候發現並不能用,後來在把問題發到openwrt編譯群中求助大神,得到的結論是:下載的交叉編譯鏈和電腦的架構不同,不能使用。也就是說只能下載openWRT的源碼,自己進行配置並生成SDK才可以,沒辦法只好開始和了編譯openWRT源碼的歷程
首先下載 openwrt源碼
openwrt的源碼實施了版本控制,可以使用git 或者 svn進行克隆
git::
git clone git://git.openwrt.org/14.07/openwrt.git
svn:
svn co svn://svn.openwrt.org/openwrt/trunk/本人用的是git進行下載的,首先需要安裝git
yum install git
然後使用上邊的clone 命令進行下載源代碼,網速好的話 一會兒就下載好了,筆者受網速限制,第六次嘗試下載的時候終於下載完整了。
然後可以切換到源碼目錄 make menuconfig
此時會報一大堆的 需要解決的依賴,一個個解決就OK 了,此處簡單介紹一下筆者受困的幾個依賴
1、g++ 用yum 進行安裝比較方便,但是 g++ 包的名字叫 gcc-c++ 因此安裝的時候需要用 yum install gcc-c++命令
2、zlib靜態庫,此依賴比較麻煩需要上網自己下載
wget http://zlib.net/zlib-1.2.8.tar.gz (由於此源碼還在不斷更新,因此版本號可能有些出入,當出現404 頁面找不到時可以通過浏覽器登錄zlib.net/ 查看當前的版本號)
下載完成後 進行解壓安裝。
#tar -zxvf zlib-1.2.8.tar.gz #解壓
#cd zlib-1.2.8
#./config
#make
#make install
3、openssl library development 此依賴的包名是 openssl-devel 所以需要用yum install openssl-devel 進行安裝
所有依賴都解決完後,再添加一個普通用戶(原則上openwrt 不允許使用root用戶進行編譯).
make menuconfig
將 有SDK字樣的行 標記 退出,保存配置文件,make 開始編譯。
編譯過程需要聯網,編譯速度根據網速而定。
編譯會生成 sdk ,安裝sdk配置完後就可以用來編譯打包自己的ipk軟件包了。
Ubuntu 使用Openwrt SDK交叉編譯ipk包過程圖文全紀錄 http://www.linuxidc.com/Linux/2016-10/136490.htm
OpenWrt:Ubuntu 12.04搭建OpenWrt編譯環境 http://www.linuxidc.com/Linux/2016-07/133764.htm
Mac OS下搭建OpenWrt編譯環境記錄 http://www.linuxidc.com/Linux/2016-10/136257.htm