OpenWRT + BPI R64, but how to make state persistant?

Hello, I’ve compiled the latest version of OpenWRT for my R64 board and flashed it to eMMC. The problem is, that i don’t get an option to create a target other then ramdisk. This is very inconvenient, since every time the board is reset the OpenWRT settings are also reset. I was wondering is there a way to fix it and have a normal squashfs partition instead of a ramdisk image being unpacked every time its booted.

I assume you are building OpenWrt master branch, right? Once you select the R64 board you should have images in bin/targets/mediatek/mt7622:

  • bananapi_bpi-r64-emmc-bl31-uboot.fip
    This is U-Boot for eMMC

  • bananapi_bpi-r64-emmc-preloader.bin
    This is the ARM Trusted Firmware preloader for eMMC

  • bananapi_bpi-r64-initramfs-recovery.itb
    This is the initramfs/recovery OpenWrt image

  • bananapi_bpi-r64-sdcard.img.gz
    This is a complete SD card image with everything needed to install OpenWrt to eMMC or SPI-NAND flash (includes all of the other images and more in one image to be gunzip’ed and written to SD card).

  • bananapi_bpi-r64-snand-bl31-uboot.fip
    This is U-Boot for booting from SPI-NAND

  • bananapi_bpi-r64-snand-preloader.bin
    This is the ARM Trusted Firmware preloader for SPI-NAND

  • bananapi_bpi-r64-squashfs-sysupgrade.itb
    This is the sysupgrade file to update OpenWrt including squashfs filesystem and persistent overlay.

If any of those file are not generated and missing, there is a problem with your build configuration. Make sure all needed ARM Trusted Firmware and U-Boot packages (in Bootloaders in menuconfig) are selected and if that doesn’t help, delete your current build configuration using rm .config and start over using menuconfig and select Mediatek (ARM) -> MT7622 -> BananaPi R64.

Thank you, I was actually on a OpenWRT 21.02. Figured it would be a more stable branch, but in reality it did not create the sdcard image. I managed to load production system to squashfs-sysupgrade from an sd card. But for some reason I can’t flash the production image and boot it directly from eMMC. Probably this thread can help. Thank you!


As you are sharing the bootmenu and have connected the seriel port: Just selecting item

7. Install bootloader, recovery and production to eMMC.


8. Install bootloader, recovery and production to NAND.

doesn’t work? That should install images from the SD card to any of the internal storage options. Once this is done, you can just use the same *sysupgrade.itb to upgrade the production image, and that should work equally SD card, eMMC or SPI-NAND.