
本次編譯是記錄自己根據(jù)大神們的資料折騰的所有過程,包括VMware——Ubuntu——首次編譯全過程!本文為Openwrt首次編譯全過程。
一、固件源碼
1、Lean的固件源碼
首先我選擇的是恩山大神Lean的固件源碼(自己網(wǎng)上找),Lean大神的源碼是根據(jù)原版OpenWrt項(xiàng)目,整合優(yōu)化了很多適合國內(nèi)使用的插件,可根據(jù)自己需求編譯進(jìn)自己的固件。

2、注意事項(xiàng)
1)、不要用 root 用戶進(jìn)行編譯!?。?/p>
2)、國內(nèi)用戶編譯前最好準(zhǔn)備好梯子
3)、默認(rèn)登陸IP 192.168.1.1 密碼 password
二、首次編譯:
1、準(zhǔn)備工作
已經(jīng)在VMware下用Ubuntu編譯自己的Openwrt——①搭建好需要的環(huán)境,包括虛擬機(jī)裝好 Ubuntu 20.04 LTS x64。

2、更新組件
打開終端(ctrl+alt+t)輸入
輸入代碼:sudo apt-get update

3、下載安裝編譯環(huán)境
輸入代碼:sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

顯示this may take some time…done就是部署完成了

4、拉取源代碼
輸入代碼:git clone (openwrt的源碼,注意空格)
如果沒有安裝git,執(zhí)行此命令會(huì)報(bào)錯(cuò),請輸入代碼apt install -y git或者輸入代碼sudo apt-get install git進(jìn)行安裝。

5、進(jìn)入源碼目錄
輸入代碼:cd lede

6、添加部分插件
添加部分插件源,以添加Helloword插件為例,不需要的可跳過這步。
6.1、修改lede目錄下feeds默認(rèn)配置
輸入代碼:vi feeds.conf.default

6.2、追加源地址
輸入代碼:src-git helloworld (hellowrld插件地址,注意空格)
按i進(jìn)行編譯,拷貝進(jìn)去后esc退出編譯,注意前面沒有#號(hào),輸入:wq回車退出 *前面沒有#為可執(zhí)行,前面有 #為不可執(zhí)行。

6.3、刪除舊配置
輸入代碼:rm -rf ./tmp && rm -rf .config
6.4、清理 feeds
輸入代碼:./scripts/feeds clean

7、更新Feeds
輸入代碼:./scripts/feeds update -a

8、安裝Feeds
輸入代碼:./scripts/feeds install -a

9、進(jìn)入編譯配置菜單
輸入代碼:make menuconfig
注意窗口大小,如果有報(bào)錯(cuò),大概率是因?yàn)槟愕拇翱谔。簏c(diǎn),不然不夠顯示編譯窗口的。

9.1、進(jìn)入編輯器

9.2、固件空間設(shè)置
編譯豐富插件時(shí),建議修改下面兩項(xiàng)默認(rèn)大小,留足插件空間。( x86/64 )!??!
進(jìn)入 Target Images

Target Images ---> (16) Kernel partition size (in MB) 默認(rèn)是 (16) 建議修改 (256)
Target Images ---> (160) Root filesystem partition size (in MB) 默認(rèn)是 (160) 建議修改 (512)

9.3、支持ipv6
進(jìn)入Extra packages

進(jìn)入 Extra packages —— ipv6helper

9.4、LuCI編譯插件(重點(diǎn))
選擇LuCI目錄

選擇Applications選擇插件

Applications 目錄下按照需要配置插件,可參照恩山OpenWrt 編譯 LuCI -> Applications 添加插件應(yīng)用說明-L大這篇文章選擇插件。
選項(xiàng)操作:使用空格鍵選擇: * 代表編入固件,M 表示編譯成模塊或者IPK包,空 不編譯 。

10、下載dl庫(速度很慢,需耐心等待)
輸入代碼:make -j8 download V=s

11、開始編譯
輸入代碼: make -j1 V=s
-j1 后面是線程數(shù)。第一次編譯推薦用單線程以后可以使用make -j$(($(nproc) + 1)) V=s。

編譯完成
編譯完成后文件存在根目錄lede-bin-targets-x86-64文件夾內(nèi)。
總結(jié)
由于網(wǎng)絡(luò)原因我單線程編譯了4個(gè)小時(shí),正常應(yīng)該在2.5-3個(gè)小時(shí)編譯完成,二次編譯使用命令make -j$(($(nproc) + 1)) V=s ,可在20分鐘左右完成編譯,二次編譯詳情可關(guān)注下一篇文章。