原文地址:https://imgki.com/archives/openwrt-lean.html

 

更新2021.8.18

 

软路由

之前自己配了一台软路由,3205的cpu+8G内存,一直使用Koolshare的LEDE,但是koolss插件已经长期停止更新,而且各种问题,经常死机,说实话算不上一个很好的固件。

后来在网上找其他固件,发现LEAN的LEDE固件非常不错,主要是冲着SSR-plus去的,但是研究了一下发现,这个固件那个是非常的高端啊,要自己用ubuntu编译。

说高端就是高端,不得不说lean大佬这个做的太nb了,用作者的原话是:

如果你自认为 Koolshare 论坛或者其固件的脑残粉,本人不欢迎你使用本源代码。所以如果你是,那么使用过程中遇到任何问题本人概不回应。

作者的Github地址:https://github.com/coolsnowwolf/lede

准备工作

注意

  • 不要用 root 用户进行编译!!!
  • 国内用户编译前最好准备好梯子
  • 默认登陆IP 192.168.1.1 密码 password

安装必备组件

输入 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

Clone源码

使用 `git clone https://github.com/coolsnowwolf/lede.git` 命令下载好源代码,然后 cd lede 进入目录

配置编译

./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig

下载dll库

make -j8 download V=s 下载dl库(国内请尽量全局科学上网)

配置固件

之后进入如下界面,这实际上是一个配置界面,用来配置编译的配置,并不是编译的过程。

oplean1-1.png
进入Target System和Subtarget勾选你需要编译的平台,我用的是X86,并且是64位的,所以你需要选择自助选择。

OpenWrt Configuration【OpenWrt配置】Target System (x86)  --->   目标系统(x86)
Subtarget (x86_64)  --->   子目标(x86_64)
Target Profile (Generic)  --->目标配置文件(通用)
Target Images  ---> 保存目标镜像的格式
Global build settings  --->      全局构建设置
Advanced configuration options (for developers)  ---- 高级配置选项(适用于开发人员)
Build the OpenWrt Image Builder 构建OpenWrt图像生成器
Build the OpenWrt SDK构建OpenWrt SDK
Package the OpenWrt-based Toolchain打包基于OpenWrt的工具链
Image configuration  --->图像配置
Base system  --->     基本系统
Administration  --->     管理
Boot Loaders  --->引导加载程序
Development  --->   开发
Extra packages  --->  额外包
Firmware  --->固件
Fonts  --->字体
Kernel modules  --->  内核模块
Languages  --->语言
Libraries  --->  图书馆
LuCI  --->      LuCI
Mail  --->邮件
Multimedia  --->多媒体
Network  --->网络
Sound  ---> 声音
Utilities  --->实用程序
Xorg  --->Xorg

oplean1-2.png
进入Target Images勾选你需要的固件格式等(img、vmdk等这里我保持默认,默认也够用了吧?)
oplean1-3.png
进入LuCI–>Applications内选中你需要的插件
oplean1-4.pngoplean1-5.png

在这里有一些别的选项,比如一些VPN、aria2的web管理等等,根据需要自己进去研究。

勾选完需要的东西就可以退回第一个界面保存退出,保存按默认的文件名称(.config)保存即可,不需要修改。编译会根据.config的内容编译,想要恢复到初始配置删掉.config文件即可。

在编译的过程中,要下载一些组件什么的,如果你不翻墙,下载速度会非常慢,甚至下载不下来。

编译

保存后执行以下命令

make -j1 V=s    //第一次编译非常的慢,要花上一两个小时

Snipaste_2019-09-15_22-31-56.png

取得固件

cd bin/targets/x86/64        注:这个bin目录在你克隆源码的lede路径下,非根目录下的bin目录

在下载openwrt系统时,经常能看到initramfs-kernel.bin,squashfs-factory.bin,squashfs-sysupgrade.bin等结尾的文件,factory适用于从原厂系统刷到openwrt,sysupgrade则是从openwrt刷到openwrt(已经是openwrt系统,在openwrt系统中更新自己),squashfs则是一种文件系统,适用于嵌入式设备。那么initramfs-kernel又是什么呢。

initramfs是放在内存RAM中的rootfs 映像文件,跟kernel放在一起。一般来说用不到initramfs-kernel.bin来刷机,因为启动后,所有的配置在路由器重启后都不能保留(毕竟ram文件系统,所有文件放在ram中,断电就没了)。但也有用到initramfs-kernel.bin的时候,就是在移植openwrt系统的时候,没有设备上的flash闪存的驱动的时候。

文件类型

文件共提供多种类型供下载(根据编译时选择的Target Images配置),需要其他类型的请自行转换,下面是部分说明

image.png

一般来说,用openwrt-x86-64-generic-squashfs-combined.img 或.gz 文件就可以了


固件里面看不到ssr-plus

大佬在feed里里面吧ssr的feed隐藏了

src-git luci https://github.com/coolsnowwolf/luci
src-git routing https://git.openwrt.org/feed/routing.git;openwrt-19.07
#src-git telephony https://git.openwrt.org/feed/telephony.git;openwrt-19.07
#src-git helloworld https://github.com/fw876/helloworld

git pull
rm -rf ./tmp
vi feeds.conf.default #其中去掉注释
./script/feeds update -a && ./script/feeds install -a

重新编译或修改配置后再次编译

(二次编译是指下一次你编译别的固件的时候)

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

如果需要重新配置:

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

out of memory错误

(2019.12更新)
今天重新打开编译一个文件的时候,提示out of memory错误,看了一下1g内存估计有点溢出了。
一键swap增加:wget https://www.moerats.com/usr/shell/swap.sh

LEAN大佬原版的说明

https://github.com/coolsnowwolf/lede

固件使用方法

X86/64下Esxi中写入固件,请看这个教程:

 

Esxi6.7下设置Lean大佬自编译的Openwrt

编译Openwrt关于Openwrt不多说了,我一直用Lean大佬的项目,自己编译使用。具体可以参考我之前文章:编…

 

https://imgki.com/archives/578.html

插件详细清单

OpenWrt 编译 LuCI —> Applications 添加插件应用说明 【人人为我,我为人人】 2019.8.3 更新 !!!

make menuconfig 进入定制界面
进入编译选项配置界面,.按照需要配置.( ‘*’ 代表编入固件,‘M’ 表示编译成模块或者IPK包, ‘空’不编译 )

非常感谢大佬”L有大雕“更正补充,20181121
欢迎加入大佬 QQ 讨论群:Gargoyle OpenWrt 编译大群 ,号码 718010658 (QQ更新)

这个地址应该是长期更新插件清单:https://www.right.com.cn/forum/thread-344825-1-1.html


找不到ssr-plus

~~即使编译了ssr-plus之后,你发现在菜单里依然没有选项。因为作者又一次调皮了,居然给隐藏了。
输入以下代码后可以看到`echo 0xDEADBEEF > /etc/config/google_fu_mode
echo 0xDEADBEEF > /etc/config/google_fu_mode~~
2021.8.18更新,如果还是找不到ssr-plus,请自行添加feeds

vim ./feeds.conf.default
如果没有下面这一行 自己添加上
src-git helloworld https://github.com/fw876/helloworld
[1]: https://github.com/coolsnowwolf/lede
[2]: https://imgki.com/usr/uploads/2019/09/3102421826.png
[3]: https://imgki.com/usr/uploads/2019/09/3433535562.png
[4]: https://imgki.com/usr/uploads/2019/09/2458172706.png
[5]: https://imgki.com/usr/uploads/2019/09/2533905169.png
[6]: https://imgki.com/usr/uploads/2019/09/99712410.png
[7]: https://imgki.com/usr/uploads/2019/09/53805221.png
[8]: http://wget%20https://www.moerats.com/usr/shell/swap.sh%20&&%20bash%20swap.sh
[9]: https://github.com/coolsnowwolf/lede
[10]: https://www.right.com.cn/forum/thread-344825-1-1.html
[11]: https://github.com/kuoruan/openwrt-frp
[12]: https://imgki.com/usr/uploads/2019/11/1926474714.xlsx

IPV6支持

支持 iPv6:
1、Extra packages —> ipv6helper (选定这个后下面几项自动选择了)
Network  —>  odhcp6c
Network  —>  odhcpd-ipv6only
LuCI  —>  Protocols  —>  luci-proto-ipv6
LuCI  —>  Protocols  —>  luci-proto-ppp

最好自己确认一下这些是否都选中了

Xshell_Xh8SCXEvoN.png


固件空间

插件比较多的时候,下x86/64下调整一下设置,留下空间

Target Images —> (16) Kernel partition size (in MB) #默认是 (16) 建议修改 (256)
Target Images —> (160) Root filesystem partition size (in MB) #默认是 (160) 建议修改 (512)

引用文章:
https://www.cnvito.top/37.html
https://www.right.com.cn/forum/thread-344825-1-1.html
https://blog.csdn.net/qq_33867131/article/details/86490083