此文在www.openwrt.org.cn首發,我的不主動在其它地方轉發,沒任何版權問題,有興趣的網友隨便複製轉發,但機於對本論壇的尊重,應該註明原出處URL,但不必強調是誰寫的。
我也搞不懂爲何,我想玩編譯的時候,搜來搜增沒搜到什麼菜鳥教程,沒玩過LINUX的通常會以爲很難,就跟我同樣,我也是從未玩過LINUX。也許也因 爲並不難,因此網上比較少詳細的教程,就連官方WIKI也都是比較簡要地說明而已,因此感受難的人看了過於簡要的教程後,只會以爲更難。
因此我才寫了這篇「擴展」版的簡要教程,其實也真的是很簡要,沒什麼突出之處,只是起碼在文字上讓人能更容易看懂。高手能夠迴避了,由於你不會在本文學到任何東西,由於我也是新手,只是以菜鳥的角度看待本文的主題。下面開始正文:
一、安裝Ubuntu,到 http://www.ubuntu.org.cn/desktop/get-ubuntu/download/ 下載,版本隨便,我選的是10.10 32位版。安裝過程就不說了,圖形化安裝,並且是中文版,連安裝都搞不定的,能夠關閉本頁面了。能夠安裝在虛擬機裏,也能夠安裝在物理機了,官方建議有條 件的最好安裝在物理機上,大概是說虛擬機有時會有不可預料的狀況,但裝在虛擬機裏的人多得是了。題外話:安裝過程當中某一步設置用戶名密碼時,我是選擇了自 動登陸,由於懶得每次都輸密碼登陸,反正只是編譯用的系統又沒什麼祕密。
二、安裝好後,在左上角「系統」菜單的「首選項」中選擇「屏幕保護程序」,而後去掉左下角的「計算機空閒時激活屏幕保護程序」,而後按「關閉」,這個窗口 是沒有「應用」或「肯定」之類的,直接關閉它就會保存。用慣了WINDOWS的用戶注意了。爲何要作這步呢? 由於整個編譯過程當中有些步驟要等一段時間的,總是自動啓用屏幕保護程序,而後還要從新輸密碼才能退出,也是麻煩事。
三、選左上角的菜單「應用程序」-「附件」-「終端」,進入命令行,而後輸入sudo –sH,注意大小寫,而後輸入裝系統時設置的用戶密碼,就能切換到root(提示:輸入密碼的時候不會有*之類的顯示的,是徹底不顯示,部分人沒必要驚 慌)。切換到root是爲了安裝或升級部分必要的組件,有些組件須要root權限。
四、切到root後,順序輸入:
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。
五、上述安裝完成後,這一步很重要,就是執行Exit命令退出root。若是不退出root的話,那後面會出現暈人的狀況,下一步是下載源碼,以root 身份下載源碼後,在後續操做中有些會提示不能以root身份操做,但源碼已經以root身份下載了,全部文件的「全部者」都是root,退出root後再 操做,又會提示沒有權限,由於文件是root的,普通用戶沒法訪問,結果只能用命令修改文件全部者,比較麻煩。因此這裏就要退出root,以普通用戶身份 執行下面的下載源碼命令。其實一開始安裝組件的時候能夠在命令前加上sudo來達到臨時用root身份,執行完後又回到普通權限的目的,但對於新手來講, 沒必要過於追求這些了,有個可行的方法就湊合着先用吧。
六、來到這裏,操做系統部分徹底準備好了,建議若是用虛擬機的朋友先作一個快照,後面編譯部分出了問題大不了恢復快照從新來過。不知道什麼是快照的話,當我沒說過這一條。
七、下載源碼,分兩種,一種是最新版但不是最穩定,也就是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/
選擇你想要的版本就好了。而後又是等待下載…
八、開始準備編譯
Cd Trunk或者Cd backfire
若是不是剛下載的代碼,爲了保持代碼爲最新狀態,應該按期運行Svn up更新代碼,何時有變你是不知道的
而後是更新軟件包:
./scripts/feeds update –a
./scripts/feeds install –a
若是不更新軟件包的話,你會發現後面是看不到不少軟件包的,也就沒法集成那些看不到的包了。而後是make defconfig,再make menuconfig進入定製界面,慢慢選了,裏面可選只編譯指定設備的固件,必定要注意選對本身的設備類型,而後能夠指定該類型下的具體哪一款。配置比 較多,不慢慢說了,其實我也不是很懂,本身進去撞幾次就差很少了,有些軟件包你不懂的,就表示你不須要了,有些軟件包你裝官網版本後要另外裝的,你見到 了,就能夠選上讓它集成,要讓它前面括號裏出現*才表示集成。配置完成後退出記得選保存。若是你想修改源碼,應該在此時進行,好比支持大容量Flash之 類的修改,本身上網查到修改什麼文件什麼地方後,就在Ubuntu圖形界面上進去找到文件,雙擊打開文本編輯器修改保存。若是想集成中文包或其它非官方包 的話,那我也幫你不到了,由於我也還不會。
九、最後就執行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參數花的時間區 別。有興趣的朋友本身對比吧。
十、編譯完成後會出現bin文件夾,進去找你須要的BIN刷吧。
十一、BIN如何傳出? 我是用FTP,甚至是用Firefox上網進郵箱都能傳出,對於一個不懂LINUX的人來講…ubuntu