Post

Getting Started with prplOS on Banana Pi R4

Learn how to get started with prplOS on your Banana Pi R4 in this blog

Getting Started with prplOS on Banana Pi R4

prplOS is an open-source operating system based on OpenWrt specifically designed for embedded networking devices like broadband customer premises equipment (CPE), Home gateways and Wi-Fi routers.

Leveraging modern micro-services and containerized applications, prplOS can be used to build robust, manageable, and flexible networking solutions that cater to the evolving broadband ecosystem.

prplOS is rapidly gaining prominence in the Wi-Fi networking world due to its rich set of features like

  • Interoperability to support multiple hardware platforms

  • Modular & Micro-services based architecture

  • Integrated with prplMesh for seamless mesh networking solutions

  • Remote Management using TR-069 (CWMP) and TR-369 (USP)

  • Enhanced security and system reliability

  • Flexibility & Customization

  • Open and Standardized Development

prpl logo

prplOS is developed and maintained by the prpl Foundation, an open source, community-driven organization aimed to develop open source software for carrier-grade CPE through innovation and collaboration.

To ensure Release stability, prpl Foundation validates each prplOS release on a defined set of reference platforms, These officially supported reference platforms serve as the primary targets for development, testing, and continuous integration in prpl.

While the prpl Foundation officially supports a defined set of reference platforms, prplOS can be built for any OpenWrt compatible devices

This article helps us to setup and run prplOS on Banana Pi R4, a high-performance, open-source router development board.

Banana Pi R4 - Router development board

Banana Pi R4 is a high performance WiFi-7 router development board based on MediaTek MT7988A (Filogic 880) processor. It offers a comprehensive set of cutting-edge features including Wi-Fi 7 support typically seen in today’s high-end routers and serves as an excellent platform for building and testing embedded router operating systems such as OpenWrt, RDK-B, prplOS and so on.

Key Features

  • CPU: MediaTek MT7988A (Filogic 880) quad-core ARM Cortex-A73, 1.8GHz processor

  • RAM: 4GB or 8GB DDR4

  • Storage: 8GB eMMC, 128MB SPI-NAND flash, MicroSD card slot

  • Network: 4 Gigabit Ethernet ports, 2x 10 Gigabit SFP ports

  • WiFi : Wi-Fi 7 Tri-band (2.4 GHz, 5 GHz, and 6 GHz)

Banana PI R4 setup

Below is my Banana Pi R4 development setup, which is used for building, debugging, and testing custom OpenWrt and prplOS images.

bpi r4 setup

This setup includes the following components

  1. Banana Pi R4 board with protective case

  2. BPI-R4-NIC-BE14 WiFi 7 module

  3. USB-UART adapter for console access

  4. Heatsink for effective thermal management

  5. 19V power supply

Setup prplOS on Banana PI R4

Prebuilt prplOS Images for Banana PI R4 are available for download on my GitHub repo bpi-r4-dev-resources.

Download the below files from the latest prplOS images artifacts

  1. prplos-mediatek-filogic-bananapi_bpi-r4-sdcard.img.gz

  2. prplos-mediatek-filogic-bananapi_bpi-r4-squashfs-sysupgrade.itb

Burn prplOS Image to SD Card using the instructions provided in the official Banana PI R4 document. Once the Image is burned, Insert the SD Card into Banana PI R4 and switch Boot Jumper to boot from SD.

Power on the Banana Pi R4 to boot the prplOS Image from the SD card. prplOS is now running and ready for exploration on the Banana Pi R4.

Walk-through prplOS bootlog for Banana Pi R4

  • prplOS is successfully booted for banana pi bpi-r4 target.

  • Below excerpt from the prplOS bootlog, covers the following stages of booting,

    • Booting : Bootloader stages

    • Booting : U-Boot

    • Booting : Kernel version - Linux version 6.6.89

    • prplOS prompt

F0: 102B 0000
FA: 1042 0000
FA: 1042 0000 [0200]
F9: 1041 0000
F3: 1001 0000 [0200]
F3: 1001 0000
F6: 380E 5800
F5: 0000 0000
V0: 0000 0000 [0001]
00: 0000 0000
BP: 0600 0041 [0000]
G0: 1190 0000
EC: 0000 0000 [3000]
MK: 0000 0000 [0000]
T0: 0000 014B [0101]
Jump to BL

NOTICE:  BL2: v2.9(release):OpenWrt v2023-07-24-00ac6db3-2 (mt7988-sdmmc-comb)
NOTICE:  BL2: Built : 05:52:34, Jun 30 2025
NOTICE:  WDT: Cold boot
NOTICE:  WDT: disabled
NOTICE:  CPU: MT7988
NOTICE:  EMI: Using DDR unknown settings
NOTICE:  EMI: Detected DRAM size: 4096 MB
NOTICE:  EMI: complex R/W mem test passed
NOTICE:  BL2: Booting BL31
NOTICE:  BL31: v2.9(release):OpenWrt v2023-07-24-00ac6db3-2 (mt7988-sdmmc-comb)
NOTICE:  BL31: Built : 05:52:34, Jun 30 2025


U-Boot 2025.04-OpenWrt-r0+25055-4b63d62a00 (Jun 30 2025 - 05:52:34 +0000)

CPU:   MediaTek MT7988
Model: Bananapi BPI-R4
DRAM:  4 GiB
Core:  64 devices, 24 uclasses, devicetree: embed

.... skipped ....

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd090]
[    0.000000] Linux version 6.6.89 (user@3392f6529df3) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 12.3.0 r0+25055-4b63d62a00) 12.3.0, GNU ld (GNU Binutils) 2.40.0) #0 SMP Mon Jun 30 05:52:34 2025
[    0.000000] Machine model: Bananapi BPI-R4

.... skipped ....

BusyBox v1.36.1 (2025-06-30 05:52:34 UTC) built-in shell (ash)


                   _  ___  ____
  _ __  _ __ _ __ | |/ _ \/ ___|
 | '_ \| '__| '_ \| | | | \___ \
 | |_) | |  | |_) | | |_| |___) |
 | .__/|_|  | .__/|_|\___/|____/
 |_|        |_| based on OpenWrt
 --------------------------------
      prplOS 3.2.0-4b63d62a
 --------------------------------

=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@prplOS:/#

Verifying Kernel and prplOS Version Details

The log snippet below helps to identify the kernel version, board name, and prplOS version details.

root@prplOS:/# cat /proc/device-tree/model
Bananapi BPI-R4

root@prplOS:/# cat /proc/version
Linux version 6.6.89 (user@3392f6529df3) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 12.3.0 r0+25055-4b63d62a00) 12.3.0, GNU ld (GNU Binutils) 2.40.0) #0 SMP Mon Jun 30 05:52:34 2025

root@prplOS:/# cat /etc/openwrt_release
DISTRIB_ID='prplOS'
DISTRIB_RELEASE='3.2.0-4b63d62a'
DISTRIB_REVISION='r0+25055-4b63d62a00'
DISTRIB_TARGET='mediatek/filogic'
DISTRIB_ARCH='aarch64_cortex-a53'
DISTRIB_DESCRIPTION='prplOS 3.2.0-4b63d62a r0+25055-4b63d62a00'
DISTRIB_TAINTS='no-all busybox override'

Ethernet and WAN Connectivity

The target device receives an IP address on its WAN interface and can reach the Internet through the WAN network.

root@prplOS:/# ifconfig wan
wan       Link encap:Ethernet  HWaddr 3A:C9:6B:40:16:66
          inet addr:172.16.0.222  Bcast:0.0.0.0  Mask:255.255.0.0
.... skipped ....

root@prplOS:/# ping -c 3 google.co.in
PING google.co.in (142.251.223.163) 56(84) bytes of data.
64 bytes from lcmaaa-am-in-f3.1e100.net (142.251.223.163): icmp_seq=1 ttl=118 time=1.52 ms
64 bytes from lcmaaa-am-in-f3.1e100.net (142.251.223.163): icmp_seq=2 ttl=118 time=1.23 ms
64 bytes from lcmaaa-am-in-f3.1e100.net (142.251.223.163): icmp_seq=3 ttl=118 time=1.24 ms

--- google.co.in ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.233/1.330/1.523/0.136 ms

WiFi Connectivity

WiFi Interfaces for all the Radios are up and running.

root@prplOS:/# iw dev
phy#0
        Interface wlan1.2
....
        Interface wlan2.2
....
        Interface wlan0.2
....
        Interface wlan0.1
                ifindex 21
                wdev 0x8
                addr 3a:c9:6b:40:16:6e
                ssid prplOS-6G
                type AP
                channel 37 (6135 MHz), width: 320 MHz, center1: 6105 MHz
                txpower 23.00 dBm
                multicast TXQ:
                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
                        0       0       0       0       0       0       0       0               0
                Radios: 0 1 2
        Interface wlan1.1
                ifindex 19
                wdev 0x6
                addr 3a:c9:6b:40:18:6c
                ssid prplOS-5G
                type AP
                channel 36 (5180 MHz), width: 80 MHz, center1: 5210 MHz
                txpower 7.00 dBm
                multicast TXQ:
                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
                        0       0       0       0       0       0       0       0               0
                Radios: 0 1 2
        Interface wlan2.1
                ifindex 17
                wdev 0x4
                addr 3a:c9:6b:40:19:6b
                ssid prplOS-2G
                type AP
                channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
                txpower 6.00 dBm
                multicast TXQ:
                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
                        0       0       0       0       0       0       0       0               0
                Radios: 0 1 2
        Interface wlan2
....
        Interface wlan1
....
        Interface wlan0
....
  • Verified WiFi Clients connectivity to 2G and 5G Radios.

root@prplOS:/# iwinfo wlan1.1 assoc
AA:BC:8B:7D:63:4D  -50 dBm / -85 dBm (SNR 35)  0 ms ago
        RX: 200.0 MBit/s, VHT-MCS 9, 40MHz, VHT-NSS 1     84536 Pkts.
        TX: 390.0 MBit/s, VHT-MCS 9, 80MHz, VHT-NSS 1    218364 Pkts.
        expected throughput: unknown

root@prplOS:/# iwinfo wlan2.1 assoc
EE:70:1D:20:58:5E  -42 dBm / -85 dBm (SNR 43)  890 ms ago
        RX: 216.6 MBit/s, HE-MCS 9, 20MHz, HE-NSS 2, HE-GI 1, HE-DCM 0     32609 Pkts.
        TX: 154.8 MBit/s, HE-MCS 6, 20MHz, HE-NSS 2, HE-GI 0, HE-DCM 0     62408 Pkts.
        expected throughput: unknown

Unlocking New Explorations in prplOS

With prplOS running on Banana PI R4, It opens up a way to explore prplOS features and to use Banana PI R4 as a high-performance WiFi router. Thanks to its advanced Ethernet and WiFi capabilities, Banana PI R4 is a great reference platform for building and testing custom prplOS Images to learn and explore prplOS features.

In the future posts, we will cover how to build your own prplOS image for Banana Pi R4, how to enable WiFi and explore other features in prplOS.

This post is licensed under CC BY 4.0 by the author.