最近因為某些原因,需要使用Openwrt和SS。
于是就開始了各種入坑之路。
首先是Openwrt的編譯。
網(wǎng)上的教程許多都已經(jīng)過時了,最新的openwrt和lede似乎有合并的跡象,目前的版本是17.0.X
在此記錄一下自己的編譯心得。
我用的環(huán)境是centos7.
基本上其他發(fā)行版的linux操作都差不多。
都是安裝基礎環(huán)境-》GIT openwrt的交叉變異工具-》install各種源碼-》make編譯。
一、安裝各種基礎編譯組建
yum install asciidoc autoconf binutils bison build-essential bzip2 flex gawk gettext git libncurses5-dev libssl-dev libxml-parser-perl libz-dev patch quilt subversion uglifyjs unzip xsltproc zlib1g-dev
如果后面編譯的時候提示缺少XX組件,請按照提示找。。。具體是什么組件我忘了。如果是其他發(fā)行版的linux,有的組件名字可能不一致,具體請baidu或者google。
二、git各種源碼
從此處開始,請不要使用root賬號操作?。?!
從此處開始,請不要使用root賬號操作!?。?br>
從此處開始,請不要使用root賬號操作!??!
不然會有各種神奇的問題。。。
新建openwrt文件夾:mkdir openwrt
進入openwrt目錄 cd openwrt
git源代碼:git clone git://github.com/openwrt/openwrt.git
此時會開始下載git環(huán)境并下載基礎的代碼,具體源碼還不會下載到本地,因此本命令速度較快,直到后面make時候才會在線下載。
三、修改feed.conf文件
這個文件里面記錄了feed各個組件的git地址,里面有個oldpackage的git,請把前面的#注釋取消掉,不然很多功能組件你會發(fā)現(xiàn)在編譯的時候找不到。
四、編譯
第一次編譯需要配置編譯的選項:make menuconfig
會調(diào)用配置菜單-》選擇你路由的CPU類型-》型號,以及需要的各種功能。。。
此處空格鍵為選中,*為編譯進固件,M為編譯成ipk但是不集成進固件之中。
最后用make V=99編譯。 V=99表示顯示詳情,如果出錯可以在這里看到出錯的信息。
由于第一次編譯會在網(wǎng)絡下載各種tar源碼文件,而大多數(shù)文件都是在國外的站點,因此下載很慢甚至下載失敗都會導致編譯失敗。
解決方法1:ss出去,然后下載相關的源碼。
2.找國內(nèi)的鏡像點,下載相應的tar放入openwrt/dl文件夾下
反正我第一次拿服務器的配置來編譯,花了大概一個小時左右。
五、后記
如果編譯成功,第二次編譯相對速度就會比較快。
編譯好的固件位于openwrt/bin/targets/目錄下,該目錄下還會有CPU下型號的文件夾,如bin/targets/ramips/mt7620/openwrt-ramips-mt7620-zbt-wr8305rt-squashfs-sysupgrade.bin
最后的bin就是固件啦,刷入你的路由器就行了。