利用Lean大源码自编译LEDE

定制属于自己的软路由

请注意,本文编写于 609 天前,最后修改于 200 天前,其中某些信息可能已经过时。

源码仓库

Lean大源码仓库
https://github.com/coolsnowwolf/lede
vernesong OpenClash仓库
https://github.com/vernesong/OpenClash
Lienol Passwal仓库
https://github.com/xiaorouji/openwrt-passwall
Pymumu Smartdns仓库 (暂未成功编译进固件)
https://github.com/pymumu/smartdns
luci-app-vssr [Hello World]
https://github.com/jerrykuku/luci-app-vssr
luci-theme-argon(魔改)
https://github.com/jerrykuku/luci-theme-argon
京东多合一签到脚本
https://github.com/jerrykuku/luci-app-jd-dailybonus
行为管控
https://github.com/destan19/OpenAppFilter
Dockerman
https://github.com/lisaac/luci-app-dockerman


系统环境

系统要求:Ubuntu 18.04 LTS
CPU:1核即可,因为编译时只用1线程
内存:4G
硬盘:最小32G,建议直接50G(编译时会产生很多临时文件,本人第一次失败就是因为硬盘空间不足,后进行lvm扩容成功)用lvm格式,万一硬盘空间不够,也方便直接扩容。


编译过程

第一次编译

Lean大的仓库下,已经把过程写的很清楚,小白如果没有添加太多的luci app,导致依赖有冲突,基本上都可一次成功。原文可以在仓库看到。
以下是根据Lean大,Vernesong和Lienol仓库的介绍,将Openclash和Passwal的源加入原版lede,并进行编译。
2020年8月19日更新加入了其他一些比较有用的组件

首先要注意:

  1. 不要用 root 用户 git 和编译!!!
  2. 国内用户编译前最好准备好梯子
  3. 默认登陆IP 192.168.1.254, 密码 password
  4. 2020年9月10日起固件默认登录IP更改为 192.168.1.254 默认密码不变

编译过程如下:
首先装好 Ubuntu 64bit,推荐 Ubuntu 14 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 swig rsync
git clone https://github.com/coolsnowwolf/lede #下载源代码
cd lede #进入目录

将Lienol的Passwall加入编译源

vi feeds.conf.default
#将以下加入至最后一行
src-git lienol https://github.com/xiaorouji/openwrt-passwall
ESC :wq Enter #编辑完成后vim的保存并退出命令

手动Clone vernesong的OpenClash项目

mkdir package/luci-app-openclash
cd package/luci-app-openclash
git init
git remote add -f origin https://github.com/vernesong/OpenClash.git
git config core.sparsecheckout true
echo "luci-app-openclash" >> .git/info/sparse-checkout
git pull origin master
git branch --set-upstream-to=origin/master master

手动Clone vssr[Hello World]项目

cd /home/user/lede/package/lean/ && git clone https://github.com/jerrykuku/lua-maxminddb.git  #git lua-maxminddb依赖
git clone https://github.com/jerrykuku/luci-app-vssr.git 

手动Clone luci-theme-argon魔改主题

cd /home/user/lede/package/lean  
rm -rf luci-theme-argon  
git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git  

手动Clone 京东多合一签到脚本luci-app-jd-dailybonus

2021年1月,Lean大仓库已fork了该脚本,不需要再自行添加。如需自行添加,可以参考如下旧的笔记。

cd /home/user/lede/package/lean/ 
git clone https://github.com/jerrykuku/node-request.git  #git node-request 依赖
git clone https://github.com/jerrykuku/luci-app-jd-dailybonus.git  
make menuconfig #Check LUCI->Applications->luci-app-jd-dailybonus
make package/lean/node-request/compile V=s  #单独编译node-request 依赖  
make package/lean/luci-app-jd-dailybonus/compile V=s  #单独编译luci-app-jd-dailybonus 

手动Clone 行为管控

cd /home/user/lede/package
git clone https://github.com/destan19/OpenAppFilter.git
cd ..
#在lede中编译,需要去除加速模块,可以直接删除或者make menuconfig不编译加速模块
rm package/lean/luci-app-flowoffload -fr
rm package/lean/shortcut-fe/ -fr
rm package/lean/luci-app-sfe/ -fr

手动clone Dockerman

cd /home/user/lede/package/lean/ && git clone https://github.com/lisaac/luci-app-dockerman.git

更新及安装软件源

cd /home/user/lede
./scripts/feeds update -a && ./scripts/feeds install -a

固件配置

make menuconfig 

进去以后很多选项可能会一脸懵逼,我上传一份我自己的配置,机型是X64,我给我的固件取了个名字-“什么都有”。

修改固件IP(可选项)

cd /home/user/lede
nano package/base-files/files/bin/config_generate

在如下位置,将默认的192.168.1.1更改为所需要的IP

openwrt-buid-change-ip.jpg
openwrt-buid-change-ip.jpg

正式编译

make -j8 download V=s #下载dl库,国内请尽量全局科学上网
make -j1 V=s # -j1后面数字1是线程数。第一次编译推荐用单线程,即可开始编译你要的固件了。

第一次编译大约需要4至6小时,请耐心等待。


更新编译

在经过第一次编译后,以后再编译就比较简单且时间也会缩短至一小时内

cd lede #进入LEDE目录
git pull #同步更新大雕源码
cd package/luci-app-openclash && git pull #进入OpenClash目录并更新源码
cd /home/user/lede/package/lean/luci-app-vssr && git pull #进入luci-app-vssr目录并更新源码
cd /home/user/lede/package/lean/luci-theme-argon && git pull #进入luci-theme-argon目录并更新源码
cd /home/user/lede/package/lean/luci-app-jd-dailybonus && git pull #进入luci-app-jd-dailybonus目录并更新源码
cd /home/user/lede/package/OpenAppFilter && git pull #进入OpenAppFilter目录并更新源码
cd /home/user/lede/package/lean/luci-app-dockerman && git pull #进入Dockerman目录并更新源码
cd /home/user/lede #退回到lede目录
./scripts/feeds update -a && ./scripts/feeds install -a #更新FEEDS

#如有固件有大版本升级,建议清除编译配置和缓存;如无可跳过此步
rm -rf ./tmp && rm -rf .config

#进入编译配置菜单
make menuconfig

#n=线程数+1,例如4线程的I5填-j5,开始编译
make -j1 V=s 

##Lienol Passwall (2020年5月1日更新)
由于不可描述原因,Lienol的Passwall已经不再公开源码,以后的编译,也不会自带Passwall插件,需要的可以在下面的成品分享中找到单独的ipk,进行自行安装。分享中,上传的passwall版本为"luci-app-passwall_3.6-41_all.ipk".

成品分享

展示一下最近一次编译的固件。由于最近的更新趋于平稳,所以编译也没有之前那么频繁了,如果有兴趣想要下载的,我已经全部传入Google Team Drive,并且自建了一个分享群组,点击链接 LEDE分享群组 通过自己的Google账号加入这个群组后,即可在 https://drive.google.com 中看到名为LEDE的Team Drive,即可自行进行下载。文件名中有编译日期,这个日期使用的也是当天的源码。

58379a5ac24bd8a4dda7bd9f3336015.png
58379a5ac24bd8a4dda7bd9f3336015.png


如有编译失败,可参考以下资料

https://p3terx.com/archives/reasons-and-solutions-for-openwrt-compilation-failure.html
https://p3terx.com/archives/reasons-and-solutions-for-openwrt-compilation-failure-2.html


Refference:

https://www.vjsun.com/383.html

添加新评论

已有 2 条评论

你好
感谢您的教程,已经编译成功了,但是按照你的教程,passwall为什么在固件里找不到啊
感谢

感谢分享,最清晰明了,切合实际的教程。
有个问题是,可否将更新后编译,这一段写成一个脚本,以后只执行一下脚本就行了,不用一行行的敲代码了。
小白不懂脚本,望大神赐教