用 V=Sc
输出编译问题,很多时候是因为下载慢或失败,代理要设置好
很多时候在不同平台下编译有各种各样的问题,所以要视情况而定,根据编译日志适当修改对应模块的 MakeFile 甚至是源码。(多利用单模块编译)
命令收集
Feed 更新
1
2
3
4
|
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
|
清理文件
make clean
、make dirclean
和 make distclean
设置固件参数
1
2
3
4
5
6
7
8
9
10
11
12
|
# Modify default IP
sed -i 's/192.168.1.1/192.168.77.252/g' package/base-files/files/bin/config_generate
# Modify default theme
sed -i 's/luci-theme-bootstrap/luci-theme-argon/g' feeds/luci/collections/luci/Makefile
# Modify hostname
sed -i 's/OpenWrt/MicroNas/g' package/base-files/files/bin/config_generate
# 加入编译者信息
sed -i "s/OpenWrt /Cardinalsad build $(TZ=UTC-8 date "+%Y.%m.%d") @ OpenWrt /g" package/lean/default-settings/files/zzz-default-settings
|
编译
Soft-Float 问题
有的 Openwrt 不支持 Hard-Soft
添加 -msoft-float
多线程
1
|
echo -e "$(nproc) thread compile"
|
预下载编译所需的软件包
make download -j8
检查文件完整性
find dl -size -1024c -exec ls -l {} \;
检查文件完整性命令可以列出下载不完整的文件,小于 1k 的文件属于下载不完整,如果存在则用下面的命令删除,然后重新下载编译所需的软件包,再次检查
确认所有文件完整可大大提高编译成功率,避免浪费时间 (慎用这个下面这个删除命令,因为很多文件真的会有小于 1k 的导致你的编译错误)
find dl -size -1024c -exec rm -f {} \;
二次编译
更新软件列表、升级软件包
1
2
3
4
5
|
sudo sh -c "apt update && apt upgrade -y"
cd lede
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
|
单独插件编译(用来排查错误最好)
1
2
3
4
5
6
7
8
|
make package/XXX/clean (清除某个模块)
make package/XXX/compile (#单独编译某模块 #V=99表示输出详细的debug信息)
make package/XXX/install
# 例如单独编译haibo库中passwall
make package/feeds/haibo/luci-app-passwall/compile V=99ma
|
Arm 下的编译问题
Golang 编译错误
go-bootstrap cannot be installed on linux/arm64
1
2
|
修改 .config 使用内部安装的 Go
CONFIG_GOLANG_EXTERNAL_BOOTSTRAP_ROOT="/usr/bin/go"
|