V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
qazwsxkevin
V2EX  ›  OpenWrt

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

  •  
  •   qazwsxkevin · 141 天前 · 1014 次点击
    这是一个创建于 141 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    13 条回复    2024-06-27 11:31:35 +08:00
    vcn8yjOogEL
        1
    vcn8yjOogEL  
       141 天前   ❤️ 2
    imagebuilder
    ll26571
        2
    ll26571  
       141 天前   ❤️ 1
    imagebuilder+1 ,以前也是老老实实源码编译,慢得一批,占用的磁盘空间还大,换 imagebuilder 之后爽多了
    YongXMan
        3
    YongXMan  
       141 天前   ❤️ 1
    借题问一下,自己编译的固件,如何方便的使用源安装一些软件,因为会报 kernel 和 dependecy 版本不一致,无法安装。当然可以选择自己编译,但是有些软件是后来才有的需求,所以有没有办法方便的安装新软件?
    vcn8yjOogEL
        4
    vcn8yjOogEL  
       141 天前
    @YongXMan #3 sdk imagebuilder
    qazwsxkevin
        5
    qazwsxkevin  
    OP
       141 天前
    再想请教一个问题,在使用 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
       141 天前
    还有一个 luci 的 app 问题,记得 5,6 年前(大概),当时 luci-app ,好像是有一个在 luci web 上,有 console 终端可以敲命令的功能(不知道有无记错),现在我看主流的包,和旧包,似乎都没有这东西了,是我记错了吗?
    qazwsxkevin
        7
    qazwsxkevin  
    OP
       141 天前
    关于五楼的问题,似乎找到答案了,imagebuilder 构建固件,不能自定义 ipk ,如果必须要把自定义的软件加入到固件,只能代码编译方式。
    bfdh
        8
    bfdh  
       141 天前
    @qazwsxkevin #6 是 MTK 方案的吗。官方原版没留意过,MTK SDK 提供了这个功能,但是 MTK 在后来的 SDK 中从代码层面屏蔽了,打开就行。
    qazwsxkevin
        9
    qazwsxkevin  
    OP
       141 天前
    @bfdh #8 是的,是联发科 mt76x8 平台,SDK 没搞过,不知道还有没有时间去折腾了,不知道会不会很耗时间学习,如果太复杂,还是每次 20 分钟,老实一些等待代码编译算了。。。。
    vcn8yjOogEL
        10
    vcn8yjOogEL  
       137 天前   ❤️ 1
    @qazwsxkevin #6 luci-app-ttyd

    @qazwsxkevin #7 imagebuilder/packages/README.md
    kmzs
        11
    kmzs  
       129 天前 via Android   ❤️ 1
    @bfdh
    可以加自定义包
    甚至可以自定义源、自定义配置,还能在第一次开机的时候自动配置一些东西
    参考官方文档
    https://openwrt.org/docs/guide-user/additional-software/imagebuilder
    qazwsxkevin
        12
    qazwsxkevin  
    OP
       129 天前
    @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  
       128 天前 via iPhone
    @qazwsxkevin 可以的,前提是你已经在本地有这个 ipk 包了,你可以把这个 ipk 放进 packages 这个目录里就可以正常安装,不过可能比较麻烦,要手动管理这个包的更新,如果这个包的依赖包不在官方库中还要手动再加上它的依赖。
    我之前一直在用这个方法把 openclash 打包进官方镜像里。但我没有遇到依赖问题,你这个旧版的包可能会有依赖问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2773 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 14:36 · PVG 22:36 · LAX 07:36 · JFK 10:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.