|
本帖最后由 lunseil 于 2021-2-9 13:01 编辑
哈哈哈哈哈哈哈!!!!
实在难掩心中的激动,攻略的时候觉得很难,其实上手后相当顺利,
这次编译我开始本来想跟着L大那套命令走的,最后确是直接精简到自己的需求
编译之前呢,我做了很多准备工作,储备了很多知识,工欲善其事必先利其器,不打无准备的仗,在这里感谢油管众多播主,以及互联网上乐于助人的大佬们!
1:首先确定自己的需求,需要些什么插件 因为我在pve建了adguard Home服务器,就没有去广告的需求,另外其实adg呢就是一台强大的dns服务器,
完全没必要再装smartdns,其他的插件比如jd,建站之类的我可以建docker,nas也可以装在pve里,所以最后需要的就只有爱国了!
2:查找保存插件需要的源码库
下面呢就是我这次编译所需要的插件了
感谢大佬们提供的源!
https://github.com/coolsnowwolf/lede
https://github.com/esirplayground/luci-app-poweroff
https://github.com/kenzok8/openwrt-packages
https://github.com/xiaorouji
https://github.com/fw876/helloworld
https://github.com/freifunk/openwrt-packages
3:选择用什么平台来编译
在网上看了一圈最后还是选择了本地电脑编译
WIN10子系统方便省事不花钱性能够强,缺点就是编译过程全程全局科学。
这个选择需要你C盘至少需要30G剩余空间(编译产生文件占据的),空间不够的话你可以使用LxRunOffline工具转移子系统到其他盘使用,具体方法请自行搜索
大家按照下面做就好了
4:喜闻乐见的开始编译
这里还是建议大家先跟着L大命令来一次
注意:本地编译全程需要全局科学,
关闭过滤插件
这里还是贴出L大的编译命令吧
#首次编译
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
#然后每行单独执行
git clone https://github.com/coolsnowwolf/lede
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
到这里代码跑完就该出现喜闻乐见的图形界面,大家可以选择自己的架构及插件与功能了
如果你是X86X64的我建议你先用默认配置跑一次编译
回车进入,方向键上下移动
这里选择的时候建议下载坛子里xtwz老哥帖子xlsx对照表
地址:https://www.right.com.cn/forum/thread-344825-1-1.html
这里按Y键选定,按N键取消
注意:真正大概率导致编译失败的就是下面下载DL了
再次强调要全局科学,关闭过滤插件
上面选择完了保存退出执行下面命令
make download -j8 V=s
下载结束检查文件完整性
列出下载不完整的文件,根据大佬的经验,小于1k的文件基本属于不完整
find dl -size -1024c -exec ls -l {} \;
如果存在这样的文件可以使用下面命令 删除小于1K的文件
find dl -size -1024c -exec rm -f {} \;
然后执行下面命令重新下载检查所有文件完整
make download
没问题了就可以开始正式编译固件了
-j1意思是使用单线程编译,新手推荐单线程编译
make -j1 V=s
上图是很多小白出现的问题,当时忘了截图,这是我网上找的图,
如果出现一行红字,意思就是编译结果失败,叫你用单线程编译,你就用单线程再试下
如果没有那行红字,且出现圈中的 failed 错误,然后卡在这里的可以用下面这条命令(别问我为什么,我也不知道)
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g')
继续编译
make V=s 、
下图就是小白我今天一次编译成功的图了
编译成功后固件地址,子系统Openwrt固件目录:
C:\Users\PC用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\ubuntu账号名\lede\bin
最后再给大家贴点备用代码吧
再次编译
cd lede 进入源码目录
git pull 拉取 Open-Wrt 源码更新
./scripts/feeds update -a && ./scripts/feeds install -a 更新feeds源码,安装 feeds源码
#如需添加源,重新配置插件(如果不重新配置默认编译的话,可以跳过这3条命令)
make clean 清除旧的编译产物,在源码有大规模更新或者内核更新后执行
make dirclean 清除旧的编译产物,更换架构必须执行
rm -rf ./tmp && rm -rf .config 清除临时文件,删除配置文件。
编译继续
make menuconfig 开始编译选择
make download -j8 V=s 下载dl库
find dl -size -1024c -exec ls -l {} \; 列出下载不完整的文件小于1k的文件基本属于不完整
find dl -size -1024c -exec rm -f {} \; 如果存在这样的文件可以使用
make download 重新下载检查所有文件完整
make -j$(nproc) || make -j1 || make -j1 V=s 多线程编译失败后自动进入单线程编译
最后再次感谢所有网路上分享教程的大佬们
感谢L大以及提供各个功能模块的大佬们的源码支持!!!
以上内容仅供各位想自己编译固件的小白参考,本人也是小白一个,
如果内容有错误请大佬们指正!!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
参与人数 4 | 恩山币 +4 |
收起
理由
|
bininmil
| + 1 |
感谢你的分享,无论怎样,你都是最无私的人. |
chittawell
| + 1 |
感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧! |
anycool998
| + 1 |
感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧! |
euking
| + 1 |
感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧! |
查看全部评分
|