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/15 21:16] – Added installation section attila-lendvaiinbox: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 16: Line 16:
 ===== OpenWrt support ===== ===== OpenWrt support =====
  
-Experimental support in OpenWrt main branch and snapshots after [[commit>?p=openwrt/openwrt.git;a=commitdiff;h=f16dc4b42fb265affb2298e815a7ce0a13d60da6|2024-02-15]+<!-- ToH: { 
 +  "source": "json", 
 +  "dom": "t", 
 +  "paging": false, 
 +  "rotate": true, 
 +  "shownColumns": ["brand", "model", "version", "supportedcurrentrel", "oemdevicehomepageurl", "forumsearch", "deviceid"], 
 +  "filterColumns": {"brand": "^Sinovoip$", "model": "^Banana Pi BPi-R4$"
 +} -->
  
 /*** if info available: uncomment and fill in /*** if info available: uncomment and fill in
Line 40: Line 46:
   * ...   * ...
 ***/ ***/
- 
- 
-===== Hardware highlights ===== 
-^ CPU                        ^ Ram      ^ Flash   ^ Network     ^ WLAN   ^ USB      ^ Serial   ^ JTag   ^ 
-| MediaTek Filogic 880 @ 1800 MHz    4 GiB  |  128 MiB + 8 GiB  |  2x 10G + 4x 10/100/1000  |  b/g/n/ac/ax/be    1x 3.2  |   Yes    |   Yes    | 
- 
  
 ===== Installation ===== ===== Installation =====
  
--> [[docs:guide-user:installation:installation_methods:sd_card|Install OpenWrt (using microSD card)]] +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 of the various BananPi boards is very similar. You may want to check out other models at [[:toh:sinovoip:start]]. +
- +
-Please see 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 microSD cardfrom the (internal) eMMC, or from the (internal) SPI-NAND flash. +
- +
-The easiest way to start OpenWrt is to write the sdcard image variant to a microSD card, and boot from it:+
  
 <code> <code>
Line 61: Line 55:
 </code> </code>
  
-If you have a serial console attachedthen in the boot menu of the BPI you can select //Install bootloader, recovery and production to NAND// or //... eMMC// (depending on the boot switch) to install from the sdcard to the internal NAND or eMMC. After that you can remove the sdcardchange the boot switch, and boot from an internal storage.+The installation method for the various Banana Pi boards is similarso 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 cannot or do not 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, eg. via SSH. See the details at [[:toh:sinovoip:bananapi_bpi-r3]].+If you have a serial console attachedthen 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. 
 + 
 +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. 
 + 
 +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 121: Line 121:
 </WRAP> </WRAP>
 ***/ ***/
- 
  
 ===== Hardware ===== ===== Hardware =====
 +
 +
 ==== Info ==== ==== Info ====
 ^ Architecture    | ARM / AARCH64 Cortex-A73                                                 | ^ Architecture    | ARM / AARCH64 Cortex-A73                                                 |
Line 150: 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 178: Line 270:
  
 ===== Bootlogs ===== ===== Bootlogs =====
 +
 ==== OEM bootlog ==== ==== OEM bootlog ====
 <WRAP bootlog> <WRAP bootlog>
Line 802: 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 1427: 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>\\
Line 1453: Line 1510:
 ===== Tags ===== ===== Tags =====
  
-{{tag>mediatek MT7988 128NAND 8192eMMC 4096RAM 6Port GigabitEthernet 10GigabitEthernet SFP microSD lte MiniPCIexpress 3SIM m.2 DevBoard Filogic USB3.2 13Ant TRNG crypto Serial SPI GPIO I2C 12v_powered unsupported}}+{{tag>mediatek MT7988 128NAND 8192eMMC 4096RAM 6Port GigabitEthernet 10GigabitEthernet SFP microSD lte MiniPCIexpress 3SIM m.2 DevBoard Filogic USB3.2 13Ant TRNG crypto Serial SPI GPIO I2C 12v_powered}}
  • Last modified: 2024/11/27 09:03
  • by n-storm