香蕉派R3路由器编译开发手册

一、概要

(一)简介

image

Banana Pi BPI-R3路由器板采用联发科MT7986(Filogic 830)四核ARM A53+MT7531A芯片设计,2G DDR RAM,板载8G eMMC闪存,是一款超高性能的开源路由器开发板,支持Wi-Fi6 2.4G wifi使用MT7975N,5G wifi使用MT7975P,支持2个SFP 2.5GbE接口,5GbE网口。

(二)MediaTek MT7986(Filogic 830)

MT7986(Filogic 830) 集成了四个高达 2GHz 的 Arm Cortex-A53 内核,具有高达 18,000 DMIPs 的处理能力和 6Gbps 的双 4x4 Wi-Fi6 连接。 它有两个 2.5g 以太网接口和串行外设接口 (SPI)。 Filogic 830 的内置硬件加速引擎可实现快速可靠的 Wi-Fi 卸载和无线网络连接。 此外,该芯片支持联发科FastPath™技术,适用于游戏、AR/VR等低延迟应用。

Wi-fi 6 与其前辈相比具有许多优势,包括更低的延迟、更大的带宽容量和更快的传输速率。 支持6GHz频段的无线网络设备主要利用160MHz宽信道和6GHz不拥塞带宽,提供千兆传输和低延迟wi-fi连接,为流媒体、游戏、AR/VR等应用提供可靠的无线网络。

(三)应用方向

  • 互联网服务路由器
  • 无线路由器
  • 无线中继器
  • 家庭安全网关
  • 家庭自动化
  • NAS设备
  • 网络和通信应用

(四)主要特性

  • 联发科MT7986(Filogic 830)四核ARM Cortex A53+MT7531芯片设计
  • Wifi 6 4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P)
  • 2G内存
  • 8G eMMC 闪存
  • 2 个 SFP 2.5GbE
  • 5 GbE 网络端口
  • POE 支持(可选)
  • 迷你PCIe
  • M.2 KEY-E PCIe 接口
  • Mciro SD卡接口
  • 26 针通用输入输出

二、硬件

(一)硬件接口

image

(二)启动设置

启动设置 SW1 SW2 SW3 SW4
SPIM-NoR Low Low Low X
SPIM-Nand High Low High X
eMMC Low High High Low
SD card High High X High

(三)硬件规格

硬件 规格
CPU MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53+MT7531 chip design
SDRAM 2 GB DDR4
On board Storage MicroSD (TF) card,8GB eMMC onboard
GPIO 26 Pin GPIO,some of which can be used for specific functions including UART, I2C, SPI, PWM, I2S.
On board Network 5 Port 10/100/1000Mbps Ethernet
SFP 2 SFP 2.5GbE
Wifi Wifi 6 4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P)
mini PCIE Mini PCIe via USB
M.2 interface M.2 KEY-M PCIe inerface
USB 1 USB 3.0 host ,2 USB interface with slot.
Buttons Reset button,WPS botton, boot switch
Leds Power status Led and RJ45 Led
DC Power 12V/2A with DC in
Sizes 100.5x148mm
Weight 200g

三、编译开发

(一)源码

https://github.com/BPI-SINOVOIP/BPI-R3-OPENWRT-V21.02.3

(二)开发准备

准备:

  • 8G以上大小TF卡
  • USB串口线
  • Ubuntu系统
  1. 使用串口线连接香蕉派调试口

image

  1. 启动模式设置

image

注:

  • SW1-A、SW1-B用来选择boot strap;
  • SW1-C设置SPI-Nand或SPI-Nor Device连接到CPU的SPI总线;
  • SW1-D设置SD Card或EMMC设备连接到tp CPU的EMMC总线。

示例:
所有跳线为高电平:

image

所有跳线为低电平:

image

(三)烧录系统到SD卡

1. 使用Linux烧录

  1. 准备好系统镜像
  2. 在你的 Ubuntu上安装bpi-tools。 如果您无法访问此URL或任何其他问题,请转到 bpi-tools repo 并手动安装此工具。
1
2
apt-get install pv
curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
  1. 下载镜像后,将你的TF卡插入你的Ubuntu
    执行

    1
    bpi-copy xxx.img /dev/sdx

    将镜像烧录到你的TF卡

  2. 完成第3步后,就可以将TF卡插入R3,按电源键对R3进行设置

2. 使用Windows烧录

  1. 下载Windows烧录镜像工具,https://sourceforge.net/projects/win32diskimager/
  2. 在Windows中安装软件
  3. 选择镜像并烧录到TF卡中

3. 修改启动模式

将引导跳线更改为从SD引导,启用SD卡设备。

(四)烧录系统到EMMC

注意:因为SD卡和EMMC设备共用一个SOC的接口,所以需要先烧写一个SD镜像,然后R3从SD卡启动,然后将nand镜像烧写到Nand,然后更改boot strap从nand启动,需要将EMMC镜像烧写到EMMC。 最后,您将引导程序更改为从EMMC引导。

在将映像刻录到eMMC之前,请准备一张带有闪存可启动映像的SD卡和一个U盘。 让我们使用 OpenWrt 镜像 (mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img, mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk -bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img)为例,步骤如下:

  1. 插入烧录的SD卡,上电启动开发板。(SD卡上的镜像mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img可以是OpenWrt或其他linux操作系统如ubuntu …)

  2. 复制Nand启动镜像和EMMC启动镜像(mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image .img)到U盘,如果是压缩的镜像,请先解压再复制到U盘

  3. 将U盘插入开发板,将U盘挂载到/mnt或其他目录如下:(自动挂载可跳过)

    1
    2
    mount -t vfat /dev/sda1 /mnt
    cd /mnt
  4. 执行以下命令将镜像烧录到nand闪存:

    1
    2
    mtd erase /dev/mtd0
    dd if=mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin of=/dev/mtdblock0
  5. 关机,拔掉SD卡,把bootstrap改成从nand flash启动,把SD/EMMC开关跳线改成EMMC,重启板子从Nand Flash启动

image

  1. 重复步骤3,挂载u盘到/mnt,执行以下命令将镜像烧录到EMMC设备:

    1
    2
    3
    4
    5
    mount -t vfat /dev/sda1 /mnt
    echo 0 > /sys/block/mmcblk0boot0/force_ro
    dd if=bl2_emmc.img of=/dev/mmcblk0boot0
    dd if=mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img of=/dev/mmcblk0
    mmc bootpart enable 1 1 /dev/mmcblk0
  2. 给R3板断电,拔掉U盘,修改bootstrap为emmc设备启动

image

四、网络配置

image

网络配置查看命令:

1
ifconfig

br-lan Link encap:Ethernet HWaddr EE:A1:57:81:CA:19

1
2
3
4
5
6
7
8
inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link
inet6 addr: fd63:8bea:d5ce::1/60 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:2418 (2.3 KiB)

br-wan Link encap:Ethernet HWaddr EE:A1:57:81:CA:19

1
2
3
4
5
6
inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:8538 (8.3 KiB)

eth0 Link encap:Ethernet HWaddr EE:A1:57:81:CA:19

1
2
3
4
5
6
7
inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:4408 (4.3 KiB)
Interrupt:124

eth1 Link encap:Ethernet HWaddr 4A:BB:84:B4:5D:3F

1
2
3
4
5
6
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:8674 (8.4 KiB)
Interrupt:124

lan0 Link encap:Ethernet HWaddr EE:A1:57:81:CA:19

1
2
3
4
5
UP BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lan1 Link encap:Ethernet HWaddr EE:A1:57:81:CA:19

1
2
3
4
5
UP BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lan2 Link encap:Ethernet HWaddr EE:A1:57:81:CA:19

1
2
3
4
5
UP BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lan3 Link encap:Ethernet HWaddr EE:A1:57:81:CA:19

1
2
3
4
5
UP BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lan4 Link encap:Ethernet HWaddr EE:A1:57:81:CA:19

1
2
3
4
5
UP BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lan5 Link encap:Ethernet HWaddr EE:A1:57:81:CA:19

1
2
3
4
5
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:2418 (2.3 KiB)

lo Link encap:Local Loopback

1
2
3
4
5
6
7
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:56 errors:0 dropped:0 overruns:0 frame:0
TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4368 (4.2 KiB) TX bytes:4368 (4.2 KiB)

ra0 Link encap:Ethernet HWaddr 00:0C:43:26:60:38

1
2
3
4
5
6
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:6

rax0 Link encap:Ethernet HWaddr 02:0C:43:36:60:38

1
2
3
4
5
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

查看桥接WAN:

1
brctl show br-wan
1
bridge name bridge id STP enabled interfaces br-wan 7fff.eea15781ca19 no lan0, eth1

查看桥接LAN:

1
brctl show br-lan
1
bridge name bridge id STP enabled interfaces br-lan 7fff.eea15781ca19 no lan4, rax0, lan2, lan5, ra0, lan3, lan1

五、高级开发

GPIO

26针定义:

image

GPIO控制:

1
2
3
echo xxx > /sys/class/gpio/export
echo in/out > /sys/class/gpio/gpioxxx/direction
echo 0/1 > /sys/class/gpio/gpioxxx/value

检查基础gpio,你可以看到我的是411:
image

例如:如果你想把gpio 22改成高电平输出,你需要这样输入命令:

1
2
3
echo 433(22+411) > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio433/direction
echo 1 > /sys/class/gpio/gpio433/value

PWM风扇控制:

1
2
3
4
5
echo 0 > /sys/class/pwm/pwmchip0/export
echo 10000 > /sys/class/pwm/pwmchip0/pwm0/period
echo 5000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
echo normal > /sys/class/pwm/pwmchip0/pwm0/polarity
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable

miniPCIe插槽:
目前miniPCIe插槽只支持1个USB 4G模块,例如:EC25 插入1个EC25模块时可以使用lsusb查看

image

BPI-R3 上的Ap模式:

  • ra0 MT7986a 2.4G wifi
  • rax0 MT7986a 5G wifi

香蕉派R3路由器编译开发手册
https://www.shangyexin.com/2022/12/28/banana-pi/
作者
Yasin
发布于
2022年12月28日
许可协议