Update Methods - SuperKali/BananaWRT GitHub Wiki
๐ Update System Evolution
BananaWRT's update system has evolved over time:
๐ Newer Versions (Current)
In recent BananaWRT releases (April 2025 and newer), the update functionality is integrated directly into the system through the banana-update
command:
banana-update [fota|ota|packages] [--dry-run] [--reset]
๐ Older Versions
In older BananaWRT releases (before April 2025), updates were performed using the standalone script:
/bin/sh update-script.sh [fota|ota|packages] [--dry-run] [--reset]
๐ ๏ธ Available Update Methods
1. ๐ก FOTA (Firmware Over The Air)
The FOTA method is the simplest approach, downloading and installing the latest firmware directly from GitHub.
# Newer versions
banana-update fota
# Older versions
/bin/sh update-script.sh fota
How it works:
- ๐ The system connects to GitHub and fetches available releases
- ๐ You'll see a list of the latest releases (stable and nightly)
- ๐ข Select your preferred release by entering its number
- โฌ๏ธ The script downloads all necessary firmware files
- ๐ฟ Files are flashed to the appropriate partitions
- ๐ A sysupgrade is performed to complete the installation
- ๐ Your device reboots with the updated firmware
When to use FOTA:
- ๐ When you have a reliable internet connection
- ๐ When you want the simplest update experience
- ๐ When you want to see all available versions before choosing
2. ๐พ OTA (On-The-Air)
The OTA method uses firmware files you've already downloaded to your device.
# Newer versions
banana-update ota
# Older versions
/bin/sh update-script.sh ota
Requirements for OTA:
- โฌ๏ธ Copy these four firmware files to your device's
/tmp
directory:immortalwrt-{VERSION}-mediatek-filogic-bananapi_bpi-r3-mini-emmc-preloader.bin
immortalwrt-{VERSION}-mediatek-filogic-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip
immortalwrt-{VERSION}-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb
immortalwrt-{VERSION}-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
- โจ๏ธ You'll need to enter the firmware version when prompted
When to use OTA:
- ๐ When you have limited or unreliable internet on your device
- ๐ฅ๏ธ When you've already downloaded the firmware files on another computer
- ๐ฏ When you want to install a specific version that might not be in the latest releases list
3. ๐ฆ Packages Update
This method updates only the custom packages without changing the base firmware.
# Newer versions
banana-update packages
# Older versions
/bin/sh update-script.sh packages
How it works:
- ๐ Checks the repository for package updates
- ๐ Displays a list of packages that can be updated
- โ Asks for confirmation before proceeding
- ๐ฆ Updates selected packages without changing the system firmware
When to use Packages Update:
- ๐ฆ When you only want to update BananaWRT custom packages
- ๐ When a full firmware update isn't necessary
- ๐ When new package versions are available but the base system is stable
โ๏ธ Additional Options
๐งช Dry Run Mode
To simulate the update process without making actual changes:
# Newer versions
banana-update fota --dry-run
# Older versions
/bin/sh update-script.sh fota --dry-run
The --dry-run
flag works with all update methods and shows what would happen without making actual changes.
๐ Factory Reset
To perform a factory reset during update (doesn't preserve configuration):
# Newer versions
banana-update fota --reset
# Older versions
/bin/sh update-script.sh fota --reset
The --reset
flag causes the update to not preserve your configuration, essentially performing a factory reset. This is useful if you're experiencing issues and want a clean start.
๐ Update Process Details
๐ What Gets Updated
A full firmware update (FOTA or OTA) updates:
- ๐ฅพ Bootloader (preloader and uboot)
- ๐ Recovery image
- ๐๏ธ Root filesystem
- ๐ง Kernel
A package update only updates:
- ๐ฆ Custom BananaWRT packages
- โ๏ธ Package configurations
๐พ Configuration Preservation
By default, updates preserve your configuration settings including:
- ๐ Network configuration
- ๐ก Wi-Fi settings
- ๐ค User accounts
- ๐ฆ Installed packages
- โ๏ธ Custom configurations
When using the --reset
flag, configuration is not preserved.
๐ Package Auto-Restoration
BananaWRT includes a smart package auto-restoration system:
- โป๏ธ After a firmware update, the system automatically reinstalls previously installed custom packages
- ๐ This ensures your functionality remains consistent after updates
- ๐ The system is built into the
banana-utils
package
๐ ๏ธ Troubleshooting Updates
โ ๏ธ Common Update Issues
๐ Unable to download firmware files
Solution:
- ๐ Check your internet connection
- ๐ก Try using a different network
- ๐ฅ Download the files manually and use the OTA method
๐ฅ Error during flashing
Solution:
- โก Ensure device has adequate power during the update
- ๐ Check if all required files are present in
/tmp
- ๐ Try the update again with a stable release
๐ซ Device won't boot after update
Solution:
- ๐ Connect to serial console
- โฑ๏ธ Interrupt boot process and enter recovery mode
- ๐ฟ Flash firmware again using recovery mode
๐ฆ Package update fails
Solution:
- ๐ Update the package lists:
opkg update
- ๐ Check repository configuration
- ๐งช Try updating individual packages manually
โ Best Practices
-
Always backup your configuration before updating:
sysupgrade -b /tmp/backup-$(date +%F).tar.gz
-
โก Ensure stable power during updates to prevent interruptions
-
๐ก๏ธ Use stable releases for production environments, nightly builds for testing
-
๐ฝ Keep disk space available in
/tmp
(at least 100MB) for firmware files -
๐ Monitor the update process to catch any errors early
For additional help, visit the BananaWRT Discussions page.