Ubuntu下用Lean源碼編譯openwrt
源碼位址:https://github.com/coolsnowwolf/lede
1:首先微軟雲伺服器裝好 Ubuntu 64bit,推薦 Ubuntu 20.04 LTS x64,免費一年。ip設定在地球某處。總結就是每一步需要下載下傳的都得下載下傳完,不然編譯容易出錯.
2:ssh連接配接微軟雲伺服器,指令行輸入,安裝編譯依賴
sudo apt-get update
sudo apt full-upgrade -y
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
3: 下載下傳源代碼進入目錄
git clone https://github.com/coolsnowwolf/lede
cd lede
4:更新feeds 并增加一些其他插件https://github.com/kenzok8/openwrt-packages,添加下面代碼到雲伺服器/lede目錄下的 feeds.conf.default 檔案中添加:
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small
然後再指令行輸入
./scripts/feeds update -a
./scripts/feeds install -a
5: 選擇配置需要安裝app
make menuconfig
6:下載下傳 dl 庫,編譯固件 (-j 後面是線程數,第一次編譯推薦用單線程)
make -j8 download V=s
make -j1 V=s
編譯成功後,在/lede/bin/targets/x86/64
再次編譯 (适用于不更改配置功能和插件,僅更新)
cd lede
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j ( ( (( (((nproc) + 1)) V=s
更改配置編譯
cd lede
rm -rf ./tmp && rm -rf .config
make menuconfig
make -j ( ( (( (((nproc) + 1)) V=s
一行指令u盤啟動openwrt安裝x86硬碟上
dd if=/dev/zero of=/dev/sda #格式化硬碟
dd if=/tmp/upload/openwrt-x86-64-generic-squashfs-combined-efi.img of=/dev/sda
#定制自己的固件
#軟體源
src-git helloworld https://github.com/fw876/helloworld
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small
#核心修改
/target/linux/x86/Makefile 修改 KERNEL_PATCHVER:=核心版本
#修改預設IP位址
package/base-files/files/bin/config_generate
#修改版本号 檔案中的R22.3.13及OpenWrt
lede/package/lean/default-settings/files/zzz-default-settings (注意OpenWrt後面的空格)
#定制個性SSH登陸歡迎資訊
lede/package/base-files/files/etc/banner
#修改預設主題界面
lede/feeds/luci/collections/luci/Makefile檔案更改預設主題
lede/feeds/luci/collections/luci-ssl-nginx/Makefile
lede/feeds/luci/collections/luci-ssl-openssl/Makefile
這三個檔案都要修改預設主題名字,不然後面編譯可能會報錯
#克隆源碼插件庫
cd lede/package/lean
git clone https://github.com/rufengsuixing/luci-app-adguardhome.git
#給tmp權限,友善下載下傳
sudo chmod -R 777 tmp
更改LAN口的預設IP位址
cd lede
vim package/base-files/files/bin/config_generate
大概在99行找到我們預設的原IP位址(192.168.1.1),按“i”把對應的IP更改即可
然後按shift+: 輸入wq回車儲存退出
編譯豐富插件時,建議修改下面兩項預設大小,留足插件空間。( x86/64 )!!!
Target Images —> (16) Kernel partition size (in MB) #預設是 (16) 建議修改 (256)
Target Images —> (160) Root filesystem partition size (in MB) #預設是 (160) 建議修改 (512)
如果需要 Cloudflare DDNS 元件
預設情況下 Open¬Wrt 中并沒有 Cloud¬flare DDNS 功能,就算勾選了DDNS也不包含cloudflare營運商。是以需要在編譯時選擇相應的元件,其位置在 Network→IP Addresses and Names →ddns-scripets_cloudflare.com-v4
更改 固件版本資訊
sed -i “s/OpenWrt /$(date +%Y.%m.%d) 2022/xx/xx /g” package/lean/default-settings/files/zzz-default-settings