A new dual 10G router based on Filogic 880 (Banana Pi BPi-R4)

I'm still stuggling to have a proper firmware on it, however during the boot process, from my USB-C power meter it's showing 20V 0.2A which is around 4W power, note there is no WiFi module nor SFP+ module on it yet.

2 Likes

many thanks!

This is similar to my readings:
board powered, reset button held down: 1.5W
board idle after boot (all links down, no modules powered): <4W
board with all Ethernet links up: ~6W + SFP consumption (typically <1W for 1000M, 1.5W for 2500M, up to 3W for 10G)

The WiFi module adds another 3W idle, at this point the driver doesn't allow using all bands with full speed and I also got nothing to test against, so hard to say what the maximum draw could be.

3 Likes

Is this device able to boot off of the nvme?
Can it use ext4, which the BPI-R3 seemingly can't?

Short answer: no. The BootROM on the MT7988 is fairly similar to what was already in MT7986 and doesn't support booting from NVMe directly.

However, you could go ahead and implement PCIe support in U-Boot -- then you can have TF-A and U-Boot sitting on SPI-NAND or SPI-NOR and have it do UEFI standard boot from the NVMe to load a generic purpose OS.

At this time the only missing thing is porting the PCIe driver from Linux to U-Boot, so it's purely a software limititation.

You are probably referring to the image format (uImage.FIT incl. squash rootfs) used by OpenWrt on the R3 (and many other systems which can support that). And yes, as the R4 is yet another board where we can implement validation of the root filesystem by the bootloader, that's what's going to happen for the official OpenWrt image.

If, for what ever reason, you are not happy with that it's easy to tell the kernel to use something else as rootfs (such as an additional ext4 partition you may create) by using the root= kernel cmdline parameter set in the bootargs variable in U-Boot.

1 Like

Thanks, all above my head, I am just a simple user.
I just want the BPI-R4 to be all I wanted the BPI-R3 isn't.
Though, have to say, I really like my BPI-R3...
Thank you very much to all you people who make all of this work.
I appreciate it.

Are you able to boot using the provided image? I can't boot properly and it stucks at something related to RTCxxx then reboot after certain period.

Use the OpenWrt build here instead, that works pretty well already. I must admit I've never tried the MTK SDK build from SinoVoip, but I assume it should work good enough to validate the hardware is working correctly...

Edit: The R4 is supported in OpenWrt snapshots. You can download the image here or customize it using the firmware selector.

1 Like

How to build from that one? git pull then...? Not too familiar with the process...

Either make a new clone

git clone -b bpi-r4 https://github.com/dangowrt/openwrt openwrt-r4
cd openwrt-r4
make menconfig
...

Or add the branch to your existing OpenWrt checkout:

cd openwrt
git remote add dangowrt https://github.com/dangowrt/openwrt
git fetch dangowrt bpi-r4
git checkout dangowrt/bpi-r4
make menuconfig
...
2 Likes

Should be something like this??

1 Like

would you happen to have a .config file with some recommended selections? been a long while since I built openwrt.

Thanks, now I am building, but usually how long does it take?
I am using a cloud VM with 24 core CPU and it has been compiling for 3hrs and it's still not done???

A complete build from scratch (so including the toolchain) can take some time. I should check, but I think my 5800X churns through it in like half an hour.

24 cores don't do much if they're not powerful or if usage is capped. So that's apples and oranges.

Unless you are building entirely in RAM (ie. on tmpfs) the bottleneck usually is disk I/O performance rather than CPU, esp. with virtual machines this is often very horrible if not setup with performance in mind (ie. using IOAPIC PCIe pass-through of a NVMe node to the guest, skipping all of the hosts device driver, block device, filesystem, ... layers).

1 Like

6th gen i5 on ssd is draggign lol.

I'm booking off NAND right now. Is there a preferred method to write this to SD and boot from there? I can't get the BPI provided image to boot from SD.

Are you running the build on Linux Kernel running directly on the hardware is it a VM running under some hypervisor?

gzip -cd openwrt-mediatek-filogic-bananapi_bpi-r4-sdcard.img.gz | dd of=/dev/mmcblk0

Then put both switches down, insert the card, power on and it should boot.

direct on hardware. 'low power' version of the cpu so just taking it's time, no big deal.

however, do you have a config file with an appropriate set of defaults? LOTS of options in openwrt.