OpenWRT 編譯教程

來源:互聯網
上載者:User

標籤:des   http   使用   strong   檔案   io   

1、安裝Ubuntu

到 http://www.ubuntu.org.cn/desktop/get-ubuntu/download/ 下載,版本隨便,我選的是10.10 32位版。安裝過程就不說了,圖形化安裝,而且是中文版,連安裝都搞不定的,可以關閉本頁面了。可以安裝在虛擬機器裡,也可以安裝在物理機了,官方建議有條件的最好安裝在物理機上,大概是說虛擬機器有時會有不可預料的情況,但裝在虛擬機器裡的人多得是了。題外話:安裝過程中某一步設定使用者名稱密碼時,我是選擇了自動登入,因為懶得每次都輸密碼登入,反正只是編譯用的系統又沒什麼秘密。

2、關閉屏保

安裝好後,在左上方“系統”菜單的“喜好設定”中選擇“螢幕保護裝置程式”,然後去掉左下角的“電腦空閑時啟用螢幕保護裝置程式”,然後按“關閉”,這個視窗是沒有“應用”或“確定”之類的,直接關閉它就會儲存。用慣了WINDOWS的使用者注意了。為什麼要做這步呢? 因為整個編譯過程中有些步驟要等一段時間的,老是自動啟用螢幕保護裝置程式,然後還要重新輸密碼才能退出,也是麻煩事。

3、切換到root使用者

選左上方的菜單“應用程式”-“附件”-“終端”,進入命令列,然後輸入sudo –sH,注意大小寫,然後輸入裝系統時設定的使用者密碼,就能切換到root(提示:輸入密碼的時候不會有*之類的顯示的,是完全不顯示,部分人不必驚慌)。切換到root是為了安裝或升級部分必要的組件,有些組件需要root許可權。

4、安裝編譯需要的組件

apt-get install g++
apt-get install libncurses5-dev
apt-get install zlib1g-dev
apt-get install bison
apt-get install flex
apt-get install unzip
apt-get install autoconf
apt-get install gawk
apt-get install make
apt-get install gettext
apt-get install gcc
apt-get install binutils
apt-get install patch
apt-get install bzip2
apt-get install libz-dev
apt-get install asciidoc
apt-get install subversion

每一行斷行符號後都會馬上檢測安裝或升級那個組件,官方WIKI用的是單一條命令,我分開了,因為這樣更容易查看每一個組件的安裝是否成功。一行命令的話,一大堆東西連續出來,懶得拖捲軸回頭看了。一個個分開執行方便看一些。個人喜好了。當中最後面的asciidoc組件是需要下載400多MB東西的,慢慢等了。下載東西之前會有提示本次要下載多少M的東西,問是否的,按y然後斷行符號讓它下載就行了。提示:假如它提示找不到軟體包的話,那麻煩你再看清楚命令中的軟體名名稱,因為有時是字母中間冒個數字1出來之類的,很容易錯看成字母L。

5、退出root

上述安裝完成後,這一步很重要,就是執行Exit命令退出root。如果不退出root的話,那後面會出現暈人的情況,下一步是下載源碼,以root身份下載源碼後,在後續操作中有些會提示不能以root身份操作,但源碼已經以root身份下載了,所有檔案的“所有者”都是root,退出root後再操作,又會提示沒有許可權,因為檔案是root的,普通使用者無法訪問,結果只能用命令修改檔案所有者,比較麻煩。所以這裡就要退出root,以普通使用者身份執行下面的下載源碼命令。其實一開始安裝組件的時候可以在命令前加上sudo來達到臨時用root身份,執行完後又回到普通許可權的目的,但對於新手來說,不必過於追求這些了,有個可行的方法就湊合著先用吧。

6、下載源碼

分兩種,一種是最新版但不是最穩定,也就是trunk版,一種是相對穩定版,backfire版。源碼下載命令分別是:
先建立檔案夾:
Mkdir openwrt
Cd openwrt

Trunk版下載命令:svn co svn://svn.openwrt.org/openwrt/trunk/
Backfire下載命令:svn co svn://svn.openwrt.org/openwrt/branches/backfire/
選擇你想要的版本就行了。然後又是等待下載…

7、開始準備編譯
Cd Trunk或者Cd backfire
如果不是剛下載的代碼,為了保持代碼為最新狀態,應該定期運行Svn up更新代碼,什麼時候有變你是不知道的
然後是更新軟體包:
./scripts/feeds update –a
./scripts/feeds install –a
如果不更新軟體包的話,你會發現後面是看不到很多軟體包的,也就無法整合那些看不到的包了。然後是make defconfig,再make menuconfig進入定製介面,慢慢選了,裡面可選只編譯指定裝置的韌體,一定要注意選對自己的裝置類型,然後可以指定該類型下的具體哪一款。配置比較多,不慢慢說了,其實我也不是很懂,自己進去撞幾回就差不多了,有些軟體包你不懂的,就表示你不需要了,有些軟體包你裝官網版本後要另外裝的,你見到了,就可以選上讓它整合,要讓它前面括弧裡出現*才表示整合。配置完成後退出記得選儲存。如果你想修改源碼,應該在此時進行,比如支援大容量Flash之類的修改,自己上網查到修改什麼檔案什麼地方後,就在Ubuntu圖形介面上進去找到檔案,雙擊開啟文字編輯器修改儲存。如果想整合中文包或其它非官方包的話,那我也幫你不到了,因為我也還不會。

8、執行編譯

最後就執行make正式開始編譯,首次編譯必然是漫長的等待。如果是雙核CPU,使用Make –j 2命令可以加快速度,但有人卻不建議使用,官方WIKI也沒說這點,我也不知道有沒有好處。但我是4核CPU,使用Make –j 4命令,發現CPU佔用率並沒有明顯提高,看了協助,發現可以不加數字,不加數字預設就是不限制同時進行的任務數,我用了Make –j不限同時任務數後,CPU居然100%了,但整個編譯過程的佔用率都會有波動,剛開始是100%,後面有段時間是25%左右(也就是只用單核了),然後有時又會40%到50%(差不多用了雙核),有時甚至幾乎沒有操作,CPU佔用很低。但首次編譯是特別慢的,第一次之後的都相對快很多了。悲劇的是,我第一次用Make –j編譯結果是失敗,然後再一次Make不用參數才成功,也許就是有人不建議使用的原因,但因為有前一次的編譯,所以第二次是很快的。也就是說,假如用j參數能加速的話,雖然有可能會失敗,但因為第二次不會花很長時間,所以也許加j參數還是能在第一次編譯中加速的。不過我沒有對比加不加-j參數花的時間區別。有興趣的朋友自己對比吧。

9、編譯完成後會出現bin檔案夾,進去找你需要的BIN刷吧。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.