原创-penwrt(LEDE)编译一篇通

你可以从百度git到一大堆Lean以及其他各位大神的相关教程,但如果你想编译一个自己满意的软/硬路由系统,还是要多下一些功夫的,其中所涉及到的交叉编译更的是一步一坑,如果遇到讨厌的Error[1]之类的,请一定回来查看!

很重要的一点是:一定要确保你的外网足够稳定,你明白意思吧,就是能上GITHUB的那种。一个稳定的网络环境很重要!

大神项目地址

‬老毛子固件大神源码https://github.com/hanwckf/rt-n56u
coolsnowwolf源码地址:https://github.com/coolsnowwolf/lede
Lienol源码地址:https://github.com/Lienol/openwrt.git
kenzo源码包含openclash地址:https://github.com/kenzok8/openwrt-packages
kenzo国内gitee地址:https://gitee.com/kenzok8/openwrt-packages.git

环境配置

‬首先装好 Ubuntu 64bit,推荐 Ubuntu 18.04 LTS x64,命令行输入

  1. sudo apt-get update
  2. sudo apt-get upgrade

然后输入

18.04coolsnowwolf

  1. sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch 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

18.04Lienol

  1. sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 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

LEDE源码拉取

  1. git clone https://github.com/coolsnowwolf/lede

下载好源代码,然后cd lede进入目录

  1. cd lede

使用vi编辑feed订阅文件,添加我们所需安装包的大神git地址

  1. vi feeds.conf.default

添加下面代码到 openwrt 或lede源码根目录feeds.conf.default文件

  1. src-git kenzo https://github.com/kenzok8/openwrt-packages
  2. src-git small https://github.com/kenzok8/small
  3. src-git helloworld https://github.com/fw876/helloworld

‬配置及编译

清理订阅缓存

  1. ./scripts/feeds clean

更新订阅

  1. ./scripts/feeds update -a

安装订阅插件

  1. ./scripts/feeds install -a

进入编译配置菜单

  1. make menuconfig

按照配置文件的选择下载依赖库

  1. make -j8 download V=s

正式开始编译,-j1 后面是线程数。第一次编译要用单线程,直接使用多线程会出错

  1. make -j1 V=s

编译根据你的硬件配置不同可能需要几十分钟到数小时不等

编译完成

编译完成后固件输出路径:openwrt/bin/targets

第二次编译

进入lede目录

  1. cd lede

同步更新大神源码

  1. git pull

更新订阅

  1. ./scripts/feeds update -a

安装订阅插件

  1. ./scripts/feeds install -a

定义配置文件

  1. make defconfig

按照配置文件的选择下载依赖库

  1. make -j8 download V=s

正式开始编译,-j1 后面是线程数。保守起见使用的是单线程make -j1 V=s

  1. make -j$(($(nproc) + 1)) V=s

异常处理

‬如果中途配置出错需要重来,可不用重装系统,删除LEDE目录即可

  1. rm -rf /lede

可能用得上的依赖库

  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. sudo apt-get -y install build-essential asciidoc binutils bzip2 curl gawk gettext git libncurses5-dev libz-dev patch python3.5 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
  1. sudo apt-get update && sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 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