Openwrt 编译 – 手动编译

然后七年

然后七年

本文将介绍如何进行Openwrt编译,
第一页会介绍手动操作执行编译,
第二页会介绍借助GitHub Action进行编译,
建议在了解手动操作的基础上再尝试GitHub Action托管编译。
 

手动编译

部署环境

准备一个Ubuntu,打开终端(Ubuntu Server最小安装的纯tty也可,编译过程不依赖图形界面)

安装所有依赖
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

 

拉取源码并进入工程目录

本文采用lede源作为基础仓库,你也可以考虑使用openwrt官方源或其他第三方源开始

cd ~
git clone https://github.com/coolsnowwolf/lede
cd lede
取消被默认注释的feeds(可选)

sed -i -e '/^#/d' feeds.conf.default

添加自定义feeds (可选)

echo 'src-git onliner https://github.com/rufengsuixing/luci-app-onliner' >> feeds.conf.default

sed -i '$a src-git onliner https://github.com/rufengsuixing/luci-app-onliner' feeds.conf.default
 

更新并安装feeds

./scripts/feeds update -a && ./scripts/feeds install -a
 

进行一些自定义修改

# 修改默认IP
sed -i 's/192.168.1.1/192.168.50.5/g' package/base-files/files/bin/config_generate

# 修改默认主题
sed -i 's/bootstrap/argon/g' feeds/luci/collections/luci/Makefile

# 使用原版argon主题
rm -rf ./feeds/luci/themes/luci-theme-argon
git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git ./package/luci-theme-argon
git clone https://github.com/jerrykuku/luci-app-argon-config.git ./package/luci-app-argon-config

# 更改默认壁纸
wget -O ./package/luci-theme-argon/htdocs/luci-static/argon/img/bg1.jpg https://github.com/xylz0928/luci-mod/raw/main/Background/MontereyDark.jpg
# 更改默认图标
svn co https://github.com/xylz0928/luci-mod/trunk/feeds/luci/modules/luci-base/htdocs/luci-static/resources/icons ./package/lucimod
mv package/lucimod/* feeds/luci/modules/luci-base/htdocs/luci-static/resources/icons/

# 注释默认防火墙规则(取消拦截DNS)
sed -i "s/echo 'iptables/echo '# iptables/g" ./package/lean/default-settings/files/zzz-default-settings
sed -i "s/echo '\[ -n/echo '# \[ -n/g" ./package/lean/default-settings/files/zzz-default-settings

# 修改版本号
modelmark=R`TZ=UTC-8 date +%Y-%m-%d -d +"0"days`' by xylz0928'
sed -i "s/DISTRIB_REVISION='R[0-9]*\.[0-9]*\.[0-9]*/DISTRIB_REVISION='$modelmark/g" ./package/lean/default-settings/files/zzz-default-settings
# 本文末会介绍如何修改 默认banner(SSH登录的欢迎信息)

 

添加第三方或自定义软件包

# 添加 Serverchan
git clone https://github.com/tty228/luci-app-serverchan.git package/luci-app-serverchan
# 添加 Pushbot (全能推送)
rm -rf ./feeds/luci/applications/luci-app-pushbot
git clone https://github.com/zzsj0928/luci-app-pushbot package/luci-app-pushbot
# 添加 Onliner
git clone https://github.com/rufengsuixing/luci-app-onliner.git package/luci-app-onliner
# 添加 OpenAppFilter
git clone https://github.com/destan19/OpenAppFilter.git package/OpenAppFilter
# 添加 Dockerman
git clone https://github.com/lisaac/luci-app-dockerman package/luci-app-dockerman
# 添加 ADGuard Home
svn co https://github.com/sirpdboy/sirpdboy-package/trunk/luci-app-adguardhome ./package/luci-app-adguardhome
chmod -R 755 ./package/luci-app-adguardhome/*
svn co https://github.com/sirpdboy/sirpdboy-package/trunk/adguardhome ./package/adguardhome
chmod -R 755 ./package/adguardhome/*
# 添加 WOL Plus
svn co https://github.com/sundaqiang/openwrt-packages/trunk/luci-app-wolplus ./package/luci-app-wolplus
chmod -R 755 ./package/luci-app-wolplus/*
# 添加 socat(端口转发)
svn co https://github.com/sirpdboy/sirpdboy-package/trunk/luci-app-socat ./package/luci-app-socat
chmod -R 755 ./package/luci-app-socat/*
# 添加高级设置
svn co https://github.com/sirpdboy/sirpdboy-package/trunk/luci-app-advanced ./package/luci-app-advanced
chmod -R 755 ./package/luci-app-advanced/*
# 添加关机 (x86生效)
git clone https://github.com/esirplayground/luci-app-poweroff package/luci-app-poweroff
# 还有几个源稍后添加

 

设置配置及选择软件包

make menuconfig
 

下载编译依赖工具库并编译

make download && make -j1 V=s
 

重新编译

git pull
./scripts/feeds update -a && ./scripts/feeds install -a
# cd package / git pull
make -j16 V=s

 

附: 如何修改默认banner
# 修改tty banner
echo " -----------------------------------------------------" >> /tmp/mark
echo "      █      █  ▚           ▟               █         " >> /tmp/mark
echo "     █████   █      █████████     █        █████████  " >> /tmp/mark
echo "    █ ▃ ██ ██████   ██            █        █   ██     " >> /tmp/mark
echo "  ██ ▃ ██   █ █     █████████     ██████ ██ ████████  " >> /tmp/mark
echo "     ██    █   █    █ ██████  ███▟          █  ██     " >> /tmp/mark
echo "   ██     █     ██  █ █    █      █         █  ██     " >> /tmp/mark
echo "    ▞  ▚   ▚   ▚    █ █    █      █   █  ████████████ " >> /tmp/mark
echo "  ▞▞▞  ▚▚▚ ▚▚▚ ▚▚▚ ▟  ██████      █████        ██     " >> /tmp/mark
echo "                                               ██     " >> /tmp/mark
echo " -----------------------------------------------------" >> /tmp/mark
echo "     _________       _    ___ ___  ___                " >> /tmp/mark
echo "    /        /\     | |  | __|   \| __|               " >> /tmp/mark
echo "   /  LE    /  \    | |__| _|| |) | _|                " >> /tmp/mark
echo "  /    DE  /    \   |____|___|___/|___|               " >> /tmp/mark
echo " /________/  LE  \                                    " >> /tmp/mark
echo " \        \   DE / -----------------------------------" >> /tmp/mark
echo "  \    LE  \    /  %D %V, %C                          " >> /tmp/mark
echo "   \  DE    \  /   timestamp                          " >> /tmp/mark
echo "    \________\/    -----------------------------------" >> /tmp/mark

> ./package/base-files/files/etc/banner
cat /tmp/mark >> ./package/base-files/files/etc/banner

# 修改版本号-tty
sed -i "s/timestamp/Built on '$(TZ=UTC-8 date +%Y-%m-%d)' by xylz0928/g" ./package/base-files/files/etc/banner

 


 

Github Action 自动化编译

Openwrt 编译 – GitHub Action 自动化编译

分享到:

发表回复