请教 openwrt 的编译问题

23 天前
 volvo007
很久之前用过 openwrt ,时过境迁回来一看已经非常强大了。现在交叉编译也比原来容易很多

就想问问大家一般自己编译一次 openwrt 大概要多久,我自己的台式 12600 在 Ubuntu 虚拟机里编译两个小时还报错……比较有挫败感,而且时间上也不允许天天搞几个小时去编译

所以问问大家有没有一点套路,或者分享下一般的编译时间也好
1210 次点击
所在节点    OpenWrt
35 条回复
wuruxu
23 天前
AMD Ryzen 7 PRO 4750U 编译半个小时吧,第一次会更慢点
自己使用的设备,可以编译最新稳定的 branch
cslive
23 天前
wsl 编译 4 个小时
CatCode
23 天前
我 3700X 也就 1 个多小时啊

要开启全局的、稳定的科学上网,因为会从各种网站上下载包。网络好的话,make download 两三分钟就能完成,网络不好可能某个包几 kb 的速度下载,半个小时都完不成这一步。甚至直接报错。
klarkzh
23 天前
需要这么久么,是插件或是软件装的很多么?我也 12600k ,openwrt 装了 4 个插件,给小米编译固件,make download 完之后编译只要 15 分钟啊
vcn8yjOogEL
23 天前
sdk 编译自己需要的包, 然后用 imagebuilder 生成固件
能用官方编译好的二进制就不要自己编译
ochatokori
23 天前
没有开多线程或者是下载太难了?
12600 不应该 2 个小时这么久
DAPTX4869
23 天前
菜鸡不会, 都是直接拿别人的在线编译 https://openwrt.ai
ysc3839
23 天前
建议编译前先用 make download -j16 下载代码,后面的 -j16 代表最多同时下载 16 个,可以根据网络情况调整。
另外 12600 跑虚拟机的话可能要注意一下大小核问题,编译很久可能是跑在小核上了?
0o0O0o0O0o
23 天前
网络问题吧?多看日志

见我在这里的回复 https://v2ex.com/t/1030850

我是写成了脚本,docker pull 对应 tag 的 docker imagebuilder 镜像,没有任何缓存全新编译,而且是三个同时的,然后自动上传和刷入,没统计过时间,大约半小时吧
chenyx9
23 天前
记得古早时候说第一次编译要-j1 ,不然容易出错
mohumohu
23 天前
直接白嫖 GitHub Action 编译,不用自己挂几个小时。
yyzh
23 天前
@chenyx9 现在也有.全新编译有时候会出现某个软件先开始编译但是里面有依赖另外一个还没开始编译的内容.然后就挂了.
adoal
23 天前
@vcn8yjOogEL 对的,除非要改内核开启不支持的特性或者树外设备,否则没必要自己编译。
GoldenLeez
23 天前
在本地执行 make menuconfig 配置完之后,拿到配置文件直接白嫖 github action ,一个多小时就编译完了,省时间还省电费
volvo007
23 天前
@CatCode 现在想想我编译的几次,应该都是某些库下载太久。下次挂全局梯子看看。
volvo007
23 天前
@klarkzh 我试试用默认配置编译了看看,然后慢慢加插件。虽然我也不觉得自己开了很多个(也许开了几个特别耗时的)
volvo007
23 天前
@adoal 作为小白,其实主要还是不知深浅,不知道哪些需要编译,哪些可以后面 opkg 安装。我挺想在路由器上搞个 docker 的,这块可能就是安装方便?
adoal
23 天前
@volvo007 如果只是要安装应用程序包,不自己 patch 内核的话,你可以用 image builder 自己做一个预先打包了你想要安装的包的 image 拿来刷机,不需要编译
icegaze
23 天前
必须是白嫖 git 的在线 action ,很快的。
0o0O0o0O0o
23 天前
@adoal #18 看了你说的我才意识到 image builder 并没有编译源码,用了都一两年了才意识到,汗颜

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1039442

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX