Hi, Recently I resumed my play with BPI-R3. I am trying to build a custom image based on openwrt.v24.10.2 using this config: diffconfig (7.4 KB) But I got
WARNING: Image file openwrt-24.10.2-mediatek-filogic-bananapi_bpi-r3-sdcard.img.gz is too big
Obviously, the extra packages I added, are expanding the openwrt image.
My inspection led me to file target/linux/mediatek/image/filogic.mk, section “define Device/bananapi_bpi-r3” and particularly line “pad-to 12M | append-image-stage initramfs-recovery.itb | check-size 44m” which is where the above warning is triggered from. The initramfs section had grown from 23658496 to 76939264 bytes in custom build.
In attempt to fix it, I changed the whole section from:
ARTIFACT/sdcard.img.gz := mt798x-gpt sdmmc |
pad-to 17k | mt7986-bl2 sdmmc-ddr4 |
pad-to 6656k | mt7986-bl31-uboot bananapi_bpi-r3-sdmmc |
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),
pad-to 12M | append-image-stage initramfs-recovery.itb | check-size 44m |
)
pad-to 44M | mt7986-bl2 spim-nand-ubi-ddr4 |
pad-to 45M | mt7986-bl31-uboot bananapi_bpi-r3-snand |
pad-to 49M | mt7986-bl2 nor-ddr4 |
pad-to 50M | mt7986-bl31-uboot bananapi_bpi-r3-nor |
pad-to 51M | mt7986-bl2 emmc-ddr4 |
pad-to 52M | mt7986-bl31-uboot bananapi_bpi-r3-emmc |
pad-to 56M | mt798x-gpt emmc |
$(if $(CONFIG_TARGET_ROOTFS_SQUASHFS),
pad-to 64M | append-image squashfs-sysupgrade.itb | check-size |
)
gzip
to
ARTIFACT/sdcard.img.gz := mt798x-gpt sdmmc |
pad-to 17k | mt7986-bl2 sdmmc-ddr4 |
pad-to 6656k | mt7986-bl31-uboot bananapi_bpi-r3-sdmmc |
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),
pad-to 12M | append-image-stage initramfs-recovery.itb | check-size 128m |
)
pad-to 128M | mt7986-bl2 spim-nand-ubi-ddr4 |
pad-to 129M | mt7986-bl31-uboot bananapi_bpi-r3-snand |
pad-to 133M | mt7986-bl2 nor-ddr4 |
pad-to 134M | mt7986-bl31-uboot bananapi_bpi-r3-nor |
pad-to 135M | mt7986-bl2 emmc-ddr4 |
pad-to 136M | mt7986-bl31-uboot bananapi_bpi-r3-emmc |
pad-to 140M | mt798x-gpt emmc |
$(if $(CONFIG_TARGET_ROOTFS_SQUASHFS),
pad-to 148M | append-image squashfs-sysupgrade.itb | check-size |
)
gzip
I increased the padding to fit the larger size of initramfs. Now the warnings are gone. But the image fails to boot. I get the following error:
Welcome to minicom 2.9
OPTIONS: I18n Port /dev/ttyUSB0, 20:46:07
Press CTRL-A Z for help on special keys
F0: 102B 0000 FA: 1040 0000 FA: 1040 0000 [0200] F9: 103F 0000 F3: 1001 0000 [0200] F3: 1001 0000 F6: 300C 0028 F5: 0000 0000 V0: 0000 0000 [0001] 00: 0000 0000 BP: 2400 0041 [0000] G0: 1190 0000 EC: 0000 0000 [3000] T0: 0000 023A [010F] Jump to BL
NOTICE: BL2: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-sdmmc-ddr4) NOTICE: BL2: Built : 20:40:36, Jun 23 2025 NOTICE: WDT: Cold boot NOTICE: WDT: disabled NOTICE: CPU: MT7986 (2000MHz) NOTICE: EMI: Using DDR4 settings NOTICE: EMI: Detected DRAM size: 2048MB spi-nand: spi_nand spi_nand@1: Winbond SPI NAND was found. spi-nand: spi_nand spi_nand@1: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64 jedec_spi_nor spi_nor@0: unrecognized JEDEC id bytes: 00, ef, aa ‘spi-nand0’ is now active device
- spi-nand0
- device: spi_nand@1
- parent: spi@1100a000
- driver: spi_nand
- type: NAND flash
- block size: 0x20000 bytes
- page size: 0x800 bytes
- OOB size: 64 bytes
- OOB available: 24 bytes
- 0x000000000000-0x000008000000 : “spi-nand0” - 0x000000000000-0x000000200000 : “bl2” - 0x000000200000-0x000008000000 : “ubi”
MMC read: dev # 0, block # 131072, count 256 … 256 blocks read: OK
- spi-nand0
- device: spi_nand@1
- parent: spi@1100a000
- driver: spi_nand
- type: NAND flash
- block size: 0x20000 bytes
- page size: 0x800 bytes
- OOB size: 64 bytes
- OOB available: 24 bytes
- 0x000000000000-0x000008000000 : “spi-nand0” - 0x000000000000-0x000000200000 : “bl2” - 0x000000200000-0x000008000000 : “ubi”
MMC read: dev # 0, block # 24576, count 256 … 256 blocks read: OK
- spi-nand0
- device: spi_nand@1
- parent: spi@1100a000
- driver: spi_nand
- type: NAND flash
- block size: 0x20000 bytes
- page size: 0x800 bytes
- OOB size: 64 bytes
- OOB available: 24 bytes
- 0x000000000000-0x000008000000 : “spi-nand0” - 0x000000000000-0x000000200000 : “bl2” - 0x000000200000-0x000008000000 : “ubi”
MMC read: dev # 0, block # 24576, count 256 … 256 blocks read: OK
- spi-nand0
- device: spi_nand@1
- parent: spi@1100a000
- driver: spi_nand
- type: NAND flash
- block size: 0x20000 bytes
- page size: 0x800 bytes
- OOB size: 64 bytes
- OOB available: 24 bytes
- 0x000000000000-0x000008000000 : “spi-nand0” - 0x000000000000-0x000000200000 : “bl2” - 0x000000200000-0x000008000000 : “ubi” Using ethernet@15100000 device TFTP from server 192.168.1.254; our IP address is 192.168.1.1 Filename ‘openwrt-mediatek-filogic-bananapi_bpi-r3-initramfs-recovery.itb’. Load address: 0x46000000 Loading: * ARP Retry count exceeded; starting again
Loading kernel from FIT Image at 46000000 …
Bad FIT kernel image format! (err=-22) ERROR -2: can’t get kernel image!
- spi-nand0
- device: spi_nand@1
- parent: spi@1100a000
- driver: spi_nand
- type: NAND flash
- block size: 0x20000 bytes
- page size: 0x800 bytes
- OOB size: 64 bytes
- OOB available: 24 bytes
- 0x000000000000-0x000008000000 : “spi-nand0” - 0x000000000000-0x000000200000 : “bl2” - 0x000000200000-0x000008000000 : “ubi” Using ethernet@15100000 device TFTP from server 192.168.1.254; our IP address is 192.168.1.1 Filename ‘openwrt-mediatek-filogic-bananapi_bpi-r3-initramfs-recovery.itb’. Load address: 0x46000000 Loading: *
Can anyone explain what is going wrong?
Thank you, Greetings!