[OpenWrt] 編譯OpenWrt-Dreambox

1、  安裝環境
Linux系統,選擇的是ubuntu8.04 (ubuntu-8.04-desktop-i386.iso)

2、安裝依賴包和相關軟件, sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev gawk

然後
sudo apt-get update

3、下載openwrt-dreambox最新源代碼

svn co svn://svn.openwrt.org.cn/dreambox/backfire openwrt-dreambox

4、  下載feeds
cd openwrt-dreambox
開始下載,使用:
./scripts/feeds update -a

安裝feeds包,只有安裝之後,在後面的make menuconfig時,纔可以對相關配置進行勾選。
./scripts/feeds install -a

如果更新了feeds的配置文件,需要添加新的軟件包用於生成系統。只需進行重複操作:
./scripts/feeds update -a
./scripts/feeds install -a

make package/symlinks

5、  進行配置
make defconfig

make prereq

make menuconfig

通過文本對話框進行選項配置,最主要的配置項有:

Target system(目標系統類型)

Package selection(軟件包選擇)

Build system settings  (編譯系統設置)

Kernel modules  (內核模塊)

[*]表示:這個包裹選中編譯,並安裝在firmware中;

[M]表示:這個軟件包選中編譯,但並不安裝在firmware中。

在退出Menuconfig的時,會提示是否保存配置。

在此我只對target system進行了選擇;勾選了Advanced configuration option和Build the OpenWrt SDK選項。

6、  編譯

(1)一般情況,使用一個簡單的命令:

make

(2)在多核處理器系統上爲提高速度,可使用(例如用3核處理器):

make –j 3

(3)在後臺進行編譯,使用空閒的I/O資源和CPU性能,可使用(例如使用雙核處理器)

onice -c 3 nice -n 20 make -j 2

(4)編譯一個單獨的軟件包(例如在cups軟件包):

make package/cups/compile V=99

(5)如果特殊原因需要分析編譯報錯信息:

make V=99 2>&1 |tee build.log |grep -i error

說明:將編譯的所有輸出信息保存在build.log中,將error信息打印在屏幕上。

(6)一個複雜指令的應用

ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 \|tee build.log |egrep -i ‘(warn|error)’

說明:將編譯的所有輸出信息保存在build.log中,將error和warning信息打印在屏幕上。編譯過程使用雙核CPU,佔用後臺資源。

7、  生成鏡像(Image)位置

新生成的鏡像會默認放在新建的一個bin目錄下。例如:/bin/brcm-2.4/packages

ls bin/*

將編譯好的鏡像做個備份,例如備份到/目錄下:

cp bin /

8、  清理工作

建議現在清理編譯產生的文件,以免下次編譯時造成衝突,(文件如果存在的話,將不會被替換),執行make clean

注意:在執行clean命令,確保已經將編譯好的image進行了備份。清理工作會清楚bin目錄。

make clean

除了清除生成的目錄,還想清除交叉編譯工具(以及工具鏈目錄)

make dirclean

清除所有相關的東西,包括下載的軟件包,配置文件,feed內容等:(不建議使用)

make distclean

對於更新feeds後出現的錯誤:

ERROR:please fix package/feeds/packages/mc/Makefile 等類似的問題,需要執行這條語句進行系統的清理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章