1. 开始
1.1 采用L大源码编译:仓库地址:地址
2. 准备阶段/编译:
2.1 拉库安装依赖
- 首先装好 Ubuntu 64bit,推荐 Ubuntu 20.04 LTS x64
- 命令行输入:
sudo apt-get update
- 然后输入:
sudo apt-get -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
命令下载好源代码,然后cd lede
进入目录(FQ:路径不能有中文)
2.2 首次编译
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make -j8 download V=s
下载dl库(国内请尽量全局科学上网)- 输入
make -j1 V=s
(-j1 后面是线程数。第一次编译推荐用单线程)即可开始编译
2.3 二次编译
cd lede
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j$(($(nproc) + 1)) V=s
2.4 如果需要重新配置:
rm -rf ./tmp && rm -rf .config
make menuconfig
make -j$(($(nproc) + 1)) V=s
2.5 指定编译的内核版本(可选)
3. 个性化(添加第三方软件库等等)
3.1 修改feeds.conf.default
src-git packages https://github.com/coolsnowwolf/packages
src-git luci https://github.com/coolsnowwolf/luci
src-git routing https://git.openwrt.org/feed/routing.git
src-git telephony https://git.openwrt.org/feed/telephony.git
#src-git video https://github.com/openwrt/video.git
#src-git targets https://github.com/openwrt/targets.git
#src-git oldpackages http://git.openwrt.org/packages.git
#src-link custom /usr/src/openwrt/custom-feed
src-git NueXini_Packages https://github.com/NueXini/NueXini_Packages.git
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small
3.2 添加第三方软件源码
3.2.1 一款很不错的OpenWrt主题:地址
FQ:如果你使用了 "NueXini_Packages"的第三方库建议修改该主题在make menuconfig
的显示信息,因为该库也存在其他名称相似度较高的主题,修改后方便辨认
3.2.2 锐捷认证:地址
3.2.3 添加第三方源码包
把第三方ipk源码的package包放进lede/feeds/packages
目录,把第三方ipk源码的luci包(luci-xxx-xxx)放进lede/feeds/luci/applications
目录内,
然后运行下面的命令:
./scripts/feeds update luci
./scripts/feeds install -a -p luci
./scripts/feeds update packages
./scripts/feeds install -a -p packages
4. Menuconfig配置说明
感谢恩山大佬:happyzhang,原贴地址:地址
|
5. 插件说明
6. 踩坑日志
Target Images --->[*] Use Console Terminal (in addition to Serial)
如果不勾选则没有启动信息,如图:(不影响正常使用):Target Images ---> Root filesystem partition size (in MB)
系统分区不建议超过1024MB(x86)Target Images ---> Kernel partition size (in MB)
内核分区如果你的插件比较多可适当调大建议64~128MB(x86)
7. 编译常用命令
- 清除临时文件
rm -rf tmp
- 删除编译配置文件
rm -f .config
- 清除旧的编译产物(可选)
make clean
- 清除旧的编译产物、交叉编译工具及工具链等目录(可选)
make dirclean
- 清除 OpenWrt 源码以外的文件(可选)
make distclean
- 还原 OpenWrt 源码到初始状态(可选)
git clean -xdf
8. 报错解决(仅示例大多数情况报错)
- 包冲突(只能选其一)
check_data_file_clashes: Package ntfs-3g wants to install file /home/bbq/lede/build_dir/target-x86_64_musl/root-x86/sbin/mount.ntfs
But that file is already provided by package * antfs-mount
(ntfs-3g和antfs-mount冲突) - 多线程编译报错(改用单线程编译)
错误代码:什么软件包都可能报错,国内环境即使是二次编译也不保证一次编译成功。 - 个人对报错的处理方式:遇到报错先别急着解决报错,应使用
make -j1 V=s
多跑几次,如多次出现相同的报错再尝试解决报错。