Loading... <div class="tip share">请注意,本文编写于 1798 天前,最后修改于 725 天前,其中某些信息可能已经过时。</div> <div class="tip inlineBlock info"> 更新2021.8.18 </div> ## 软路由 之前自己配了一台软路由,3205的cpu+8G内存,一直使用Koolshare的LEDE,**但是koolss插件已经长期停止更新**,而且各种问题,经常死机,说实话算不上一个很好的固件。 后来在网上找其他固件,发现LEAN的LEDE固件非常不错,主要是冲着SSR-plus去的,但是研究了一下发现,这个固件那个是非常的高端啊,要自己用ubuntu编译。 说高端就是高端,不得不说lean大佬这个做的太nb了,用作者的原话是: > 如果你自认为 Koolshare 论坛或者其固件的脑残粉,本人不欢迎你使用本源代码。所以如果你是,那么使用过程中遇到任何问题本人概不回应。 **作者的Github地址:[https://github.com/coolsnowwolf/lede][1]** ## 准备工作 ### 注意 - 不要用 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源码 ```bash 使用 `git clone https://github.com/coolsnowwolf/lede.git` 命令下载好源代码,然后 cd lede 进入目录 ``` ### 配置编译 ```bash ./scripts/feeds update -a ./scripts/feeds install -a make menuconfig ``` ### 下载dll库 `make -j8 download V=s 下载dl库(国内请尽量全局科学上网)` ### 配置固件 之后进入如下界面,这实际上是一个配置界面,用来配置编译的配置,并不是编译的过程。 ![oplean1-1.png](https://imgki.com/usr/uploads/2021/04/1816589362.png) 进入Target System和Subtarget勾选你需要编译的平台,我用的是X86,并且是64位的,所以你需要选择自助选择。 ```bash 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](https://imgki.com/usr/uploads/2021/04/3133168506.png) 进入Target Images勾选你需要的固件格式等(img、vmdk等这里我保持默认,默认也够用了吧?) ![oplean1-3.png](https://imgki.com/usr/uploads/2021/04/3790302800.png) 进入LuCI–>Applications内选中你需要的插件 ![oplean1-4.png](https://imgki.com/usr/uploads/2021/04/504396844.png)![oplean1-5.png](https://imgki.com/usr/uploads/2021/04/1972286335.png) 在这里有一些别的选项,比如一些VPN、aria2的web管理等等,根据需要自己进去研究。 勾选完需要的东西就可以退回第一个界面保存退出,保存按默认的文件名称(.config)保存即可,不需要修改。编译会根据.config的内容编译,想要恢复到初始配置删掉.config文件即可。 在编译的过程中,要下载一些组件什么的,如果你不翻墙,下载速度会非常慢,甚至下载不下来。 ### 编译 保存后执行以下命令 ````````````````````````````````````````````````````````````````````````` make -j1 V=s //第一次编译非常的慢,要花上一两个小时 ````````````````````````````````````````````````````````````````````````` ![Snipaste_2019-09-15_22-31-56.png](https://imgki.com/usr/uploads/2021/04/832104772.png) ### 取得固件 ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````bash 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](https://imgki.com/usr/uploads/2021/08/425904759.png) 一般来说,用openwrt-x86-64-generic-squashfs-combined.img 或.gz 文件就可以了 --- ### 固件里面看不到ssr-plus 大佬在feed里里面吧ssr的feed隐藏了 ````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````bash 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 ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````` ## 重新编译或修改配置后再次编译 (二次编译是指下一次你编译别的固件的时候) ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````bash cd lede git pull ./scripts/feeds update -a && ./scripts/feeds install -a make defconfig make -j8 download make -j$(($(nproc) + 1)) V=s ``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````` 如果需要重新配置: ```bash rm -rf ./tmp && rm -rf .config make menuconfig make -j$(($(nproc) + 1)) V=s ``` 如果是添加了其他源,如果你是第二次编译,最好使用make clean命令和 ./scripts/feeds clean命令清除一些障碍,如果是全新安装就无须clean。 ```bash make clean ./scripts/feeds clean ``` ## out of memory错误 (2019.12更新) 今天重新打开编译一个文件的时候,提示out of memory错误,看了一下1g内存估计有点溢出了。 一键swap增加:[wget https://www.moerats.com/usr/shell/swap.sh ][8] ## LEAN大佬原版的说明 [https://github.com/coolsnowwolf/lede][9] ## 固件使用方法 X86/64下Esxi中写入固件,请看这个教程: <div class="preview"> <div class="post-inser post box-shadow-wrap-normal"> <a href="https://imgki.com/archives/578.html" target="_blank" class="post_inser_a no-external-link no-underline-link"> <div class="inner-image bg" style="background-image: url(https://imgki.com/usr/uploads/2021/08/3108764975.jpg);background-size: cover;"></div> <div class="inner-content" > <p class="inser-title">Esxi6.7下设置Lean大佬自编译的Openwrt</p> <div class="inster-summary text-muted"> 编译Openwrt关于Openwrt不多说了,我一直用Lean大佬的项目,自己编译使用。具体可以参考我之前文章:编... </div> </div> </a> <!-- .inner-content #####--> </div> <!-- .post-inser ####--> </div> [https://imgki.com/archives/578.html](https://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][10] --- ## 找不到ssr-plus ~~即使编译了ssr-plus之后,你发现在菜单里依然没有选项。因为作者又一次调皮了,居然给隐藏了。 输入以下代码后可以看到`````````````````````````````````````````````echo 0xDEADBEEF > /etc/config/google_fu_mode echo 0xDEADBEEF > /etc/config/google_fu_mode~~ **2021.8.18更新**,如果还是找不到ssr-plus,请自行添加feeds ```##bash 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](https://imgki.com/usr/uploads/2021/08/721331631.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 Last modification:November 27, 2022 © Allow specification reprint Like 1 如果觉得我的文章对你有用,请随意赞赏
60 comments
请教博主 怎么编译老版本的Lean 的 OpenWrt 固件,因为个别软件比较大,编译出来的固件太大了,想试试用老版本 比如R9.XX版本
是的,我也碰到这样的问题,整个原版的openwrt固件包体积就打了,原来我的newifi也不能用了。暂时我也不会解决
passwall是不是不支援server?
passwall是不是不支援server?
博主知道怎么修改插件目录吗?比如说编译出来后有服务项,V.P.N项,监控项的,我想把原来在V.P.N项里到编译到服务项去,应该修改那里?
固件里面看不到ssr-plus 今年6月24号的时候修改feeds.conf,如看到ssr-plus。但是 最新版本的2020年7月17号,里面找不到文件feeds.conf,博主有其他办法么
找到了 feeds.conf.default
这么搞很不科学啊,不是每个喜欢软路由的都是linux码农,求编译出来的固件,造福万民:)))))))))))))))))
恩山上搜搜吧,可能会有惊喜..
博主你好,L大神默认编译的为中文,但是想改成默认为英文,怎么操作?我去到menuconfig里面去更改,貌似中文选项被锁定了。
添加了科学上网plus后,不先编译luci-base,不报错????
我的一切正常啊? 去掉注释之后就可以了
请问最后一个步骤编译过程大概需要多长时间完成呢?打算用2vcpu,8G 内存和50G的硬盘的谷歌云虚机去编译。
第一次我大概2个小时,你这个应该能快点。
我想问一下 那个固件版本一般作者会写上自己的名字 我怎么去掉
想用Github的actions在线编译rpi 4B的固件,但前面的配置文件搞不定啊,能给个rpi 4B的配置文件么。。。
这个很简单的,用P3TERX大神的一键编译脚本,看他‘’云 menuconfig(SSH 连接到 Actions)‘’这个说明,打开SSH,就可以选择你自己喜欢的插件了,编译一次后,自带一个.config文件的,把这个文件内容复制到脚本里面去,关闭SSH,如果下次编译不需要修改插件的话,就直接自动编译了,用github编译比用其他方法方便多了
终于有明白的大佬解释了。感谢~
大哥,我不是大佬啊,我也到处问问题,相互学习吧,我不懂的或者你就懂了,你不明白的东西或者我就知道了,大家互相告知,这样方便别人的时候也方便自己
那个aciton没试过,不是很懂
你这个是最详细的,可我还是报错 world 什么的, 快崩溃了,也在阿里hk上编译的 配置2 vCPU 512 MB 各种报错,各种装系统重来,这已经不知道是第几次了,希望能好,也搜不到解决的问题,无意中看恩山好像有解决办法,这就又试一次.....
可以考虑试试云编译啊
https://github.com/281677160/Lede-OpenWrt.git 这个是我云编译地址,随便弄了点教程,你可以去看看,只要不乱添加插件,基本100%成功,添加插件的话,在github里面很多,找对就可以了
对,最近github的云编译挺好用的。
如果不行,你可以用我的环境。我给你root账户密码,你去编译试试
应该是整好了,在gcp开了个高配置机器,折腾了快一星期始终有报错,可能刚开始装的那一堆软件有些更新,反正搜了报错提示后又装了两个软件(g++ g--好像是这开头的软件),换了编译指令后好了,也不知道到底是哪个起的作用,另外博客速度挺好的
昂 就是机器的问题 一般换个vps的事
想问一下有线路由器想要去除无线模块,应该在哪里设置
不装驱动就好了啊
额 这个我也不会呀 哈哈哈
博主这篇文章写得非常详细 参考你的操作,我也尝试了一次编译,还算比较成功吧。img刷路由器无效,还好升级包sysupgrade刷成功了
博主 请教一下编译这个固件的VPS需要多大的硬盘的。我的国外小鸡硬盘才30G
30g应该也够了吧
50G
挺详细的。我试试。
我是打算直接编译放进买的二手服务器里ヾ (≧∇≦*) ゝ这软路由器跟二手服务器的价钱差不多OωO
二手服务器功耗有点大
您好,我也用的是lean 固件,装在虚拟机里,但是无规律断网 ,不知道什么原因,记得最长稳定了运行九天。
想了解一下,您这个稳定么,稳定运行几天。
这个是自己编译的,插件、配置什么的都是自己弄,所以不好说。我也是在esxi里面,一切正常非常稳。
赞一个,根据博主的文章,正在编译中
很好,我也是一样的情况,3205软路由,也准备自己编译。刚编译了一个tplink用的,准备试试X86的。我是在win10wsl下编译,蛮好用。
3205做软路由也是性能过程,我用了esxi开了2-3个虚拟机
3205就已经过剩了,我还特意买了个i5-4310u 呢,不过刚到手就觉得有点亏了,还有同价的i5-5200u。。。OωO
拿来做虚拟机倒是无所谓,反正能用得上
我根据你说的使用WSL编译一次超过12个小时了还没结束,然后在网上找别人编译好的写到U盘里面,通过BIOS结果启动报错。wating for root device PARTUUID=。。。尴尬。。好折腾啊。。(´இ皿இ`)
换个vps试试吧,有时候环境影响挺大的。
博主您好我只想要插件但是不想要固件是要怎么选择??
编译后的bin文件夹下那些ipk格式 的就是
这个我也不知道啊
你好,这里如何加入网卡驱动呢?我的电脑网卡比较老。
git clone 的时候是不是要用sudo?不然不给下载呀,怎么办?
好像可以了,之前没在新建用户的文件夹下去执行。
那就ok啦 其实也挺简单的 选对了选项就ok了
为什么要两次编译呢,小白求问
没有两次编译啊?
感谢,很详细,适合小白。
整理得不错啊 编译好的文件在哪儿。
博主找到怎么设置跟koolss一样的控制局域网主机默认不通过ss吗
ss里面有路由设定啊
软路由才行吧
是的,主要是用在软路由上的。OωO