Make: Ignore errors and build Packages.gz for bcm53xx

I have built a 17.01.4 image that works on my Netgear R7900. The config has some software built as packages, and those are stored at ...bin/targets/bcm53xx/generic/packages. However, it looks like the default build tries to make images for several devices besides the R7900, and one of them (ARCHER-C5-V2) has a small flash, so the installed packages I've selected won't fit in that image.

Unfortunately, the build process dies after that, and before creating Packages.gz. So I can't add my bin/targets directory as a repository for my router, because there's no Packages.gz.

Is there an easy way to proceed with the build after an image-creation fails? Make -k doesn't do it.

`make -k -j1 V=s`
...
    /home/dhm/code/openwrt/openwrt/staging_dir/host/bin/trx -o /home/dhm/code/openwrt/openwrt/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/linux-bcm53xx/tmp/lede-bcm53xx-tplink-archer-c9-v1-squashfs.bin.trx -m 33554432 -f /home/dhm/code/openwrt/openwrt/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/linux-bcm53xx/tplink-archer-c9-v1-kernel.bin -a 1024
    mjn3's trx replacement - v0.81.1
    WARNING: maxlen exceeds default maximum!  Beware of overwriting nvram!
    /home/dhm/code/openwrt/openwrt/staging_dir/host/bin/tplink-safeloader -B ARCHERC9 -k /home/dhm/code/openwrt/openwrt/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/linux-bcm53xx/tmp/lede-bcm53xx-tplink-archer-c9-v1-squashfs.bin.trx -r /home/dhm/code/openwrt/openwrt/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/linux-bcm53xx/tmp/lede-bcm53xx-tplink-archer-c9-v1-squashfs.bin -j -o /home/dhm/code/openwrt/openwrt/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/linux-bcm53xx/tmp/lede-bcm53xx-tplink-archer-c9-v1-squashfs.bin.new
    file-system partition too big (more than 12582912 bytes): Success
    Makefile:288: recipe for target '/home/dhm/code/openwrt/openwrt/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/linux-bcm53xx/tmp/lede-bcm53xx-tplink-archer-c9-v1-squashfs.bin' failed
    make[5]: *** [/home/dhm/code/openwrt/openwrt/build_dir/target-arm_cortex-a9_musl-1.1.16_eabi/linux-bcm53xx/tmp/lede-bcm53xx-tplink-archer-c9-v1-squashfs.bin] Error 1
    make[5]: Target 'install' not remade because of errors.
    make[5]: Leaving directory '/home/dhm/code/openwrt/openwrt/target/linux/bcm53xx/image'
    Makefile:31: recipe for target 'install' failed
    make[4]: *** [install] Error 2
    make[4]: Leaving directory '/home/dhm/code/openwrt/openwrt/target/linux/bcm53xx'
    Makefile:13: recipe for target 'install' failed
    make[3]: *** [install] Error 2
    make[3]: Leaving directory '/home/dhm/code/openwrt/openwrt/target/linux'
    target/Makefile:22: recipe for target 'target/linux/install' failed
    make[2]: *** [target/linux/install] Error 2
    make[2]: Target 'target/install' not remade because of errors.
    make[2]: Leaving directory '/home/dhm/code/openwrt/openwrt'
    target/Makefile:18: recipe for target '/home/dhm/code/openwrt/openwrt/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/stamp/.target_install' failed
    make[1]: *** [/home/dhm/code/openwrt/openwrt/staging_dir/target-arm_cortex-a9_musl-1.1.16_eabi/stamp/.target_install] Error 2
    make[1]: Target 'world' not remade because of errors.
    make[1]: Leaving directory '/home/dhm/code/openwrt/openwrt'
    /home/dhm/code/openwrt/openwrt/include/toplevel.mk:198: recipe for target 'world' failed
    make: *** [world] Error 2
    dhm@htpc:~/code/openwrt/openwrt$ find bin -name "*ackage*"
    bin/packages
    bin/packages/arm_cortex-a9/packages
    bin/packages/mips_24kc/telephony/Packages
    bin/packages/mips_24kc/telephony/Packages.gz
    bin/packages/mips_24kc/telephony/Packages.sig
    bin/packages/mips_24kc/telephony/Packages.manifest
    bin/packages/mips_24kc/luci/Packages
    bin/packages/mips_24kc/luci/Packages.gz
    bin/packages/mips_24kc/luci/Packages.sig
    bin/packages/mips_24kc/luci/Packages.manifest
    bin/packages/mips_24kc/packages
    bin/packages/mips_24kc/packages/Packages
    bin/packages/mips_24kc/packages/Packages.gz
    bin/packages/mips_24kc/packages/Packages.sig
    bin/packages/mips_24kc/packages/Packages.manifest
    bin/packages/mips_24kc/base/Packages
    bin/packages/mips_24kc/base/Packages.gz
    bin/packages/mips_24kc/base/Packages.sig
    bin/packages/mips_24kc/base/Packages.manifest
    bin/packages/mips_24kc/routing/Packages
    bin/packages/mips_24kc/routing/Packages.gz
    bin/packages/mips_24kc/routing/Packages.sig
    bin/packages/mips_24kc/routing/Packages.manifest
    bin/targets/bcm53xx/generic/packages
    bin/targets/ipq806x/generic/packages
    bin/targets/ipq806x/generic/packages/Packages
    bin/targets/ipq806x/generic/packages/Packages.gz
    bin/targets/ipq806x/generic/packages/Packages.sig
    bin/targets/ipq806x/generic/packages/Packages.manifest
    bin/targets/ar71xx/generic/packages
    bin/targets/ar71xx/generic/packages/Packages
    bin/targets/ar71xx/generic/packages/Packages.gz
    bin/targets/ar71xx/generic/packages/Packages.sig
    bin/targets/ar71xx/generic/packages/Packages.manifest
    dhm@htpc:~/code/openwrt/openwrt$

Did you by any chance tick all the models under bcxm53xx? Just tick your R7900 and the buildroot should only generate images for that model.

I tried various options, including just R7900. I ended up deleting the tree, downloading a fresh copy, and building the default configuration. (Even though I selected R7900, the system built a bunch of targets.) But the default selections are apparently small enough to fit in any router, so it all worked out.

Thanks!

Perhaps, from https://openwrt.org/docs/guide-developer/build-system/use-buildsystem

IGNORE_ERRORS=1 make <make options>

I find it useful when building package repositories, but you'd want to make sure there weren't any errors associated with your target image.

1 Like