1. 开始

1.1 采用L大源码编译:仓库地址:地址

2. 准备阶段/编译:

2.1 拉库安装依赖

  1. 首先装好 Ubuntu 64bit,推荐 Ubuntu 20.04 LTS x64
  2. 命令行输入:
sudo apt-get update
  1. 然后输入:
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
  1. 使用 git clone https://github.com/coolsnowwolf/lede命令下载好源代码,然后 cd lede进入目录(FQ:路径不能有中文)

2.2 首次编译

  1. ./scripts/feeds update -a
  2. ./scripts/feeds install -a
  3. make menuconfig
  4. make -j8 download V=s下载dl库(国内请尽量全局科学上网)
  5. 输入 make -j1 V=s(-j1 后面是线程数。第一次编译推荐用单线程)即可开始编译

2.3 二次编译

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

2.4 如果需要重新配置:

  1. rm -rf ./tmp && rm -rf .config
  2. make menuconfig
  3. make -j$(($(nproc) + 1)) V=s

2.5 指定编译的内核版本(可选)

image.png

3. 个性化(添加第三方软件库等等)

3.1 修改feeds.conf.default

  1. src-git packages https://github.com/coolsnowwolf/packages
  2. src-git luci https://github.com/coolsnowwolf/luci
  3. src-git routing https://git.openwrt.org/feed/routing.git
  4. src-git telephony https://git.openwrt.org/feed/telephony.git
  5. #src-git video https://github.com/openwrt/video.git
  6. #src-git targets https://github.com/openwrt/targets.git
  7. #src-git oldpackages http://git.openwrt.org/packages.git
  8. #src-link custom /usr/src/openwrt/custom-feed
  9. src-git NueXini_Packages https://github.com/NueXini/NueXini_Packages.git
  10. src-git kenzo https://github.com/kenzok8/openwrt-packages
  11. src-git small https://github.com/kenzok8/small
    image.png

3.2 添加第三方软件源码

3.2.1 一款很不错的OpenWrt主题:地址

FQ:如果你使用了 "NueXini_Packages"的第三方库建议修改该主题在make menuconfig的显示信息,因为该库也存在其他名称相似度较高的主题,修改后方便辨认
image33385d0b840145f997d90453c11e3457.png

3.2.2 锐捷认证:地址

3.2.3 添加第三方源码包

把第三方ipk源码的package包放进lede/feeds/packages
目录,把第三方ipk源码的luci包(luci-xxx-xxx)放进lede/feeds/luci/applications
目录内,
然后运行下面的命令:

  1. ./scripts/feeds update luci
  2. ./scripts/feeds install -a -p luci
  3. ./scripts/feeds update packages
  4. ./scripts/feeds install -a -p packages

4. Menuconfig配置说明

感谢恩山大佬:happyzhang,原贴地址:地址

image.png|

5. 插件说明

恩山地址

6. 踩坑日志

  1. Target Images --->[*] Use Console Terminal (in addition to Serial)如果不勾选则没有启动信息,如图:(不影响正常使用):image.png
  2. Target Images ---> Root filesystem partition size (in MB) 系统分区不建议超过1024MB(x86)
  3. Target Images ---> Kernel partition size (in MB) 内核分区如果你的插件比较多可适当调大建议64~128MB(x86)

7. 编译常用命令

  1. 清除临时文件
rm -rf tmp
  1. 删除编译配置文件
rm -f .config
  1. 清除旧的编译产物(可选)
make clean
  1. 清除旧的编译产物、交叉编译工具及工具链等目录(可选)
make dirclean
  1. 清除 OpenWrt 源码以外的文件(可选)
make distclean
  1. 还原 OpenWrt 源码到初始状态(可选)
git clean -xdf

8. 报错解决(仅示例大多数情况报错)

  1. 包冲突(只能选其一)
    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冲突)
  2. 多线程编译报错(改用单线程编译)
    错误代码:什么软件包都可能报错,国内环境即使是二次编译也不保证一次编译成功。
  3. 个人对报错的处理方式:遇到报错先别急着解决报错,应使用make -j1 V=s多跑几次,如多次出现相同的报错再尝试解决报错。