准备环境:ubuntu 22/24,debian 11/12
安装依赖
apt install binutils-gold bison build-essential ccache ecj fastjar file flex g++ gawk gcc-arm* gettext git libbsd-dev libelf-dev libncurses-dev libssl-dev meson mold ninja-build pbzip2 pigz pkg-config python3-dev python3-setuptools rsync subversion swig time unzip wget xsltproc xxd zlib1g-dev zstd
apt install build-essential clang flex bison g++ gawk \
gcc-multilib g++-multilib gettext git libncurses-dev libssl-dev \
python3-distutils python3-setuptools rsync swig unzip zlib1g-dev file wget
新建一个普通用户 useradd -m 用户名。
给新建用户设置密码 passwd 用户名。
给用户添加sudo权限 usermod -aG sudo 用户名。
切换到新建的用户 su – 刚刚新建的用户名。
输入cd回车,切换到用户的根目录,上传openwrt或者其他分支的源码。
添加科学环境,因为要期间会用到大量git,如果你用的非国内服务器,那不需要此步骤。
export all_proxy=http://127.0.0.1:10985
export http_proxy=http://127.0.0.1:10985
export https_proxy=http://127.0.0.1:10985
cd切换到源码根目录,依次执行以下命令。
./scripts/feeds clean
./scripts/feeds update -a
./scripts/feeds install -a
期间如果有报错请检查科学环境,正常是不会报错的。
执行完毕后输入 make menuconfig
Target System → CPU 架构
Subtarget → 子平台
Target Profile → 路由器型号
LUCI > 3.Applications 可以自定义需要内置的软件。Network内一般内置了软件分载和硬件分载。
选择完毕后切换到save按钮保存然后退出。
执行 make defconfig 生成配置
执行 make download -j$(nproc) 下载预编译软件包依赖。
执行 make -j$(nproc) V=sc 开始编译,默认官方源码不会有报错,如果你通过其他方式手动添加了软件进去编译可能出现报错,按提示排查。
开始编译需要等待较长时间,编译结束后查看 bin/targets/ 或者固件,刷入设备即可。
如果需要编译其他平台,可以避免再次浪费时间下载依赖,请按以下步骤。
执行 make clean。
执行 make menuconfig 重新配置硬件软件。
选择好 Target System / Subtarget / Target Profile 。
执行 make defconfig
开始编译 make -j$(nproc) V=sc
编译完成后会在 bin/targets/ 生成不同设备名称的文件夹。

个人自用固件遇到的一些问题。
23.05源码,加入turboacc sfe插件,使用https://github.com/chenmozhijin/turboacc。运行脚本后进行编译会报错,需要修改 package/turboacc/luci-app-turboacc/Makefile
需要修改两处,32行,+PACKAGE_$(PKG_NAME)_INCLUDE_NFT_FULLCONE:kmod-nft-fullcone 将这行注释。
最下方,65行
default 默认是y 修改为n,重新编译即可。