调试编译 openwrt 固件,每次只是变化了./files 里面的预置内容,请问如何加快编译,链接出固件文件的速度? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
qazwsxkevin
V2EX    OpenWrt

调试编译 openwrt 固件,每次只是变化了./files 里面的预置内容,请问如何加快编译,链接出固件文件的速度?

  •  
  •   qazwsxkevin 2024-06-13 22:37:11 +08:00 1646 次点击
    这是一个创建于 554 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ./files 是预置自定义文件的目录,每次调试,只是变化了这个目录里内置的一些文件内容,
    用 make -j8 编译,还是要花上 10 来 20 分钟,
    没做过 make clean ,
    应该可以跳过很多检查吧?
    请教各位,有何妙计?

    13 条回复    2024-06-27 11:31:35 +08:00
    vcn8yjOogEL
        1
    vcn8yjOogEL  
       2024-06-13 22:40:13 +08:00   2
    imagebuilder
    ll26571
        2
    ll26571  
       2024-06-13 23:25:42 +08:00   1
    imagebuilder+1 ,以前也是老老实实源码编译,慢得一批,占用的磁盘空间还大,换 imagebuilder 之后爽多了
    YongXMan
        3
    YongXMan  
       2024-06-13 23:35:05 +08:00   1
    借题问一下,自己编译的固件,如何方便的使用源安装一些软件,因为会报 kernel 和 dependecy 版本不一致,无法安装。当然可以选择自己编译,但是有些软件是后来才有的需求,所以有没有办法方便的安装新软件?
    vcn8yjOogEL
        4
    vcn8yjOogEL  
       2024-06-14 01:07:00 +08:00
    @YongXMan #3 sdk imagebuilder
    qazwsxkevin
        5
    qazwsxkevin  
    OP
       2024-06-14 01:09:35 +08:00
    再想请教一个问题,在使用 imagebuilder 时候,
    指定了要安装现在已经没有在仓库里的旧包(在一些旧包源站上还能下载到),
    会提示:
    Collected errors:
    * opkg_install_cmd: Cannot install package srelay.
    make[2]: *** [Makefile:220: package_install] Error 255
    make[1]: *** [Makefile:151: _call_image] Error 2
    make: *** [Makefile:310: image] Error 2

    于是,我在原来的 openwrt 的代码编译目录里搞到了./staging_dir/packages/ramips/srelay_0.4.8b3-r2_mipsel_24kc.ipk ,

    在 imagebuilder 的构建环境,我应该如何布置这些 ipk ,集成到构建的固件里呢?
    qazwsxkevin
        6
    qazwsxkevin  
    OP
       2024-06-14 01:14:02 +08:00
    还有一个 luci 的 app 问题,记得 5,6 年前(大概),当时 luci-app ,好像是有一个在 luci web 上,有 console 终端可以敲命令的功能(不知道有无记错),现在我看主流的包,和旧包,似乎都没有这东西了,是我记错了吗?
    qazwsxkevin
        7
    qazwsxkevin  
    OP
       2024-06-14 09:08:12 +08:00
    关于五楼的问题,似乎找到答案了,imagebuilder 构建固件,不能自定义 ipk ,如果必须要把自定义的软件加入到固件,只能代码编译方式。
    bfdh
        8
    bfdh  
       2024-06-14 09:10:23 +08:00
    @qazwsxkevin #6 是 MTK 方案的吗。官方原版没留意过,MTK SDK 提供了这个功能,但是 MTK 在后来的 SDK 中从代码层面屏蔽了,打开就行。
    qazwsxkevin
        9
    qazwsxkevin  
    OP
       2024-06-14 09:39:47 +08:00
    @bfdh #8 是的,是联发科 mt76x8 平台,SDK 没搞过,不知道还有没有时间去折腾了,不知道会不会很耗时间学习,如果太复杂,还是每次 20 分钟,老实一些等待代码编译算了。。。。
    vcn8yjOogEL
        10
    vcn8yjOogEL  
       2024-06-18 19:51:01 +08:00   1
    @qazwsxkevin #6 luci-app-ttyd

    @qazwsxkevin #7 imagebuilder/packages/README.md
    kmzs
        11
    kmzs  
       2024-06-26 15:30:32 +08:00 via Android   1
    @bfdh
    可以加自定义包
    甚至可以自定义源、自定义配置,还能在第一次开机的时候自动配置一些东西
    参考官方文档
    https://openwrt.org/docs/guide-user/additional-software/imagebuilder
    qazwsxkevin
        12
    qazwsxkevin  
    OP
       2024-06-26 20:02:35 +08:00
    @kmzs #11 我的理解,imagebuilder 的 Selecting packages 方式,只能选择他官版里有的包,举个例子,srelay 这个包,在最新 23.05 官版列表是没有的,官网在旧版里提供了 ipk 的包,我在 23.05 的代码编译方式里,已经成功集成这个旧包,并把它集成的生成的固件里,如果是 23.05 的 imagebuilder 的 PACKAGES="pkg1 pkg2 pkg3 -pkg4 -pkg5 -pkg6",这种方式去生成固件,ib 还是会去在线寻找 srelay ,那么还是会失败,我原本是想把本地的ipk 集成到 ib 的构建固件当中,但似 ib 似乎不能这样做。。。。。
    kmzs
        13
    kmzs  
       2024-06-27 11:31:35 +08:00 via iPhone
    @qazwsxkevin 可以的,前提是你已经在本地有这个 ipk 包了,你可以把这个 ipk 放进 packages 这个目录里就可以正常安装,不过可能比较麻烦,要手动管理这个包的更新,如果这个包的依赖包不在官方库中还要手动再加上它的依赖。
    我之前一直在用这个方法把 openclash 打包进官方镜像里。但我没有遇到依赖问题,你这个旧版的包可能会有依赖问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2561 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 10:12 PVG 18:12 LAX 02:12 JFK 05:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86