我编译的固件放在 https://github.com/DogInNoSense/OpenWrt/releases
可自行选择使用

openwrt x86主机安装教程: https://www.lmxyz.xyz/op-setup/


以下是完整编译过程

lede源码仓库有简单的教程: https://github.com/coolsnowwolf/lede
注意:ubuntu确保留有100g的空间,并且确保全局科学上网环境

首次编译

更新源和包

1
2
sudo apt update -y
sudo apt full-upgrade -y

安装依赖项

1
2
3
4
5
6
sudo apt install -y ack antlr3 aria2 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev

下载源码

1
2
git clone https://github.com/coolsnowwolf/lede
cd lede

添加部分插件源

常用软件包,包含passwallssr plus
lede文件夹找到feeds.conf.default文件,添加以下三条

1
2
3
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 # passwall 基本依赖

更新并安装feed

1
2
./scripts/feeds update -a
./scripts/feeds install -a

调整OpenWrt系统组件

1
make menuconfig

调整安装插件的空间大小

第二项代表软件包的空间

选择包和主题

第一次编译建议选少一些,因为耗时较长,而且很大几率出错

下载dl库,编译固件

-j后面是线程数,第一次编译推荐用单线程

1
2
make download -j8
make V=s -j1

第一次耗时较久,我大约花费了5个小时
编译完成后固件的输出路径:bin/targets


二次编译

二次编译就很快了(大概40分钟就可以),只需要修改

同版本openwrt

变更配置(有两种方式:重新配置/修改配置),然后直接编译,

  1. 完全清空配置再编译
    先删除.config文件和tmp,因为如果直接menuconfig,你减去的包他不会删除,只会新增包。
    1
    2
    3
    rm -rf ./tmp && rm -rf .config
    make menuconfig
    make V=s -j$(nproc)
  2. 修改上次配置再编译
    你也可以不删除.config文件,menuconfig,手动修改插件和主题后,直接编译即可
    我计算了一下只修改插件和主题的话,大约只花了八分钟
    1
    2
    make menuconfig
    make V=s -j$(nproc)

不同版本openwrt

拉取新版本代码,然后使用之前的配置,直接编译

1
2
3
4
5
6
7
cd lede
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make download -j8
make V=s -j$(nproc)