Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
inbox:toh:sinovoip:bananapi_bpi-r4 [2024/05/26 05:12] – [Tags] remove unsupported dndinbox:toh:sinovoip:bananapi_bpi-r4 [2024/11/21 07:31] – Add information how to enable WO firmware dpawlik
Line 6: Line 6:
 {{page>meta:infobox:construction&noheader&nofooter&noeditbtn}} {{page>meta:infobox:construction&noheader&nofooter&noeditbtn}}
  
-Banana Pi BPI-R4 router board uses the MediaTek MT7988A (Filogic 880) quad-core ARM Corex-A73 SoC with 4GB DDR4 RAM, 8GB eMMC, 128MB SPI-NAND flash, 2x 10Gbe SFP, 4x 1Gbe network ports, USB3.2 port, M.2 support 4G/5G/NVME SSD.2x miniPCIe slots with PCIe3.0 2lane interface for Wi-Fi 7 NIC.+Banana Pi BPI-R4 uses the MediaTek MT7988A (Filogic 880), a 1.8GHz quad-core ARM Corex-A73 SoC. Included is 4GB DDR4 RAM, 8GB eMMC, 128MB SPI-NAND flash, 2x 10Gbe SFP, 4x 1Gbe network ports, USB 3.2 port, M.2 supports 4G/5G/NVMESSD.2x miniPCIe slots with PCIe 3.0 2lane interface for Wi-Fi 7 NIC.
  
 {{media:sinovoip:banana_pi_bpi-r4_1.jpg?300|BPi-R4}} {{media:sinovoip:banana_pi_bpi-r4_1.jpg?300|BPi-R4}}
Line 49: Line 49:
 ===== Installation ===== ===== Installation =====
  
-The easiest way to run OpenWrt is [[https://firmware-selector.openwrt.org/?version=SNAPSHOT&target=mediatek%2Ffilogic&id=bananapi_bpi-r4|download]] a snapshot, write it to an [[docs:guide-user:installation:installation_methods:sd_card]], and boot it+The easiest way to run OpenWrt is [[https://firmware-selector.openwrt.org/?version=SNAPSHOT&target=mediatek%2Ffilogic&id=bananapi_bpi-r4|download]] a snapshot, write it to an [[docs:guide-user:installation:installation_methods:sd card]], and boot it.
- +
-The installation method for the various Banana Pi boards is similar. Until this page is complete you may also reference [[:toh:sinovoip:bananapi_bpi-r3]]. Read the [[https://wiki.banana-pi.org/Getting_Started_with_BPI-R4|user manual]] provided by SinoVoip to understand the hardware switches selecting the available storage devices, and which device to boot from. It's possible to boot from an SD card, from the internal eMMC, or from the internal SPI-NAND flash.+
  
 <code> <code>
 $ zcat openwrt-mediatek-filogic-bananapi_bpi-r4-sdcard.img.gz | dd of=/dev/sdX bs=1M status=progress $ zcat openwrt-mediatek-filogic-bananapi_bpi-r4-sdcard.img.gz | dd of=/dev/sdX bs=1M status=progress
 </code> </code>
 +
 +The installation method for the various Banana Pi boards is similar, so until this page is complete you may also refer to [[:toh:sinovoip:bananapi_bpi-r3]]. Read the [[https://wiki.banana-pi.org/Getting_Started_with_BPI-R4|user manual]] provided by SinoVoip to understand the hardware switches selecting the available storage devices, and which device to boot from. It's possible to boot from an SD card, from the internal eMMC, or from the internal SPI-NAND flash.
  
 If you have a serial console attached, then in the boot menu of the BPI you can select //Install bootloader, recovery and production to NAND// to install from the sdcard to the internal NAND. After that you can remove the sdcard, change the boot switch, and boot from the NAND. If you have a serial console attached, then in the boot menu of the BPI you can select //Install bootloader, recovery and production to NAND// to install from the sdcard to the internal NAND. After that you can remove the sdcard, change the boot switch, and boot from the NAND.
Line 61: Line 61:
 Installing to eMMC is possible by first installing to NAND, then copy from the NAND to eMMC. This is because the sdcard and the eMMC cannot be both accessed at the same time. The sdcard takes priority and "hides" the internal eMMC when inserted. Installing to eMMC is possible by first installing to NAND, then copy from the NAND to eMMC. This is because the sdcard and the eMMC cannot be both accessed at the same time. The sdcard takes priority and "hides" the internal eMMC when inserted.
  
-If you want to use the serial console, you can instruct the bootloader to perform installation on the next reboot using the bootloader environment accessible from inside OpenWrt via SSH. See the details at [[:toh:sinovoip:bananapi_bpi-r3]].+You may also instruct the bootloader to perform an installation on the next reboot using the bootloader environment from inside OpenWrt via SSH. See the details at [[:toh:sinovoip:bananapi_bpi-r3]]
 + 
 +[[wp>NVM_Express|NVMe]] storage can be used by including or installing the driver ''kmod-nvme''.
  
 /*** if info available: uncomment and fill in /*** if info available: uncomment and fill in
Line 119: Line 121:
 </WRAP> </WRAP>
 ***/ ***/
- 
  
 ===== Hardware ===== ===== Hardware =====
 +
 +
 ==== Info ==== ==== Info ====
 ^ Architecture    | ARM / AARCH64 Cortex-A73                                                 | ^ Architecture    | ARM / AARCH64 Cortex-A73                                                 |
Line 148: Line 151:
 </WRAP> </WRAP>
 ***/ ***/
 +
 +==== BPI-R4-NIC-BE14 ====
 +One of the greatest advantages of this device is the cooperation of the main processor (MT7988) with the WiFi module (**MT7996**).
 +The **BPI-R4-NIC-BE14** module is often described as a board with MT7996 processor, but this is actually a marketing shorthand used by MediaTek
 +for its Wireless module series. The MT7996 refers to an entire chipset package consisting of multiple components: MT7995AV+MT7976CN+MT7977IAN.
 +
 +<WRAP BOX>
 +**Important**: The Sinovoip company advice to use **19V/3.2A** power supply. Make sure, that your current power supply is good. Most of the USB-C power supply for the modern PC's will have it.
 +</WRAP>
 +
 +Before you mount the module to the router, remember to switch the "**SW4**" to the **ON possition** on the BPi-R4 board, like on the picture below:
 +
 +{{media:sinovoip:bpi_r4_v1.0_sw4.jpg?400|sw4 switch}}
 +
 +After that, the 12V LED lights up when turned **ON**.
 +
 +=== Wireless Offload ===
 +
 +Before explaining the WO firwmare goal, it is worth to mention about **WED** - **W**ireless **E**thernet **D**ispatch. (Special thanks
 +for Dangowrt for the explaination).
 +
 +The WED term stems from the original implementation which is part of MT7622 and offloads
 +forwarding from Ethernet to Wireless, ie. WiFi TX is offloaded only. Hence packets received on Ethernet
 +are dispatched to Wireless, hence the name. More recent versions (MT7986, MT7981 and later SoC) do
 +support also taking care of the traffic received on the Wireless interface.
 +
 +The "**WO**" (**W**ireless **O**ffload Firmware) In order to perform WED on recent SoCs a dedicated
 +offloading firmware is required.
 +
 +WED means offloading traffic forwarding from/to Wireless. It works with the existing
 +flow-offloading aka. HWNAT engine of MediaTek SoCs, just like for forwarding Ethernet traffic.
 +Newer SoCs need firmware to perform WED, and that is called WO firmware. Because WED is now bidirectional,
 +MediaTek started to use the more generic term WO instead of WED, which suggests a unidirectional
 +nature as it has been the case on MT7622. Today, the two terms (WED and WO) mean the same feature.
 +
 +The "**WO**" firmware is available now in the OpenWrt snapshot builds since this [[https://github.com/openwrt/openwrt/commit/eee3c695f3922c9bbacef9e4c2b1b71e8174fee1|commit]].
 +
 +<WRAP BOX>
 +**Important**: The current WO firmware in the builds is unstable and it is recommended to use it for advenced user. It is mandatory to limit the RAM for **2GB**, otherwise the wireless interfaces will not start.
 +
 +
 +To set 2GB RAM limit, you need to execute on the router:
 +<code>
 +fw_setenv bootargs "ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait mem=2048M"
 +</code>
 +
 +To go back to previous settings, execute on the router:
 +<code>
 +fw_setenv bootargs "ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait"
 +</code>
 +</WRAP>
 +
 +After you change RAM size (temporary workaround), enable load the **WO** firmware. To do that, you need to add into the ///etc/modules.conf//, for example:
 +
 +<code>
 +echo "options mt7996e wed_enable=Y sr_scene_detect=Y" >> /etc/modules.conf
 +</code>
 +
 +Then **reboot** the router to apply changes. When it comes back, results should be as below:
 +
 +<code>
 +$ cat /sys/module/mt7996e/parameters/sr_scene_detect
 +Y
 +$ cat /sys/module/mt7996e/parameters/wed_enable
 +Y
 +</code>
 +
 +
 +=== Module BPI-R4-NIC-BE14 photo ===
 +
 +{{media:sinovoip:BPI-R4-NIC-BE14_2.jpg?400|BPI-R4-NIC-BE14}}
 +
 +=== 6GHz wireless network ===
 +
 +The topic of 6GHz networking is often duplicated on the official OpenWrt forum, so before
 +configuring your network, make sure:
 +
 +  * if you are using Windows 10, using the 6GHz network is not possible on this system,
 +  * make sure you have the latest drivers,
 +  * verify the Wi-Fi [[https://en.wikipedia.org/wiki/List_of_WLAN_channels#6_GHz_(802.11ax_and_802.11be)|regulation list]] for your country. It is highly possible that running this type of network is not permitted in your region. Using a country code that does not match your location is not recommended.
 +  * there are only few contries where the 320MHz width can be used
 +
 +<WRAP BOX>
 +**NOTE**: Sometimes the latest drivers may not achieve satisfactory speeds. It is worth trying sometimes to use **AX** mode than **BE** mode.
 +</WRAP>
 +
 +==== Testing speed locally ====
 +There are many tools to check the speed between the host and the router. The most commonly
 +used, "**iperf3**" can cause problems for less advanced users. In this case, the
 +"**librespeed-go**" package (you need to enable it in /etc/config/librespeed-go) may be a more
 +convenient method for testing (by default the service should be available on port :8989).
  
 ==== Photos ==== ==== Photos ====
Line 176: Line 270:
  
 ===== Bootlogs ===== ===== Bootlogs =====
 +
 ==== OEM bootlog ==== ==== OEM bootlog ====
 <WRAP bootlog> <WRAP bootlog>
Line 800: Line 895:
 [   16.773573] Per-port-per-queue mode is going to be enabled! [   16.773573] Per-port-per-queue mode is going to be enabled!
 [   16.779197] PPPQ use qid 0~11 (scheduler 0). [   16.779197] PPPQ use qid 0~11 (scheduler 0).
- +</nowiki>
- +
-BusyBox v1.33.2 (2023-06-04 07:30:12 UTC) built-in shell (ash) +
- +
-  _______                     ________        __ +
-       |.-----.-----.-----.|  |  |  |.----.|  |_ +
-     ||  _  |  -__|     ||  |  |  ||   _||   _| +
- |_______||   __|_____|__|__||________||__|  |____| +
-          |__| W I R E L E S S   F R E E D O M +
- ----------------------------------------------------- +
- OpenWrt 21.02-SNAPSHOT, unknown +
- ----------------------------------------------------- +
-=== 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@OpenWrt:/# </nowiki>+
 </WRAP>\\ </WRAP>\\
  
Line 1425: Line 1503:
 [   17.244136] br-wan: port 2(eth2) entered forwarding state [   17.244136] br-wan: port 2(eth2) entered forwarding state
 [   17.249619] IPv6: ADDRCONF(NETDEV_CHANGE): br-wan: link becomes ready [   17.249619] IPv6: ADDRCONF(NETDEV_CHANGE): br-wan: link becomes ready
- 
- 
- 
-BusyBox v1.36.1 (2024-02-18 08:56:45 UTC) built-in shell (ash) 
- 
-  _______                     ________        __ 
-       |.-----.-----.-----.|  |  |  |.----.|  |_ 
-     ||  _  |  -__|     ||  |  |  ||   _||   _| 
- |_______||   __|_____|__|__||________||__|  |____| 
-          |__| W I R E L E S S   F R E E D O M 
- ----------------------------------------------------- 
- OpenWrt SNAPSHOT, r25233-6da308f4de 
- ----------------------------------------------------- 
-=== 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@OpenWrt:/#  
 </nowiki> </nowiki>
 </WRAP>\\ </WRAP>\\
  • Last modified: 2024/11/27 09:03
  • by n-storm