以 Lean's OpenWrt source 為例
注意:
不要用 root 用戶 git 和編譯!!!國內用戶編譯前最好準備好梯子默認登陸 IP 192.168.1.1, 密碼 password準備編譯系統推薦使用的編譯系統環境: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>