OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
› OpenWrt 官方网站
qazwsxkevin
V2EX  ›  OpenWrt

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

  •  
  •   qazwsxkevin · Jun 13, 2024 · 2443 views
    This topic created in 879 days ago, the information mentioned may be changed or developed.

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

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

    @qazwsxkevin #7 imagebuilder/packages/README.md
    kmzs
    kmzs
    Jun 26, 2024 via Android❤️1
    11
    @bfdh
    可以加自定义包
    甚至可以自定义源、自定义配置,还能在第一次开机的时候自动配置一些东西
    参考官方文档
    https://openwrt.org/docs/guide-user/additional-software/imagebuilder
    qazwsxkevin
    qazwsxkevin
    OP
    Jun 26, 2024
    12
    @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
    kmzs
    Jun 27, 2024 via iPhone
    13
    @qazwsxkevin 可以的,前提是你已经在本地有这个 ipk 包了,你可以把这个 ipk 放进 packages 这个目录里就可以正常安装,不过可能比较麻烦,要手动管理这个包的更新,如果这个包的依赖包不在官方库中还要手动再加上它的依赖。
    我之前一直在用这个方法把 openclash 打包进官方镜像里。但我没有遇到依赖问题,你这个旧版的包可能会有依赖问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2368 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 04:54 · PVG 12:54 · LAX 20:54 · JFK 23:54
    ♥ Do have faith in what you're doing.