編譯屬於自己的openwrt固件

以 Lean's OpenWrt source 為例

注意:

不要用 root 用戶 git 和編譯!!!國內用戶編譯前最好準備好梯子默認登陸 IP 192.168.1.1, 密碼 pass­word準備編譯系統

推薦使用的編譯系統環境:Ubuntu 18 LTS x64

初次編譯:

更新編譯系統

<code>sudo apt-get update/<code>配置編譯環境

<code>sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 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/<code>下載 lede 源碼

<code>git clone https://github.com/coolsnowwolf/lede/<code>進入 lede 目錄

<code>cd lede/<code>更新軟件包

<code>./scripts/feeds update -a
./scripts/feeds install -a/<code>調整固件參數

<code>make menuconfig/<code>下載 dl 庫(國內請儘量全局科學上網)

<code>make download V=s/<code>開始編譯固件(-j1 後面是線程數,第一次編譯推薦用單線程)

<code>make -j1 V=s/<code>


二次編譯:

進入 lede 目錄

<code>cd lede/<code>更新 lede 源碼

<code>git pull/<code>更新 FEEDS

<code>./scripts/feeds update -a && ./scripts/feeds install -a/<code>補全配置 *

<code>make defconfig/<code>下載源碼

<code>make -j8 download/<code>開始編譯

<code>make -j$(($(nproc) + 1)) V=s/<code>


如需重新配置*

清除編譯配置和緩存

<code>rm -rf ./tmp && rm -rf .config/<code>進入配置菜單

<code>make menuconfig/<code>

開始編譯

<code>make -j$(($(nproc) + 1)) V=s/<code>

編譯完成後輸出路徑:/lede/bin/targets

進階玩法

生成差異配置,可用於 GitHub Actions 雲編譯 OpenWrt

<code>./scripts/diffconfig.sh > config.seed/<code>