本地编译大前提:需要自由的全局网络环境,而且稳定速度快就更好,如果没有,还是别浪费时间了,可以尝试使用Action云编译或者国外云主机。Action云编译请自行查找资料。
下面是本地编译的一些资料。
老资料的参考.png系统推荐Ubuntu22.04 TLS
首次编译
>1、sudo apt update -y
1、sudo apt full-upgrade -y
2、sudo apt install -y ack antlr3 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-pyelftools \
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \
vim wget xmlto xxd zlib1g-dev python3-setuptools
3、git clone [https://github.com/coolsnowwolf/lede](https://github.com/coolsnowwolf/lede)
4、 cd lede #进入目录
5、./scripts/feeds update -a
6、./scripts/feeds install -a
7、make menuconfig #首次默认配置不要改动
8、make download -j4 V=s
# 下载完成后
find dl -size -1024c -exec ls -l {} \; #【 寻找小于1k文件确保文件完整性,重复三条命令,直到输出为空可以继续9】
find dl -size -1024c -exec rm -f {} \; #【 如果上面有,则删除小于1k文件】
make download -j4 V=s #【 删除之后 >>重新下载】
9、make -j1 V=s #编译
###############二次编译############
下面几种看自己情况选择其一
如果不需要修改配置
cd lede
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make download -j4 V=s
make -j$(nproc) V=s
// 二次编译时间预计会大大缩短
如果需要重新配置组件
1、git pull
2、修改feeds.conf.default里helloworld的注释去掉#号
3、./scripts/feeds update -a && ./scripts/feeds install -a
4、make defconfig
+、make clean //(如果之前编译出错,就clean一下。这也会增加编译时间)
5、rm -rf ./tmp && rm -rf .config //如果需要对组件重新调整,则建议先删除旧配置
6、make menuconfig //选择你需要的配置,具体操作后面有说
7、选择编译所需的内核组件和Luci组件(adguardHome和passwall2)
8、make download -j4 V=s
9、make -j$(nproc) V=s
如果需要修改cpu架构等重要配置
1、git pull
2、修改feeds.conf.default里helloworld的注释去掉#号
3、./scripts/feeds update -a && ./scripts/feeds install -a
// 4、make clean // 删除/bin和/build_dir目录中的文件
5、make dirclean // 删除/bin、/build_dir和staging_dir、/toolchain、/tmp 和 /logs中的文件 (这也会极大增加编译时间)
6、make defconfig
7、rm -rf ./tmp && rm -rf .config \#如果需要对组件重新调整,则建议先删除旧配置
8、make menuconfig #选择你需要的配置
// 7、修改 menu 内的 network => projectv => V2ray Con => 勾选第一个选项
9、选择编译所需的内核组件和Luci组件(adguardHome和passwall2)
10、make download -j4 V=s
11、make -j$(nproc) V=s
一些说明:
-
命令行中 -j 为线程数
-
如果需要添加插件源,执行命令:
在lede/路径下执行
nano feeds.conf.default
然后添加插件源
# 添加插件源,例如添加***源
src-git passwall2 https://github.com/xiaorouji/openwrt-passwall2.git
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
- make menuconfig操作说明
y 键选中组件
n 键取消选中组件
m 键只编译该组件不加入固件
esc esc,两次esc键表示返回
<- -> 左右方向键选择下部按钮,选中save按enter则保存
###############编译成功后############
取出bin/targets/下的openwrt固件文件安装即可
Leo, [2022/11/10 13:36]
“执行./scripts/feeds install -a 好几条 警告 依赖性不存在 怎么办?
WARNING: Makefile 'package/feeds/packages/libesmtp/Makefile' has a build dependency on 'meson/host', which does not exist ”
JasonAmela, [2022/11/10 13:37]
“不用管,只要过了编译就行”
注意事项:
新手编译最好严格按步骤分两步去做,这样哪怕错误也会更容易定位。
如果二次编译成功,那么以后再编译直接执行二次编译的步骤即可。
云Action编译的一些资料
@aizhouyi 非常感谢,不过有个疑问,第一次编译的config没有ssrplus,如果我想第二次注释HELLOWORLD+勾选后,我应该这么做?有没有workflow的模板可以分享一下呢?谢谢
一一解答
第一,可以通过修改feeds文件实现,确实可以。但我用的不是这种方法。
第二,我是直接下载科学源码,再去feeds。
云action推荐https://github.com/P3TERX/Actions-OpenWr
这个写的非常完善了,文档十分详细。
第三,模板很多了,很多定时编译的大佬一直更新,比如
https://github.com/SuLingGG/OpenWrt-Rpi
你也可以点进我的仓库可以看到我的,
https://github.com/aizhouyi/openwrt_compile.git
主要修改是workflow文件(只是我开启了国内上传固件,其他全是默认)和diy-part1.sh(这个就是增加你想要的功能),把本地的配置文件推上去,自动就开始编译了。
以上即为编译的关键操作部分,可能有不详尽或错误之处,感谢指出
网友评论