Banana Bpi r4 pro 8x pro make error

107392+0 records in 107392+0 records out 54984704 bytes (55 MB, 52 MiB) copied, 0.183166 s, 300 MB/s rm “/mnt/SSD2/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/tmp/openwrt-mediatek-filogic-bananapi_bpi-r4-pro-8x-sdcard.img.gz.stripmeta” WARNING: Image file /mnt/SSD2/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/tmp/openwrt-mediatek-filogic-bananapi_bpi-r4-pro-8x-sdcard.img.gz is too big: 67567616 > 46137344 dd if=/mnt/SSD2/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/tmp/openwrt-mediatek-filogic-bananapi_bpi-r4-pro-8x-sdcard.img.gz of=/mnt/SSD2/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/tmp/openwrt-mediatek-filogic-bananapi_bpi-r4-pro-8x-sdcard.img.gz.new bs=44M conv=sync dd: failed to open ‘/mnt/SSD2/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/tmp/openwrt-mediatek-filogic-bananapi_bpi-r4-pro-8x-sdcard.img.gz’: No such file or directory make[5]: *** [Makefile:48: /mnt/SSD2/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/tmp/openwrt-mediatek-filogic-bananapi_bpi-r4-pro-8x-sdcard.img.gz] Error 1 make[5]: Leaving directory ‘/mnt/SSD2/openwrt/target/linux/mediatek/image’ make[4]: *** [Makefile:17: install] Error 2 make[4]: Leaving directory ‘/mnt/SSD2/openwrt/target/linux/mediatek’ make[3]: *** [Makefile:12: install] Error 2 make[3]: Leaving directory ‘/mnt/SSD2/openwrt/target/linux’ time: target/linux/install#310.46#18.86#243.33 ERROR: target/linux failed to build. make[2]: *** [target/Makefile:32: target/linux/install] Error 1 make[2]: Leaving directory ‘/mnt/SSD2/openwrt’ make[1]: *** [target/Makefile:26: /mnt/SSD2/openwrt/staging_dir/target-aarch64_cortex-a53_musl/stamp/.target_install] Error 2 make[1]: Leaving directory ‘/mnt/SSD2/openwrt’ make: *** [/mnt/SSD2/openwrt/include/toplevel.mk:233: world] Error 2

i am using frank-w code based (R4pro_PR9) my image size has increase because i have create a go package which binary compile to 10mb to fix this i have made change in linux/mediatek/image/filogic.mk

i changed 44m to 128m and respectively

after this make successfully completed and i got img of 236MB i flash it to sd-card using balena and power on the board

It is not loading the image basically failling

I’m sure your itb is too big for memory map…uboot loads itb into ram and loads parts to specific memory regions (kernel,dtb(o), initrd,…). I guess something is overlapping here by your large rootfs.

Hi frank-w, thank you for the explanation. That makes perfect sense regarding the U-Boot memory map and the FIT image overlapping in RAM during the initramfs boot. I will revert my 128m changes to avoid unstable behavior.

However, I want to clarify the best workflow for my end goal, and ask one technical question about the bootloader limits:

My Goal: I want my custom Go application (cloud-agent , which compiles to a ~10MB static binary) to be automatically present and installed on the final eMMC system after flashing, without having to manually scp and apk add it after the first boot.

The Problem: When I select cloud-agent as built-in (<*> ), it gets baked into the initramfs-recovery.itb . This pushes the recovery image over the ~44MB limit, causing the SD card boot to fail due to the RAM overlap you mentioned.

Question 1: Recommended Workflow What is the recommended OpenWrt workflow to pre-install a large package into the final squashfs-sysupgrade.itb (eMMC) image, while keeping the SD card’s initramfs-recovery.itb small enough to boot successfully? Should I build it strictly as a module (<M> ) and use the OpenWrt files/ directory to pre-seed the .apk file into the rootfs, or use a custom uci-defaults first-boot script?

Question 2: U-Boot Memory Map Limits For my own understanding (and for future projects where a large initramfs might be strictly required): Is it theoretically possible to increase the U-Boot memory map to safely load a >60MB initramfs on the MT7988? I understand this risks overlapping the kernel, DTB, or ATF memory regions. But if I wanted to attempt it, where are the hard limits defined in your tree? Is it controlled by CONFIG_SYS_LOAD_ADDR / CONFIG_SYS_BOOTM_LEN in U-Boot, or is it defined by the memory nodes in the MT7988 Device Tree / FIT image configuration? What is the absolute maximum size the FIT image can be before it physically runs out of safe RAM on this board?

I want to follow the proper OpenWrt conventions for this board. Any guidance on the correct approach would be greatly appreciated!