軟路由 | 自編譯OpenWrt官方最新固件
說明:?之前陸陸續(xù)續(xù)使用過不少基于 OpenWrt 編譯的固件都差強人意,不是插件太多了就是少了自己需要的插件。而抽屜里又發(fā)現(xiàn)了自己吃灰良久的樹莓派4B,突發(fā)奇想不如通過自行定制插件編譯固件作為軟路由使用,也才有了今天的文章,當然各位老板可以根據(jù)自己的設備選擇相應的編譯固件如X86。

編譯環(huán)境準備
系統(tǒng)準備
#本次編譯使用的系統(tǒng)為ubuntu 20.04 (推薦系統(tǒng))
網(wǎng)絡準備
#因編譯過程中需要下載大量的文件,部分文件需要梯子上網(wǎng)。
創(chuàng)建普通用戶
#不能使用?root?用戶進行編譯,所以要先準備一個普通賬戶。
更新本地環(huán)境
sudo?apt update
?

sudo?apt upgrade -y
?

安裝依賴ubuntu 20.04
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
?


開始編譯
克隆源代碼至本地
git clone https://github.com/openwrt/openwrt.git openwrt_pi
?

查看克隆的源碼
#切換到當前用戶的家目錄的openwrt_pi目錄
cd ~/openwrt_pi/
#查看克隆下來的openwrt源碼文件
~/openwrt_pi$ ls
?

更新安裝軟件倉庫的源碼到本地
./scripts/feeds update -a && ./scripts/feeds install -a
?

?
調整系統(tǒng)組件(詳細配置可以查看下文的make?menuconfig說明)
make?menuconfig
?

#根具自己的定制需求,運行?make menuconfig?命令配置目標架構完成后,進入?LUCI --> Applications?選擇需要的插件,進入?LUCI --> Themes?選擇喜歡的主題皮膚,編譯即可。
選擇平臺
Target System (x86) ?--->
Subtarget (x86_64) ?--->
Target Profile (Generic x86/64) ?--->
#無特殊需求,可以參考Target Images?勾選
[*] squashfs (NEW)
[*] Build GRUB images (Linux x86 or x86_64 host only) (NEW)
[*] GZip images (NEW)
自定義固件大小
(32) Kernel partition size (in MB) (NEW)
(400) Root filesystem partition size (in MB) (NEW)
#如果因為勾選基于 EXT4 文件系統(tǒng)編譯固件而造成編譯報錯,建議調高?Root filesystem partition size
下載編譯所需要的包
#因每個人網(wǎng)絡原因下載時間不經(jīng)相同
make download -j8 V=s
?

編譯固件
# -j1:單線程編譯
make -j1 V=s
?
#最大線程編譯,第一次編譯不建議使用,很大幾率失敗
#make -j$(nproc)
?

?
#單線程編譯可提高編譯成功率,但過程非常漫長(大約3-4小時左右),也完全取決于機器的性能。編譯完成后固件輸出路徑:?/openwrt/bin/targets/?之下。
?


?menuconfig說明
常用插件列表
#在調整 OpenWrt 系統(tǒng)組件時:[*]?表示編譯軟件包并加入到固件;[M]?表示編譯軟件包但不加入固件;[ ]?則表示不對軟件包進行任何設置。
## 插件類
LuCI ---> Applications ---> luci-app-adbyby-plus ??#去廣告
LuCI ---> Applications ---> luci-app-arpbind ?#IP/MAC綁定
LuCI ---> Applications ---> luci-app-autoreboot ?#高級重啟
LuCI ---> Applications ---> luci-app-aliddns ??#阿里DDNS客戶端
LuCI ---> Applications ---> luci-app-ddns ??#動態(tài)域名 DNS
LuCI ---> Applications ---> luci-app-filetransfer ?#文件傳輸
LuCI ---> Applications ---> luci-app-firewall ??#添加防火墻
LuCI ---> Applications ---> luci-app-frpc ??#內(nèi)網(wǎng)穿透 Frp
LuCI ---> Applications ---> luci-app-mwan3 ??#MWAN負載均衡
LuCI ---> Applications ---> luci-app-nlbwmon ??#網(wǎng)絡帶寬監(jiān)視器
LuCI ---> Applications ---> luci-app-ramfree ?#釋放內(nèi)存
LuCI ---> Applications ---> luci-app-samba ??#網(wǎng)絡共享(Samba)
LuCI ---> Applications ---> luci-app-sqm ?#流量智能隊列管理(QOS)
LuCI ---> Applications ---> luci-app-openclash #你懂的那只貓
LuCI ---> Applications ---> luci-app-dnsfilter #廣告過濾
LuCI ---> Applications ---> luci-app-passwall #不敢解釋
LuCI ---> Applications ---> luci-app-mtwifi #閉源Wi-Fi驅動
LuCI ---> Applications ---> luci-app-eqos #根據(jù)IP控制網(wǎng)速
LuCI ---> Applications ---> luci-app-syncdial #薛定諤的多撥應用
LuCI ---> Applications ---> luci-app-zerotier #虛擬局域網(wǎng)
LuCI ---> Applications ---> luci-app-jd-dailybonus #京東簽到自動領豆
LuCI ---> Applications ---> luci-app-oaf #應用過濾神器
LuCI ---> Applications ---> luci-app-watchcat #斷網(wǎng)檢測功能與定時重啟
LuCI ---> Applications ---> luci-app-wol ??#WOL網(wǎng)絡喚醒
LuCI ---> Applications ---> luci-app-wrtbwmon ?#實時流量監(jiān)測
LuCI ---> Applications ---> luci-app-upnp ??#通用即插即用UPnP(端口自動轉發(fā))
LuCI ---> Applications ---> luci-app-argon-config #Argon主題設置
?
?
常用主題類
LuCI ---> Themes ---> luci-theme-argon
?
?
?網(wǎng)絡相關
Network ---> IP Addresses and Names ---> ddns-scripts_cloudflare.com-v4
Network ---> IP Addresses and Names ---> ?bind-dig
Network ---> Routing and Rediction ---> ip-full
Network ---> File Transfer ---> curl
Network ---> File Transfer ---> wget-ssl
Network ---> iperf3
Network ---> ipset
Network ---> socat #多功能的網(wǎng)絡工具
Base system --> dnsmasq-full #DNS緩存和DHCP服務(dnsmasq-full和dnsmasq二者不可共存)
?
工具類
Utilities --> acpid ?#電源管理接口(適用于x86平臺)
Utilities --> Editors --> nano #Nano 編輯器
Utilities --> Shells --> bash #命令解釋程序
Utilities --> disc --> fdisk #MBR分區(qū)工具
Utilities --> disc --> gdisk #GBT分區(qū)工具
Utilities --> disc --> lsblk #列出磁盤設備及分區(qū)查看工具
Utilities --> Filesystem --> resize2fs #調整文件系統(tǒng)大小
Utilities --> Filesystem --> e2fsprogs #Ext2(及Ext3/4)文件系統(tǒng)工具
?
?IPv6
Extra packages ---> ipv6helper (勾選此項即可,下面幾項自動勾選)
Network ---> odhcp6c
Network ---> odhcpd-ipv6only
LuCI ---> Protocols ---> luci-proto-ipv6
LuCI ---> Protocols ---> luci-proto-ppp