编译openwrt

· 7 mins read

编译openwrt

环境ubuntu-20.04.2 安装依赖包

apt -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/coolsnowwolf/lede.git openwrt

下面操作不要用root账户

添加软件源

cd openwrt

# 软件源文件 喜欢什么添加什么
feeds.conf.default

更新源 和 安装源

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

设置主题

# 删除自定义源默认的 argon 主题
rm -rf package/lean/luci-theme-argon

# 针对 LEDE 项目拉取 argon 原作者的源码
git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git package/lean/luci-theme-argon

# 替换默认主题为 luci-theme-argon
sed -i 's/luci-theme-bootstrap/luci-theme-argon/' feeds/luci/collections/luci/Makefile

编译固件

make menuconfig

执行后会进入菜单
Target System (x86) 是编译目标
Target Images 编译固件格式、有虚拟机的类型
Extra Packages 支持ipv6ipv6helper选择上
Luci-->Applications 软件包和添加源一样,喜欢啥就添加啥
tip:
* 打包进固件内
M 作为module
open2 依赖 open1

下载编译的软件包

make download -j8 V=s

单线程编译 openwrt

make -j1 V=s

编译时间巨长,2-3小时才能完成 编译输出位置/openwrt/bin/targets/x86/64

二次编译

先删除配置文件、再生成配置文件、然后编译
第二次编译比较快 15分钟左右
第二次编译是重新生成固件、重新生成固件、重新生成固件

git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j$(($(nproc) + 1)) V=s

重新配置软件

rm -rf ./tmp && rm -rf .config
make menuconfig

参考

OpenWrt 固件自编译教程 编译 Openwrt 固件