Skip to content

SuperKali/BananaWRT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

349 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BananaWRT

BananaWRT

A purpose-built ImmortalWRT distribution for the Banana Pi R3 Mini
Engineered around the Fibocom FM350 5G modem, with first-class modem management, automatic APN detection, eSIM support, and an end-to-end CI pipeline.

Stable build Nightly build MTK vendor build Version checker

Downloads · Install · Channels · Build · Developers · Contribute

Overview

BananaWRT is a specialised OpenWRT / ImmortalWRT distribution for the Banana Pi R3 Mini (MediaTek MT7986A), tailored around the Fibocom FM350 5G NR modem.

Where upstream ImmortalWRT stops, BananaWRT layers:

  • Turn-key modem integration — autodetected APNs, ATC proto, eSIM/LPAC toolchain, SMS & band tools.
  • Multi-version CI pipeline — several ImmortalWRT version lines build in parallel from the same code base.
  • Reproducible on-device upgrades — the bananawrt-update FOTA flow serves signed builds from repo.superkali.me.
  • A single ./compile.sh entry point — the same orchestrator runs locally and in CI, with caching for dl/, feeds/, ccache and staging_dir/.

Hardware

Banana Pi R3 Mini

Component Specification
SoC MediaTek MT7986A (Filogic 830) — 4× ARM Cortex-A53 @ 2.0 GHz
RAM 2 GB DDR4
Storage 8 GB eMMC · 128 MB SPI-NAND · M.2 Key-M for NVMe
Ethernet 2× 2.5 GbE (Airoha EN8811H)
Wi-Fi Wi-Fi 6 dual-band (MediaTek MT7976C, 574 / 2402 Mbps)
Expansion M.2 Key-B USB 3.0 (5G) · M.2 Key-M PCIe 2.0 x2 (NVMe)
Power 12 V 1.67 A USB-C PD

Fibocom FM350 5G modem

Important

BananaWRT targets FM350 modems running firmware 81600.0000.00.29.23.xx or newer. Firmware archive: share.superkali.me/s/7SxD8MpKYEigFKF. AT commands are exposed on /dev/ttyUSB1 and /dev/ttyUSB3.

Property Value
Technology 5G NR Sub-6 · LTE · WCDMA
Peak throughput 4.67 Gbps DL / 1.25 Gbps UL
5G bands n1/2/3/7/25/28/30/38/40/41/48/66/77/78/79
LTE bands b1/2/3/4/7/25/30/32/34/38/39/40/41/42/43/48/66
Interface M.2 Key-B (USB 3.1 Gen 1 / PCIe Gen 3 x1)

Release Channels

Three officially built variants ship today. Each one is an independent version line with its own config/, patches and CI caller, and every build publishes to repo.superkali.me:

Channel Upstream Track Cadence Audience
Stable immortalwrt/immortalwrt tag (currently 24.10.5) stable Monthly Production deployments
Nightly immortalwrt/immortalwrt tag (currently 25.12.0-rc2) nightly Weekly Early testing of upcoming releases
MTK-vendor SuperKali/immortalwrt-mt798x-rebase branch 25.12-linkup mtk-vendor Weekly Devices that benefit from MediaTek proprietary Wi-Fi drivers + HNAT + USB offload

Channel metadata lives in config/<version_line>/version.json. Adding a new channel is a matter of dropping a directory and a caller workflow — the reusable pipeline adapts.

Downloads

Firmware and artefacts are hosted on repo.superkali.me, served via a standard autoindex plus a machine-readable firmware-index.json for the OTA client.

Asset URL
Firmware images repo.superkali.me/bananawrt/firmware/
Custom packages repo.superkali.me/releases/
Build SDKs repo.superkali.me/bananawrt/sdk/
Signing keys repo.superkali.me/bananawrt/keys/

GitHub Releases carry the release notes; the binaries themselves live on repo.superkali.me to keep the GitHub archive slim.

Installation

First flash

  1. Pick a build that matches your board and channel under the firmware listing.
  2. Follow the official Banana Pi R3 Mini flashing procedure from the Banana Pi wiki. Pay attention to boot mode (eMMC vs SNAND) — BananaWRT artefacts follow the ImmortalWRT naming convention (*-emmc-*, *-snand-*).
  3. Connect to LuCI at http://192.168.1.1, configure your root password, then insert the FM350 SIM and pick a profile.

On-device updates

# Interactive OTA (firmware + release notes)
bananawrt-update fota

# Custom-packages only (no reboot)
bananawrt-update packages

# Preview without touching the device
bananawrt-update fota --dry-run

The OTA client reads /etc/bananawrt_release, queries firmware-index.json, and lists:

  • Upgrades within the current track;
  • Builds of other tracks sharing the same version line;
  • Cross-version upgrades (e.g. v24.10 → v25.12-mtk-vendor), which require explicit confirmation and perform a factory reset.

EOL channels keep serving existing users until they migrate — the OTA client flags them prominently.

Building from Source

BananaWRT ships a single orchestrator, compile.sh, that drives both local and CI builds. Full details — pipeline stages, repository layout, version.json schema, coding guidelines — live in DEVELOPMENT.md.

./compile.sh                                        # interactive dialog menu
./compile.sh --version-line v25.12 --track nightly  # non-interactive
./compile.sh --help                                 # full reference

Contributing

Contributions are welcome across the full stack:

  • Bug reports — include kernel version, /etc/bananawrt_release, reproduction steps.
  • Channel additions — drop config/<new_line>/{track}/.config + a version.json + a caller workflow. See v25.12-mtk-vendor as a worked example.
  • Documentation — from improved user guides to architecture notes.

See DEVELOPMENT.md for the full developer guide. Please follow the existing commit message style (type(scope): subject) and keep each pull request focused on a single concern.

Community

If BananaWRT saves you time, a ⭐️ on the repository helps more than you might think.

Star history

Milestone: at 200 ⭐️ the remaining premium BananaWRT packages are released publicly. Financial sponsorship is available via the Sponsor button at the top of the page — the star count is purely a way of recognising community interest.

Repobeats analytics

License

BananaWRT is built on top of ImmortalWRT and inherits the licensing of each component (predominantly GPL-2.0). Original BananaWRT code (scripts, workflows, configs) is released under the MIT License unless otherwise noted in the file header.


Crafted with care · Copyright © 2024–2026 SuperKali

About

BananaWRT: A simple, optimized firmware for Banana Pi R3 Mini with Fibocom FM350, built automatically with GitHub Actions

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages

Generated from P3TERX/Actions-OpenWrt