Banana Pi BPI-R4 路由器开发板采用 MediaTek MT7988A(Filogic 880)四核 ARM Cortex-A73 处理器,配备 4GB DDR4 内存、8GB eMMC 和板载 128MB SPI-NAND 闪存;同时提供 2 个 10GbE SFP 接口、4 个千兆以太网口和 USB 3.2 接口。M.2 插槽支持 4G/5G 模块和 NVMe SSD,另有 2 个采用 PCIe 3.0 双通道接口的 miniPCIe 插槽,可安装 Wi-Fi 7 网卡(NIC)。这是一款高性能开源路由器开发板。
| 更多信息:Banana Pi BPI-R4 |
准备一张 8GB 或更大容量的 TF 卡、USB 转串口线和 Ubuntu 系统
12V/2A 电源适配器(不连接任何外设时,即使在极端情况下,BPI-R4 主板功耗也不会超过 10W;是否需要功率更高的适配器,请根据所用配件确定)
使用 USB 转串口线(3.3V TTL,波特率 115200)连接 BPI-R4 的调试串口
G=GND;RX=BPI-R4 输入;TX=BPI-R4 输出
下载待烧录的镜像
LAN 口默认 IP 地址:192.168.1.1
用户名/密码:pi/bananapi、root/bananapi。+ 也可以使用无密码的 root 用户。
Wi-Fi:AP_MTK_MT7990_2G/AP_MTK_MT7990_5G/AP_MTK_MT7990_6G
所有跳线均设为“1”时,BPI-R4 从 SD 卡启动
SW3-A 设为“0”、SW3-B 设为“1”时,BPI-R4 从 SPI NAND 启动
SW3-A 设为“1”、SW3-B 设为“0”时,BPI-R4 从 eMMC 启动
如果控制台显示“system halt!”,表示所选启动存储设备中没有操作系统
F0: 102B 0000
FA: 5100 0000
FA: 5100 0000 [0200]
F9: 1041 0000
F3: 1001 0000 [0200]
F3: 1001 0000
F6: 102C 0000
F5: 1026 0000
00: 1005 0000
FA: 5100 0000
FA: 5100 0000 [0200]
F9: 1041 0000
F3: 1001 0000 [0200]
F3: 1001 0000
F6: 102C 0000
01: 102A 0001
02: 1005 0000
BP: 0200 00C0 [0001]
EC: 0000 0000 [0000]
MK: 0000 0000 [0000]
T0: 0000 00D7 [0101]
System halt!
| 使用 Ubuntu 或 Debian 6.1 内核的 SD 卡镜像启动后,NAND 中的镜像将无法启动,需要重新烧录。 |
|
请对 SD 卡进行低级格式化并清除其中的全部数据,这一点非常重要。 否则,启动过程中会遇到“jffs2”错误。 |
Windows 电脑请按下图操作。
Linux 电脑可使用“mksf”命令进行格式化,也可使用“dd”命令写入全零数据。
在 Windows 电脑上将镜像烧录到 SD 卡
Balena Etcher 是 Balena 推出的开源图形化烧录工具,可将操作系统镜像写入 SD 卡或 USB 驱动器。
单击“Flash from file”选择镜像。
单击“Select target”选择 USB 设备。
单击“Flash!”开始烧录。
在 Linux 电脑上将镜像烧录到 SD 卡
可从论坛下载最新镜像。
在 Ubuntu 中安装 bpi-tools。如果无法访问该网址或遇到其他问题,请前往 bpi-tools 仓库手动安装。
apt-get install pv
curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
下载镜像后,将 TF 卡插入 Ubuntu 电脑并执行:
bpi-copy xxx.img /dev/sdx
将镜像安装到 TF 卡。
完成第 3 步后,将 TF 卡插入 R4,然后按下电源键启动 R4。
将启动跳线切换为从 SD 卡启动,并启用 SD 卡设备。
| NAND 出厂时已经烧录镜像。如需使用,只需切换到相应的启动模式,然后上电启动。 |
| 更新 NAND 时,先将启动开关切换为从 SD 卡启动,并插入一张带有可启动镜像的 SD 卡。系统启动后,将 NAND 镜像写入 NAND,最后再切换为从 NAND 启动。 |
烧录 NAND 镜像前请准备一个 USB 驱动器。以下以 OpenWrt 镜像(mtk-bpi-r4-NAND-20231030.img)为例:
将用于 NAND 启动的 OpenWrt 镜像(mtk-bpi-r4-NAND-20231030.img)复制到 USB 驱动器。
调整启动跳线,使开发板从 SD 卡启动,然后给开发板上电。
将 USB 驱动器插入开发板,并按如下方式挂载到 /mnt 或其他目录(若系统已自动挂载,可跳过此步):
mount -t vfat /dev/sda1 /mnt
cd /mnt
执行以下命令擦除整个 NAND,并将镜像写入 NAND 设备:
mtd erase /dev/mtd0
dd if=mtk-bpi-r4-NAND-20231030.img of=/dev/mtdblock0
关闭 BPI-R4,拔出 USB 驱动器,然后切换为从 NAND 启动。
| 由于 SD 卡与 eMMC 共用 SoC 的同一个控制器,需要先切换为从 NAND 启动,再将 eMMC 镜像写入 eMMC,最后切换为从 eMMC 启动。 |
烧录 eMMC 镜像前请准备一个 USB 驱动器。以下以 OpenWrt 镜像(bl2_emmc-r4.img、mtk-bpi-r4-EMMC-20231030.img)为例:
将用于 eMMC 启动的 OpenWrt 镜像(bl2_emmc-r4.img、mtk-bpi-r4-EMMC-20231030.img)复制到 USB 驱动器;如果镜像已压缩,请先解压再复制。
将启动跳线切换为 NAND,并从 NAND 启动开发板。
将 USB 驱动器插入开发板,并按如下方式挂载到 /mnt 或其他目录(若系统已自动挂载,可跳过此步):
mount -t vfat /dev/sda1 /mnt
cd /mnt
执行:
echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=bl2_emmc-r4.img of=/dev/mmcblk0boot0
dd if=mtk-bpi-r4-EMMC-20231030.img of=/dev/mmcblk0
mmc bootpart enable 1 1 /dev/mmcblk0
关闭 R4,拔出 USB 驱动器,然后切换为从 eMMC 启动。
网络配置请参考:http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start
网络接口:eth2、lan0 用于 WAN;eth1、lan0、lan1、lan2、lan3 用于 LAN;ra0/ra1 用于 2.4G 无线网络;rai0 用于 5G Wi-Fi 6;rax0 用于 6G Wi-Fi 7。
root@OpenWrt:/# ifconfig
br-lan Link encap:Ethernet HWaddr EE:A1:57:81:CA:19
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
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
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
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
eth2 Link encap:Ethernet HWaddr 22:02:CE:9C:92:BA
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
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
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
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
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)
lo Link encap:Local Loopback
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:88
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)
ra1 Link encap:Ethernet HWaddr 02:0C:43:36:60:88
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)
rai0 Link encap:Ethernet HWaddr 00:0C:43:2B:B1:F8
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)
rax0 Link encap:Ethernet HWaddr 0C:0C:43:26:60:D8
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)
root@OpenWrt:/# brctl show br-wan
bridge name bridge id STP enabled interfaces
br-wan 7fff.eea15781ca19 no lan0, eth2
root@OpenWrt:/# brctl show br-lan
bridge name bridge id STP enabled interfaces
br-lan 7fff.eea15781ca19 no apclii0 apclix0 apcli0 ra1 rai0 rax0 lan2 eth1 ra0 lan3 lan1
root@OpenWrt:/#
| 升级 BL2 前,请确认其与开发板硬件及版本兼容。 |
首先,在启动菜单中选择 Upgrade ATF BL2。
在升级页面中选择要使用的升级工具。
在电脑上安装 TFTP 软件,将 R4 的 LAN 口连接到电脑网口。然后按照页面中的设置修改电脑网络配置,并输入要升级的文件名,但暂时不要按 Enter 键。
打开电脑上的 TFTP 软件,设置传输文件路径和电脑 IP 地址。
通过 R4 的调试串口确认 BL2 文件传输情况。
BL2 文件升级成功后,重启设备。
需要使用支持 Xmodem 和 Ymodem 传输的串口工具。(Xmodem 与 Ymodem 的操作方式相似,此处仅演示 Xmodem。)
选择 Send Xmodem,再选择要传输的文件,然后单击 Send。
传输完成后,重启设备。
原始 BL2 文件:
更改后:
| 我们发布的镜像在每次启动时都会使用随机 MAC 地址,不会使用 EEPROM。如需使用 EEPROM,需要自行编写脚本读取其中的数据并更新端口配置。 |
1、读取 EEPROM
hexdump -C /sys/bus/i2c/devices/3-0057/eeprom
2、向 EEPROM 写入内容
printf '\x01\x02\x03\x04\x05\x06' | dd of=/sys/bus/i2c/devices/3-0057/eeprom bs=1 seek=32 conv=notrunc
“\x01\x02\x03\x04\x05\x06”是要写入的内容,可以是 MAC 地址、序列号或其他信息。+ “bs=1”表示块大小为 1。+ “seek=32”表示偏移量(跳过的块数)。+ “bs=1 seek=32”表示跳过 32 字节,即跳过 0x00 至 0x1F,从 0x20 开始写入。+ “conv=notrunc”表示不截断 EEPROM,保留原有数据。
例如,要分别向地址 0x20 和 0x30 写入两组 MAC 地址:
printf '\x12\x41\x89\x7F\x64\xD3' | dd of=/sys/bus/i2c/devices/3-0057/eeprom bs=1 seek=32 conv=notrunc
printf '\x7E\xF5\x56\x36\x4C\xD1' | dd of=/sys/bus/i2c/devices/3-0057/eeprom bs=1 seek=48 conv=notrunc
| 注意:后续批次的 V1.2 版本计划向 EEPROM 写入数据,因此必须避开 0x00 至 0x1F 的地址范围。 |
3、读取 EEPROM 的全部内容
hexdump -C /sys/bus/i2c/devices/3-0057/eeprom
读取 EEPROM 指定位置的内容。
hexdump -C /sys/bus/i2c/devices/3-0057/eeprom | tail -n +3
“tail -n +3”表示只显示从第 3 行开始的数据,即从 0x20 开始。
BPI-R4 的 SFP SerDes 速率固定为 10Gbps,因此只能使用支持该速率的 SFP 模块!
通常,10G SFP+ 模块的 PIN6 为 GND。插入模块后,SFP_MOD_DEF0 会被拉低,从而接通 SFP 电源。
因此,如果模块的该引脚不是 GND,就不会提供 3.3V_SFP 电源!
该模块长时间使用时温度很高;若没有散热片或散热风扇,温度可达到 90℃。请注意防止烫伤!
root@R4CN:/# [ 67.870063] sfp sfp@0: SM: enter empty:up:down event insert
[ 67.875642] sfp sfp@0: SM: exit probe:up:down
[ 68.199179] sfp sfp@0: SM: enter probe:up:down event timeout
[ 68.215970] sfp sfp@0: module OEM SFP-10G-T rev 10 sn 2309250003 dc 230925
[ 68.225443] sfp sfp@0: module OEM SFP-10G-T rev 10 has been found in the quirk list
[ 68.235004] sfp sfp@0: sfp: support mode 00,00000800,00007040
[ 68.240749] sfp sfp@0: tx disable 1 -> 0
[ 68.244681] sfp sfp@0: SM: exit present:up:wait
[ 68.343638] sfp sfp@0: SM: enter present:up:wait event los_high
[ 68.349549] sfp sfp@0: SM: exit present:up:wait
[ 82.476711] sfp sfp@0: SM: enter present:up:wait event los_low
[ 82.482550] sfp sfp@0: SM: exit present:up:wait
[ 83.584504] alloc new entry for 18:f2:2c:6f:45:3e, interface:eth2
[ 83.590595] recv intf mac ae:19:d1:7e:2a:74
[ 95.271188] sfp sfp@0: SM: enter present:up:wait event timeout
[ 95.277715] sfp sfp@0: probing phy device through the [MDIO_I2C_ROLLBALL] protocol
[ 95.821247] sfp sfp@0: CL45 PHY device [0x31c3:0x1c13] found!
[ 95.826999] sfp sfp@0: CL45 PHY device [0x31c3:0x1c13] found!
[ 95.832741] sfp sfp@0: CL45 PHY device [0x31c3:0x1c13] found!
[ 95.838479] sfp sfp@0: CL45 PHY device [0x31c3:0x1c13] found!
[ 95.844217] sfp sfp@0: CL45 PHY driver [Aquantia AQR113C] found!
[ 95.850215] sfp sfp@0: phy: support mode 00,00018000,000e706c
[ 95.855960] mtk_soc_eth 15100000.ethernet eth2: requesting link mode inband/10gbase-kr with support 00,00018000,000a7068
[ 96.273193] mtk_soc_eth 15100000.ethernet eth2: PHY [i2c:sfp@0:11] driver [Aquantia AQR113C]
[ 96.357199] sfp sfp@0: SM: exit present:up:link_up
[ 96.357206] mtk_soc_eth 15100000.ethernet eth2: resolve link status: system iface=1, line iface=0
[ 96.630718] sfp sfp@0: SM: enter present:up:link_up event los_high
[ 96.636904] sfp sfp@0: SM: exit present:up:wait_los
[ 101.395228] sfp sfp@0: SM: enter present:up:wait_los event los_low
[ 101.401416] sfp sfp@0: SM: exit present:up:link_up
[ 101.401426] mtk_soc_eth 15100000.ethernet eth2: resolve link status: system iface=1, line iface=0
[ 101.696172] mtk_soc_eth 15100000.ethernet eth2: Link is Up - 10Gbps/Full - flow control off
[ 101.704534] br-wan: port 2(eth2) entered blocking state
[ 101.709754] br-wan: port 2(eth2) entered forwarding state
root@R4CN:/#
root@R4CN:/# i2cdetect -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 -- -- -- -- 56 -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: UU -- -- -- -- -- -- --
root@R4CN:/#
root@R4CN:/# ethtool eth2
Settings for eth2:
Supported ports: [ ]
Supported link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
1000baseKX/Full
10000baseKR/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
1000baseKX/Full
10000baseKR/Full
2500baseT/Full
5000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Full
100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: MII
PHYAD: 17
Transceiver: external
Auto-negotiation: on
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
root@R4CN:/#
| 该模块插入后请勿拔出,否则会导致 BPI-R4 重启;其他模块没有此现象。 |
root@R4CN:/# [ 201.763041] mapfilter:drop IP addr timeout! stop dropping IP addr.
[ 499.938345] sfp sfp@0: SM: enter present:up:link_up event los_high
[ 499.950712] mtk_soc_eth 15100000.ethernet eth2: Link is Down
[ 499.956370] sfp sfp@0: SM: exit present:up:wait_los
[ 499.961367] br-wan: port 2(eth2) entered disabled state
[ 502.867442] sfp sfp@0: SM: enter present:up:wait_los event remove
[ 502.873705] sfp sfp@0: module removed
[ 502.877937] sfp sfp@0: tx disable 0 -> 1
[ 502.881872] sfp sfp@0: SM: exit empty:up:down
[ 503.164077] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000180
[ 503.172853] Mem abort info:
[ 503.175634] ESR = 0x96000006
[ 503.178683] EC = 0x25: DABT (current EL), IL = 32 bits
[ 503.183985] SET = 0, FnV = 0
[ 503.187030] EA = 0, S1PTW = 0
[ 503.190162] Data abort info:
[ 503.193035] ISV = 0, ISS = 0x00000006
[ 503.196861] CM = 0, WnR = 0
[ 503.199816] user pgtable: 4k pages, 39-bit VAs, pgdp=000000012fd21000
[ 503.206246] [0000000000000180] pgd=0000000132bfb003, pud=0000000132bfb003, pmd=0000000000000000
[ 503.214936] Internal error: Oops: 96000006 [#1] SMP
[ 503.219799] Modules linked in: ksmbd mt7991(P) mt7990(P) iptable_nat ipt_REJECT xt_time xt_tcpudp xt_state xt_socket xt_recent xt_policy xt_nat xt_multiport xt_mark xt_mac xt_limit xt_iprange xt_helper xt_esp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_TPROXY xt_TCPMSS xt_REDIRECT xt_MASQUERADE xt_LOG xt_FLOWOFFLOAD xt_CT usblp ts_fsm ts_bm spidev rfcomm pptp ppp_mppe nf_tproxy_ipv6 nf_tproxy_ipv4 nf_socket_ipv6 nf_socket_ipv4 nf_reject_ipv4 nf_nat_tftp nf_nat_snmp_basic nf_nat_sip nf_nat_pptp nf_nat_irc nf_nat_h323 nf_nat_amanda nf_nat nf_log_ipv4 nf_flow_table_hw nf_flow_table nf_conntrack_tftp nf_conntrack_snmp nf_conntrack_sip nf_conntrack_pptp nf_conntrack_netlink nf_conntrack_irc nf_conntrack_h323 nf_conntrack_broadcast ts_kmp nf_conntrack_amanda nf_conncount mtqos mtfwd mapfilter libcrc32c l2tp_ppp iptable_raw iptable_mangle iptable_filter ipt_ah ip_tables hidp btusb btintel bnep asn1_decoder mt7990_dbg(P) mtk_wed(P) mtk_pci(P) connac_if(P) mtk_hwifi(P)
[ 503.219869] mt_wifi(P) hid mt_wifi_cmn evdev input_core cfg80211 compat xt_set ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 nfsd ip6_gre ip_gre gre l2tp_netlink l2tp_core udp_tunnel ip6_udp_tunnel ipcomp6 xfrm6_tunnel esp6 ah6 ip6_tunnel tunnel6 ip_tunnel rpcsec_gss_krb5 auth_rpcgss oid_registry af_key lockd sunrpc grace autofs4 dm_mirror dm_region_hash dm_log dm_crypt nls_utf8 nls_iso8859_1 nls_cp437 macsec seqiv md4 ghash_generic gf128mul gcm cts ctr ccm arc4 mtk_warp mtkhnat leds_gpio xhci_plat_hcd ohci_platform ohci_hcd fsl_mph_dr_of ehci_platform ehci_fsl ehci_hcd gpio_button_hotplug
[ 503.390068] CPU: 2 PID: 7304 Comm: aqr107_mib_thre Tainted: P 5.4.246 #0
[ 503.398227] Hardware name: Bananapi BPI-R4 (DT)
[ 503.402746] pstate: 80000005 (Nzcv daif -PAN -UAO)
[ 503.407531] pc : __phy_read_mmd+0x20/0xa0
[ 503.411529] lr : phy_read_mmd+0x38/0x60
[ 503.415351] sp : ffffffc01388bd90
[ 503.418653] x29: ffffffc01388bd90 x28: 0000000000000000
[ 503.423952] x27: ffffff80f2ae3638 x26: ffffffc010a373c0
[ 503.429250] x25: ffffffc010557918 x24: ffffff80f4ce8800
[ 503.434547] x23: ffffffc010d83908 x22: ffffffc01388be3c
[ 503.439845] x21: 000000000000e811 x20: 0000000000000003
[ 503.445142] x19: ffffff80f4ce8800 x18: ffffffc010c0a1a8
[ 503.450440] x17: 000000000000003c x16: 000000000000003c
[ 503.455738] x15: 0000000000000018 x14: 00000000fffbd1b0
[ 503.461035] x13: 00000000000001f4 x12: ffffffc010c0a160
[ 503.466332] x11: 000000000000c503 x10: 0000000000000830
[ 503.471630] x9 : ffffffc01388bd10 x8 : ffffff80efda0890
[ 503.476927] x7 : ffffffc0eec26000 x6 : ffffffc0eec26000
[ 503.482224] x5 : 0000000000000000 x4 : 0000000000000000
[ 503.487522] x3 : ffffff80f4ce8800 x2 : 000000000000e811
[ 503.492819] x1 : 0000000000000003 x0 : ffffff80f4ce8800
[ 503.498117] Call trace:
[ 503.500553] __phy_read_mmd+0x20/0xa0
[ 503.504202] phy_read_mmd+0x38/0x60
[ 503.507680] aqr107_mib_read_word+0x2c/0x60
[ 503.511850] aqr107_mib_read+0x24/0x200
[ 503.515673] aqr107_mib_thread+0x20/0x50
[ 503.519585] kthread+0x120/0x128
[ 503.522801] ret_from_fork+0x10/0x1c
[ 503.526368] Code: a9be7bfd aa0003e3 910003fd f9418005 (f940c0a5)
[ 503.532447] ---[ end trace 3fa317a53584315f ]---
[ 503.538554] Kernel panic - not syncing: Fatal exception
[ 503.543768] SMP: stopping secondary CPUs
[ 503.547680] Kernel Offset: disabled
[ 503.551155] CPU features: 0x10002,20002008
[ 503.555238] Memory Limit: none
[ 503.559792] Starting Memory dump SMCC
[ 503.563452] Memory dump SMCC failed
[ 503.566929] Rebooting in 3 seconds..
root@R4CN:/# [ 455.370399] sfp sfp@1: SM: enter empty:up:down event insert
[ 455.375999] sfp sfp@1: SM: exit probe:up:down
[ 455.687021] sfp sfp@1: SM: enter probe:up:down event timeout
[ 455.703815] sfp sfp@1: module OEM SFP-10G-BX20-U rev 1.0 sn 2309250008 dc 230925
[ 455.713292] sfp sfp@1: sfp: support mode 00,00001000,00006040
[ 455.719042] mtk_soc_eth 15100000.ethernet eth1: requesting link mode inband/10gbase-kr with support 00,00001000,00006440
[ 455.740862] sfp sfp@1: tx disable 1 -> 0
[ 455.744792] sfp sfp@1: SM: exit present:up:wait
[ 455.799020] sfp sfp@1: SM: enter present:up:wait event timeout
[ 455.804849] sfp sfp@1: probing phy device through the [MDIO_I2C_NONE] protocol
[ 455.812066] sfp sfp@1: SM: exit present:up:link_up
[ 455.833979] mtk_soc_eth 15100000.ethernet eth1: resolve link status: system iface=0
[ 455.843477] sfp sfp@1: SM: enter present:up:link_up event los_high
[ 455.849657] sfp sfp@1: SM: exit present:up:wait_los
[ 476.904686] sfp sfp@1: SM: enter present:up:wait_los event los_low
[ 476.910875] sfp sfp@1: SM: exit present:up:link_up
[ 476.941863] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 10Gbps/Full - flow control off
[ 476.950225] br-lan: port 4(eth1) entered blocking state
[ 476.955445] br-lan: port 4(eth1) entered forwarding state
[ 477.784529] alloc new entry for 18:f2:2c:6f:45:3e, interface:eth1
[ 477.790622] recv intf mac 76:38:02:df:74:7f
root@R4CN:/#
root@R4CN:/# i2cdetect -y 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: UU -- -- -- -- -- -- --
root@R4CN:/#
root@R4CN:/# ethtool eth1
Settings for eth1:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseLR/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10000baseLR/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
root@R4CN:/#
| 未安装 SIM 卡时,请勿将卡托插入卡槽,否则容易损坏卡槽。 |
BPI-R4 支持以下采用 M.2 USB 接口的 4G LTE/5G 模块:Quectel EM05、RM500U-CN、RM500Q-GL 和 RM520N-GL。
如需在 BPI-R4 上使用 M.2 蜂窝网络模块:
将 4G/5G 蜂窝网络模块安装到 CN16 插槽(M.2 Key B)。
使用卡托将 Nano SIM 卡插入 SIM 卡槽(SIM1),注意插入方向。
将天线安装到模块上。
上电后,系统会自动拨号。
| 能否使用 4G/5G 取决于当地运营商采用的频段。 |
Quectel RM520N-GL
Quectel RM520N-GL
wwan0 Link encap:Ethernet HWaddr A6:35:F7:7A:9E:A7
inet6 addr: fe80::a435:f7ff:fe7a:9ea7/64 Scope:Link
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1272 (1.2 KiB) TX bytes:1932 (1.8 KiB)
wwan0_1 Link encap:Ethernet HWaddr A6:35:F7:7A:9E:A7
inet addr:10.46.121.135 Mask:255.255.255.240
inet6 addr: fe80::a435:f7ff:fe7a:9ea7/64 Scope:Link
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1292 (1.2 KiB) TX bytes:1932 (1.8 KiB)
root@R4CN:/#
root@R4CN:/# lsusb
Bus 002 Device 003: ID 2c7c:0801 Quectel RM520N-GL
Bus 002 Device 002: ID 2109:0822 VIA Labs, Inc. USB3.1 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux 5.4.246 xhci-hcd xHCI Host Controller
Bus 001 Device 003: ID 2109:8822 VIA Labs, Inc. USB Billboard Device
Bus 001 Device 002: ID 2109:2822 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.246 xhci-hcd xHCI Host Controller
root@R4CN:/#
root@R4CN:/# ping www.baidu.com
PING www.baidu.com (120.232.145.185): 56 data bytes
64 bytes from 120.232.145.185: seq=0 ttl=52 time=30.712 ms
64 bytes from 120.232.145.185: seq=1 ttl=52 time=32.774 ms
64 bytes from 120.232.145.185: seq=2 ttl=52 time=45.222 ms
64 bytes from 120.232.145.185: seq=3 ttl=52 time=37.850 ms
64 bytes from 120.232.145.185: seq=4 ttl=52 time=53.459 ms
^C
--- www.baidu.com ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 30.712/40.003/53.459 ms
root@R4CN:/#
RM500U-CN
usb0 Link encap:Ethernet HWaddr 5E:3B:9C:76:7C:46
inet addr:10.95.9.23 Bcast:10.95.9.255 Mask:255.255.255.0
inet6 addr: fe80::5c3b:9cff:fe76:7c46/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:34 errors:0 dropped:0 overruns:0 frame:0
TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7908 (7.7 KiB) TX bytes:10100 (9.8 KiB)
root@R4CN:/#
root@R4CN:/# lsusb
Bus 002 Device 003: ID 2c7c:0900 Quectel RM500U-CN
Bus 002 Device 002: ID 2109:0822 VIA Labs, Inc. USB3.1 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux 5.4.246 xhci-hcd xHCI Host Controller
Bus 001 Device 003: ID 2109:8822 VIA Labs, Inc. USB Billboard Device
Bus 001 Device 002: ID 2109:2822 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.246 xhci-hcd xHCI Host Controller
root@R4CN:/#
root@R4CN:/# ping www.baidu.com
PING www.baidu.com (2409:8c54:870:34e:0:ff:b024:1916): 56 data bytes
64 bytes from 2409:8c54:870:34e:0:ff:b024:1916: seq=0 ttl=51 time=55.105 ms
64 bytes from 2409:8c54:870:34e:0:ff:b024:1916: seq=1 ttl=51 time=38.725 ms
64 bytes from 2409:8c54:870:34e:0:ff:b024:1916: seq=2 ttl=51 time=39.890 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 38.725/44.573/55.105 ms
root@R4CN:/#
EM05-CE
wwan0 Link encap:Ethernet HWaddr F2:CC:52:10:2E:27
inet addr:10.21.103.116 Bcast:0.0.0.0 Mask:255.255.255.248
inet6 addr: fe80::f0cc:52ff:fe10:2e27/64 Scope:Link
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:56 errors:0 dropped:0 overruns:0 frame:0
TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7868 (7.6 KiB) TX bytes:10133 (9.8 KiB)
root@R4CN:/#
root@R4CN:/# lsusb
Bus 001 Device 012: ID 2c7c:0125 Quectel Incorporated LTE Module
Bus 002 Device 002: ID 2109:0822 VIA Labs, Inc. USB3.1 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux 5.4.246 xhci-hcd xHCI Host Controller
Bus 001 Device 003: ID 2109:8822 VIA Labs, Inc. USB Billboard Device
Bus 001 Device 002: ID 2109:2822 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.246 xhci-hcd xHCI Host Controller
root@R4CN:/#
root@R4CN:/# ping www.baidu.com
PING www.baidu.com (120.232.145.144): 56 data bytes
64 bytes from 120.232.145.144: seq=0 ttl=53 time=47.085 ms
64 bytes from 120.232.145.144: seq=1 ttl=53 time=36.447 ms
^C
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 36.447/41.766/47.085 ms
root@R4CN:/#
理论上也支持 PCIe 接口的蜂窝网络模块,但尚未测试。
BPI-R4 支持采用 miniPCIe USB 接口的 4G LTE 模块:Quectel EC25。
如需在 BPI-R4 上使用 miniPCIe 蜂窝网络模块:
将 4G 蜂窝网络模块安装到 CN12 插槽。
使用卡托将 Nano SIM 卡插入 SIM 卡槽(SIM2),注意插入方向。
将天线安装到模块上。
上电后,系统会自动拨号。
也可以使用 CN14(SIM3)。
| 能否使用 4G 取决于当地运营商采用的频段。 |
由于 BPI-R4 对 Qualcomm/Unisoc 模块的兼容性问题,EC25 模块无法直接访问 DNS 服务器并连接互联网。因此,需要通过控制台手动修改 default.script 文件。
vim /usr/share/udhcpc/default.script
添加:echo "nameserver 202.96.128.86" >> /etc/resolv.conf
echo "nameserver 202.96.128.86" >> /etc/resolv.conf
| 请根据本地 DNS 服务器修改 IP 地址。 |
EC25-E
wwan0 Link encap:Ethernet HWaddr 12:19:B1:54:2E:04
inet addr:10.41.254.97 Mask:255.255.255.252
inet6 addr: fe80::1019:b1ff:fe54:2e04/64 Scope:Link
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1623 (1.5 KiB) TX bytes:2222 (2.1 KiB)
root@Simon-R4:/#
root@Simon-R4:/# lsusb
Bus 001 Device 004: ID 2c7c:0125 Android Android
Bus 002 Device 002: ID 2109:0822 VIA Labs, Inc. USB3.1 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux 5.4.260 xhci-hcd xHCI Host Controller
Bus 001 Device 003: ID 2109:8822 VIA Labs, Inc. USB Billboard Device
Bus 001 Device 002: ID 2109:2822 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.260 xhci-hcd xHCI Host Controller
root@Simon-R4:/#
root@Simon-R4:/# ping www.baidu.com
PING www.baidu.com (183.2.172.42): 56 data bytes
64 bytes from 183.2.172.42: seq=0 ttl=52 time=24.309 ms
64 bytes from 183.2.172.42: seq=1 ttl=52 time=55.576 ms
64 bytes from 183.2.172.42: seq=2 ttl=52 time=55.507 ms
64 bytes from 183.2.172.42: seq=3 ttl=52 time=39.399 ms
64 bytes from 183.2.172.42: seq=4 ttl=52 time=31.386 ms
^C
--- www.baidu.com ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 24.309/41.235/55.576 ms
root@Simon-R4:/#
请将一块 M.2 Key M SSD(PCIe 接口)插入 Key M 插槽(CN18)。
| 尚未进行全面的兼容性测试,无法保证所有 SSD 均可使用。 |
| 已知问题:受 R228 和 R230 影响,插入某些 SSD 后会影响 I2C 读写。后续生产批次将移除这两个电阻。 |
root@R4CN:/# lspci
0002:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0002:01:00.0 Non-Volatile memory controller: KIOXIA Corporation Device 0001
0004:00:00.0 Unclassified device [0002]: MEDIATEK Corp. Device 7981
root@R4CN:/#
root@R4CN:/#
root@R4CN:/# cat /proc/partitions
major minor #blocks name
31 0 131072 mtdblock0
259 0 125034840 nvme0n1
259 1 125033472 nvme0n1p1
31 1 1024 mtdblock1
31 2 512 mtdblock2
31 3 4096 mtdblock3
31 4 2048 mtdblock4
31 5 115200 mtdblock5
179 0 7634944 mmcblk0
253 0 56172 ubiblock0_1
root@R4CN:/#
BPI-R4 支持 JMicron JMB585(PCIe 转 5 路 SATA 芯片)。
root@R4CN:/# lspci
0002:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0002:01:00.0 SATA controller: JMicron Technology Corp. JMB58x AHCI SATA controller
0004:00:00.0 Unclassified device [0002]: MEDIATEK Corp. Device 7981
root@R4CN:/#
root@R4CN:/# [ 743.794932] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 743.802031] ata1.00: HPA detected: current 234439535, native 234441648
[ 743.808746] ata1.00: ATA-8: Hitachi HTS542512K9SA00, BB2OC31P, max UDMA/133
[ 743.815699] ata1.00: 234439535 sectors, multi 0: LBA48 NCQ (depth 32), AA
[ 743.823749] ata1.00: configured for UDMA/133
[ 743.828182] scsi 0:0:0:0: Direct-Access ATA Hitachi HTS54251 C31P PQ: 0 ANSI: 5
[ 743.836710] sd 0:0:0:0: [sda] 234439535 512-byte logical blocks: (120 GB/112 GiB)
[ 743.844204] sd 0:0:0:0: [sda] Write Protect is off
[ 743.848992] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 743.854075] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 744.221268] sda: sda1 sda2
[ 744.224485] sd 0:0:0:0: [sda] Attached SCSI disk
[ 744.459896] EXT4-fs (sda1): The kernel was not built with CONFIG_QUOTA and CONFIG_QFMT_V2
root@R4CN:/#
root@R4CN:/#
root@R4CN:/# cat /proc/partitions
major minor #blocks name
31 0 131072 mtdblock0
31 1 1024 mtdblock1
31 2 512 mtdblock2
31 3 4096 mtdblock3
31 4 2048 mtdblock4
31 5 115200 mtdblock5
179 0 7634944 mmcblk0
253 0 56172 ubiblock0_1
8 0 117219767 sda
8 1 8388608 sda1
8 2 2097152 sda2
root@R4CN:/#
BPI-R4 也支持 ASMedia ASM2142,但该模块需要额外的 5V 电源。
root@R4CN:/# lspci
0002:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0002:01:00.0 USB controller: ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller
0004:00:00.0 Unclassified device [0002]: MEDIATEK Corp. Device 7981
root@R4CN:/#
root@R4CN:/# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux 5.4.246 xhci-hcd xHCI Host Controller
Bus 003 Device 003: ID 2109:8822 VIA Labs, Inc. USB Billboard Device
Bus 003 Device 002: ID 2109:2822 VIA Labs, Inc. USB2.0 Hub
Bus 004 Device 002: ID 2109:0822 VIA Labs, Inc. USB3.1 Hub
Bus 004 Device 001: ID 1d6b:0003 Linux 5.4.246 xhci-hcd xHCI Host Controller
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.246 xhci-hcd xHCI Host Controller
Bus 003 Device 001: ID 1d6b:0002 Linux 5.4.246 xhci-hcd xHCI Host Controller
root@R4CN:/#
root@R4CN:/# [ 65.031157] usb 1-2: new high-speed USB device number 2 using xhci_hcd
[ 65.312671] usb-storage 1-2:1.0: USB Mass Storage device detected
[ 65.318899] scsi host0: usb-storage 1-2:1.0
[ 66.341397] scsi 0:0:0:0: Direct-Access HIKSEMI MD202 1.00 PQ: 0 ANSI: 6
[ 66.351211] sd 0:0:0:0: [sda] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[ 66.359500] sd 0:0:0:0: [sda] Write Protect is off
[ 66.364288] sd 0:0:0:0: [sda] Mode Sense: 37 00 00 08
[ 66.370127] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 66.399133] sda: sda1 sda2
[ 66.405370] sd 0:0:0:0: [sda] Attached SCSI disk
[ 66.567935] [EXFAT] trying to mount...
[ 66.596276] [EXFAT] mounted successfully
[ 66.688447] FAT-fs (sda2): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
[ 66.705213] FAT-fs (sda2): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
root@R4CN:/#
root@R4CN:/# lsusb
Bus 001 Device 002: ID 0bda:9210 HIKSEMI MD202
Bus 002 Device 001: ID 1d6b:0003 Linux 5.4.246 xhci-hcd xHCI Host Controller
Bus 003 Device 003: ID 2109:8822 VIA Labs, Inc. USB Billboard Device
Bus 003 Device 002: ID 2109:2822 VIA Labs, Inc. USB2.0 Hub
Bus 004 Device 002: ID 2109:0822 VIA Labs, Inc. USB3.1 Hub
Bus 004 Device 001: ID 1d6b:0003 Linux 5.4.246 xhci-hcd xHCI Host Controller
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.246 xhci-hcd xHCI Host Controller
Bus 003 Device 001: ID 1d6b:0002 Linux 5.4.246 xhci-hcd xHCI Host Controller
root@R4CN:/#
root@R4CN:/#
root@R4CN:/# cat /proc/partitions
major minor #blocks name
31 0 131072 mtdblock0
31 1 1024 mtdblock1
31 2 512 mtdblock2
31 3 4096 mtdblock3
31 4 2048 mtdblock4
31 5 115200 mtdblock5
179 0 7634944 mmcblk0
253 0 56172 ubiblock0_1
8 0 125034840 sda
8 1 125001048 sda1
8 2 32768 sda2
root@R4CN:/#
该模块可用于 M.2 Key B 插槽,但其尺寸为 2260,板上没有对应的固定位置。
root@R4CN:/# lspci
0003:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0003:01:00.0 USB controller: ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller
0004:00:00.0 Unclassified device [0002]: MEDIATEK Corp. Device 7981
设备:RTL9210 M.2 NVMe 转接器 + Samsung PCIe SSD PM981A
操作系统:ubuntu-24.04-server-bpi-r4-5.4-aarch64-sd-emmc
在电脑上的速度测试:
在 BPI-R4 上的速度测试:
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1# dd if=HD.Club.mp4 of=/dev/null
7175971+1 records in
7175971+1 records out
3674097294 bytes (3.7 GB, 3.4 GiB) copied, 9.09406 s, 404 MB/s
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1# dd if=HD.Club.mp4 of=/dev/null
7175971+1 records in
7175971+1 records out
3674097294 bytes (3.7 GB, 3.4 GiB) copied, 7.19301 s, 511 MB/s
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1# dd if=HD.Club.mp4 of=/dev/null
7175971+1 records in
7175971+1 records out
3674097294 bytes (3.7 GB, 3.4 GiB) copied, 7.12881 s, 515 MB/s
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1# dd if=/dev/zero of=./test.img bs=1024M count=5
5+0 records in
5+0 records out
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 14.5756 s, 368 MB/s
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1# dd if=HD.Club.mp4 of=/dev/null
7175971+1 records in
7175971+1 records out
3674097294 bytes (3.7 GB, 3.4 GiB) copied, 10.249 s, 358 MB/s
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1#
root@BPI-R4:/mnt/sda1# dd if=HD.Club.mp4 of=/dev/null
7175971+1 records in
7175971+1 records out
3674097294 bytes (3.7 GB, 3.4 GiB) copied, 7.24647 s, 507 MB/s
root@BPI-R4:/mnt/sda1#
可以将 BPI-R4-NIC 插入 BPI-R4-Main 底部的 CN12 和 CN14,然后用两颗 M2 螺钉固定。
BPI-R4-NIC 模块需要 12V 供电,因此上电前必须打开 BPI-R4-Main 上的相应电源(将 SW4 拨到“ON”位置;上电后 12V LED 会亮起)。
| 12V 电源会通过 miniPCIe 插座的 PIN6/28/48 提供给 BPI-R4-NIC。 插入其他模块时,如果不能确认该模块能否承受 12V,请务必关闭 SW4。 |
BPI-R4-NIC-BE14 : MT7995AV+MT7976CN+MT7977IAN
root@R4RN:/# lspci
0000:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0000:01:00.0 Network controller: MEDIATEK Corp. Device 7990
0001:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0001:01:00.0 Network controller: MEDIATEK Corp. Device 7991
0004:00:00.0 Unclassified device [0002]: MEDIATEK Corp. Device 7981
root@R4RN:/# ifconfig
ra0 Link encap:Ethernet HWaddr 00:0C:43:26:60:A8
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10 errors:10 dropped:0 overruns:0 frame:0
TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:320 (320.0 B) TX bytes:1184 (1.1 KiB)
rai0 Link encap:Ethernet HWaddr 00:0C:43:26:60:B8
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1290969 errors:51890 dropped:0 overruns:0 frame:0
TX packets:17549107 errors:254037 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:363742528 (346.8 MiB) TX bytes:25491834560 (23.7 GiB)
rax0 Link encap:Ethernet HWaddr 00:0C:43:26:60:28
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:563140 errors:187 dropped:0 overruns:0 frame:0
TX packets:1683329 errors:11607 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:785902144 (749.4 MiB) TX bytes:2175529280 (2.0 GiB)
OpenWrt MTK MP4.0 Wi-Fi 设置:
所有功能正常后,可以检测到三个 SSID,BE14 上的三个蓝色 LED 也会亮起。
打开 Web 管理页面,在配置中设置相应的 STA 热点。 然后单击 Connect 进行连接。
在调试串口中检查接口是否已启用。
ifconfig
尝试执行 ping。
brctl show br-lan
可以看到,该接口当前桥接到 br-lan,需要改为桥接到 br-wan。
brctl delif br-lan apcli0
从 br-lan 中移除该桥接接口。
brctl addif br-wan apcli0
将该接口桥接到 br-wan。
此时即可成功 ping 通公网。
| 当前驱动支持 6G AP,但开源 nmcli 工具尚不支持配置 6G AP,需要等待上游更新;6G STA 已可使用。 |
首先添加 wlan0 接口。
root@BPI-R4:~# sudo iw phy phy0 interface add wlan0 type __ap
root@BPI-R4:~# ifconfig wlan0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:0c:43:26:60:10 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
启用 Wi-Fi,并设置 Wi-Fi 名称、AP 模式等。
root@BPI-R4:~# sudo nmcli radio wifi on
root@BPI-R4:~# sudo nmcli c add type wifi ifname wlan0 con-name test24G autoconnect no ssid hotspotname24G
Connection 'test24G' (02558bf7-6a8f-494d-a680-457985d03021) successfully added.
root@BPI-R4:~# sudo nmcli connection modify test24G 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared
设置 Wi-Fi 加密方式和密码。
root@BPI-R4:~# sudo nmcli c modify test5G 802-11-wireless-security.key-mgmt wpa-psk
root@BPI-R4:~# sudo nmcli c modify test5G 802-11-wireless-security.psk 12345678
启动 AP。
root@BPI-R4:~# sudo nmcli connection up test5G
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
连接名为 hotspotname24G 的 Wi-Fi。
| 5G 的设置与 2.4G 类似。 |
首先添加 wlan1 接口。
root@BPI-R4:~# sudo iw phy phy1 interface add wlan1 type __ap
root@BPI-R4:~# ifconfig wlan1
wlan1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:0c:43:26:60:11 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
启用 Wi-Fi,并设置 Wi-Fi 名称、AP 模式等。
root@BPI-R4:~# sudo nmcli radio wifi on
root@BPI-R4:~# sudo nmcli c add type wifi ifname wlan1 con-name test5G autoconnect no ssid hotspotname5G
Connection 'test5G' (cacedf66-d86c-42cd-845a-b3c2954dc03d) successfully added.
root@BPI-R4:~# sudo nmcli c modify test5G 802-11-wireless.mode ap 802-11-wireless.band a 802-11-wireless.channel 149 802-11-wireless.powersave 2 ipv4.method shared
设置 Wi-Fi 加密方式和密码。
root@BPI-R4:~# sudo nmcli c modify test5G 802-11-wireless-security.key-mgmt wpa-psk
root@BPI-R4:~# sudo nmcli c modify test5G 802-11-wireless-security.psk 12345678
启动 AP。
root@BPI-R4:~# sudo nmcli connection up test5G
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
连接名为 hotspotname5G 的 Wi-Fi。
| 5G 和 6G 的连接方式与 2.4G 类似,因此此处仅演示 2.4G 连接。 |
首先启用相应的接口配置。
root@BPI-R4:~# iw phy phy0 interface add wlan0 type station
root@BPI-R4:~# iw phy phy1 interface add wlan1 type station
root@BPI-R4:~# iw phy phy2 interface add wlan2 type station
root@BPI-R4:~# ifconfig wlan0 up
root@BPI-R4:~# ifconfig wlan1 up
root@BPI-R4:~# ifconfig wlan2 up
扫描并查找对应的 Wi-Fi。
| SSID 是 Wi-Fi 的名称。 |
root@BPI-R4:~# iw dev wlan0 scan | grep SSID
SSID: XXX
root@BPI-R4:~# iw dev wlan1 scan | grep SSID_5G
SSID: XXX_5G
创建用于连接的 Wi-Fi 配置文件:
root@BPI-R4:~# sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
内容如下:
network={
ssid="your_network_name"
psk="your_wifi_password"
key_mgmt=WPA2-PSK
}
使用该配置连接 Wi-Fi:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
检查连接状态:
root@BPI-R4:~# iw dev wlan0 link
Connected to fc:11:52:44:bb:67 (on wlan0)
SSID: XXX
freq: 2412
RX: 36384 bytes (546 packets)
TX: 0 bytes (182 packets)
signal: -34 dBm
rx bitrate: 195.0 MBit/s HE-MCS 9 HE-NSS 2 HE-GI 2 HE-DCM 0
tx bitrate: 1.0 MBit/s
bss flags: short-preamble short-slot-time
dtim period: 2
beacon int: 100
MTK OpenWrt MP4.0 风扇 PWM 控制参考。
root@R4RN:/# cat /sbin/fan-speed
#!/bin/sh /etc/rc.common
if [ ! -f /sys/class/pwm/pwmchip0/export ]; then
exit 0
fi
### enable fan ###
echo 0 > /sys/class/pwm/pwmchip0/export
echo 10000 > /sys/class/pwm/pwmchip0/pwm0/period
echo 7000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
echo normal > /sys/class/pwm/pwmchip0/pwm0/polarity
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
while :
do
sleep 20
result=`cat /sys/class/thermal/thermal_zone0/temp`
temperature=$((result))
#echo $temperature
if [ ${temperature} -ge 53000 ]; then
echo 5000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
if [ ${temperature} -ge 62000 ]; then
echo 1000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
if [ ${temperature} -le 4800 ]; then
echo 7000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
if [ ${temperature} -le 4000 ]; then
echo 10000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
done
root@R4RN:/#
| BPI-R4 26 Pin 排针(CON2)GPIO 定义 | |||
|---|---|---|---|
BPI-R4-CON2 |
PIN |
PIN |
BPI-R4-CON2 |
3.3VD |
1 |
2 |
5VD |
GPIO18/I2C_1_SDA |
3 |
4 |
5VD |
GPIO17/I2C_1_SCL |
5 |
6 |
GND |
GPIO62/JTAG_JTRST_N/PWM6 |
7 |
8 |
GPIO59/JTAG_JTDO/UART1_TX/UART2_TX |
GND |
9 |
10 |
GPIO58/JTAG_JTDI/UART1_RX/UART2_RX |
GPIO81/UART1_TXD |
11 |
12 |
GPIO51/PCM_CLK_I2S_BCLK |
GPIO80/UART1_RXD |
13 |
14 |
GND |
GPIO50/PCM_FS_I2S_LRCK |
15 |
16 |
GPIO61/JTAG_JTCLK/UART1_RTS/UART2_RTS |
3.3VD |
17 |
18 |
GPIO60/JTAG_JTMS/UART1_CTS/UART2_CTS |
GPIO30/SPI1_MOSI |
19 |
20 |
GND |
GPIO29/SPI1_MISO |
21 |
22 |
GPIO53/PCM_DTX_I2S_DOUT |
GPIO31/SPI1_CLK |
23 |
24 |
GPIO28/SPI1_CSB |
GND |
25 |
26 |
GPIO52/PCM_DRX_I2S_DIN |
| BPI-R4 M.2 B-KEY(CN16)GPIO 定义 | |||
|---|---|---|---|
BPI-R4 M.2 B-KEY(CN16) |
PIN |
PIN |
BPI-R4 M.2 B-KEY(CN16) |
NI |
1 |
2 |
VCC_KEYB |
GND |
3 |
4 |
VCC_KEYB |
GND |
5 |
6 |
NI(10K PullUp to 3.3V) |
USBHUB_USB1_Dp |
7 |
8 |
NI(10K PullUp to 3.3V) |
USBHUB_USB1_Dn |
9 |
10 |
LED |
GND |
11 |
12 |
NOTCH |
NOTCH |
13 |
14 |
|
15 |
16 |
||
17 |
18 |
||
19 |
20 |
NI |
|
NI |
21 |
22 |
NI |
NI(10K PullUp to 1.8V) |
23 |
24 |
NI |
NI |
25 |
26 |
NI(10K PullUp to 3.3V) |
GND |
27 |
28 |
NI |
USBHUB_USB1_RXn |
29 |
30 |
USIM_RST-1A |
USBHUB_USB1_RXp |
31 |
32 |
USIM_CLK-1A |
GND |
33 |
34 |
USIM_DATA-1A |
USBHUB_USB1_TXn |
35 |
36 |
USIM_VDD-1A |
USBHUB_USB1_TXp |
37 |
38 |
NI |
GND |
39 |
40 |
NI |
PCIE_1L_0_LN0_SOC_RXn |
41 |
42 |
NI |
PCIE_1L_0_LN0_SOC_RXp |
43 |
44 |
NI |
GND |
45 |
46 |
NI |
PCIE_1L_0_LN0_SOC_TXn |
47 |
48 |
NI |
PCIE_1L_0_LN0_SOC_TXp |
49 |
50 |
NGFF_PCIE_PERST_V3P3 |
GND |
51 |
52 |
NGFF_PCIE_CLKREQ_V3P3 |
PCIE_1L_0_SOC_CKn |
53 |
54 |
NGFF_PCIE_PEWAKE_V3P3 |
PCIE_1L_0_SOC_CKp |
55 |
56 |
NI |
GND |
57 |
58 |
NI |
NI |
59 |
60 |
NI |
NI |
61 |
62 |
NI |
NI |
63 |
64 |
NI |
NI |
65 |
66 |
USIM_DET-1A |
NI |
67 |
68 |
32KOUT |
NI |
69 |
70 |
VCC_KEYB |
GND |
71 |
72 |
VCC_KEYB |
GND |
73 |
74 |
VCC_KEYB |
NI |
75 |
||
| BPI-R4 M.2 M-KEY(CN18)GPIO 定义 | |||
|---|---|---|---|
BPI-R4 M.2 M-KEY(CN18) |
PIN |
PIN |
BPI-R4 M.2 M-KEY(CN18) |
GND |
1 |
2 |
VDD33_M2 |
GND |
3 |
4 |
VDD33_M2 |
NI |
5 |
6 |
NI |
NI |
7 |
8 |
NI |
GND |
9 |
10 |
LED |
NI |
11 |
12 |
VDD33_M2 |
NI |
13 |
14 |
VDD33_M2 |
GND |
15 |
16 |
VDD33_M2 |
NI |
17 |
18 |
VDD33_M2 |
NI |
19 |
20 |
NI |
GND |
21 |
22 |
NI |
NI |
23 |
24 |
NI |
NI |
25 |
26 |
NI |
GND |
27 |
28 |
NI |
NI |
29 |
30 |
NI |
NI |
31 |
32 |
NI |
GND |
33 |
34 |
NI |
NI |
35 |
36 |
NI |
NI |
37 |
38 |
NI |
GND |
39 |
40 |
NI |
PCIE_1L_1_LN0_SOC_RXn |
41 |
42 |
NI |
PCIE_1L_1_LN0_SOC_RXp |
43 |
44 |
NI |
GND |
45 |
46 |
NI |
PCIE_1L_1_LN0_SOC_TXn |
47 |
48 |
NI |
PCIE_1L_1_LN0_SOC_TXp |
49 |
50 |
NGFF_KEYM_PCIE_PERST_3VP3 |
GND |
51 |
52 |
NGFF_KEYM_PCIE_CLKREQ_V3P3 |
PCIE_1L_1_SOC_CKn |
53 |
54 |
NGFF_KEYM_PCIE_WAKE_V3P3 |
PCIE_1L_1_SOC_CKp |
55 |
56 |
I2C_SDA_KEYM |
GND |
57 |
58 |
I2C_SCL_KEYM |
NOCTH |
59 |
60 |
NOCTH |
61 |
62 |
||
63 |
64 |
||
65 |
66 |
||
NI |
67 |
68 |
32KOUT |
NI |
69 |
70 |
VDD33_M2 |
GND |
71 |
72 |
VDD33_M2 |
GND |
73 |
74 |
VDD33_M2 |
GND |
75 |
||
| BPI-R4 miniPCIe(CN12)GPIO 定义 | |||
|---|---|---|---|
BPI-R4 miniPCIe(CN12) |
PIN |
PIN |
BPI-R4 miniPCIe(CN12) |
PCIE_2L_0_WAKE_N(1.8V) |
1 |
2 |
PCIe_3V3#2 |
NI |
3 |
4 |
GND |
NI |
5 |
6 |
PCIe_12V#2 |
PCIE_2L_0_CLKREQ_N |
7 |
8 |
USIM_VDD-2 |
GND |
9 |
10 |
USIM_DATA-2 |
PCIE_2L_0_SOC_CKn |
11 |
12 |
USIM_CLK-2 |
PCIE_2L_0_SOC_CKp |
13 |
14 |
USIM_RST-2 |
GND |
15 |
16 |
NI |
PCIE_2L_0_LN1_SOC_RXn |
17 |
18 |
GND |
PCIE_2L_0_LN1_SOC_RXp |
19 |
20 |
NI |
GND |
21 |
22 |
PCIE_2L_0_PRESET_N(1.8V) |
PCIE_2L_0_LN0_SOC_RXn |
23 |
24 |
PCIe_3V3#2 |
PCIE_2L_0_LN0_SOC_RXp |
25 |
26 |
GND |
GND |
27 |
28 |
PCIe_12V#2 |
GND |
29 |
30 |
I2C_SCL_WiFi |
PCIE_2L_0_LN0_SOC_TXn |
31 |
32 |
I2C_SDA_WiFi |
PCIE_2L_0_LN0_SOC_TXp |
33 |
34 |
GND |
GND |
35 |
36 |
USBHUB_USB3_Dn |
GND |
37 |
38 |
USBHUB_USB3_Dp |
PCIe_3V3#2 |
39 |
40 |
GND |
PCIe_3V3#2 |
41 |
42 |
LTE_LED-2 |
GND |
43 |
44 |
USIM_DET-2 |
PCIE_2L_0_LN1_SOC_TXn |
45 |
46 |
NI |
PCIE_2L_0_LN1_SOC_TXp |
47 |
48 |
PCIe_12V#2 |
GND |
49 |
50 |
GND |
MT7996_EINT_RESETB(1.8V) |
51 |
52 |
PCIe_3V3#2 |
| BPI-R4 miniPCIe(CN14)GPIO 定义 | |||
|---|---|---|---|
BPI-R4 miniPCIe(CN14) |
PIN |
PIN |
BPI-R4 miniPCIe(CN14) |
PCIE_2L_1_WAKE_N(1.8V) |
1 |
2 |
PCIe_3V3#1 |
NI |
3 |
4 |
GND |
NI |
5 |
6 |
PCIe_12V#1 |
PCIE_2L_1_CLKREQ_N |
7 |
8 |
USIM_VDD-3 |
GND |
9 |
10 |
USIM_DATA-3 |
PCIE_2L_1_SOC_CKn |
11 |
12 |
USIM_CLK-3 |
PCIE_2L_1_SOC_CKp |
13 |
14 |
USIM_RST-3 |
GND |
15 |
16 |
NI |
PCIE_2L_1_LN1_SOC_RXn |
17 |
18 |
GND |
PCIE_2L_1_LN1_SOC_RXp |
19 |
20 |
NI |
GND |
21 |
22 |
PCIE_2L_1_PRESET_N(1.8V) |
PCIE_2L_1_LN0_SOC_RXn |
23 |
24 |
PCIe_3V3#1 |
PCIE_2L_1_LN0_SOC_RXp |
25 |
26 |
GND |
GND |
27 |
28 |
PCIe_12V#1 |
GND |
29 |
30 |
I2C_SCL_WiFi |
PCIE_2L_1_LN0_SOC_TXn |
31 |
32 |
I2C_SDA_WiFi |
PCIE_2L_1_LN0_SOC_TXp |
33 |
34 |
GND |
GND |
35 |
36 |
USBHUB_USB2_Dn |
GND |
37 |
38 |
USBHUB_USB2_Dp |
PCIe_3V3#1 |
39 |
40 |
GND |
PCIe_3V3#1 |
41 |
42 |
LTE_LED-3 |
GND |
43 |
44 |
USIM_DET-3 |
PCIE_2L_1_LN1_SOC_TXn |
45 |
46 |
NI |
PCIE_2L_1_LN1_SOC_TXp |
47 |
48 |
PCIe_12V#1 |
GND |
49 |
50 |
GND |
NI |
51 |
52 |
PCIe_3V3#1 |
| BPI-R4 5V/12V 输出(CN19,XH4A-2.54mm) | |
|---|---|
BPI-R4 5V/12V OUT |
PIN |
+12V |
1 |
GND |
2 |
GND |
3 |
+5V |
4 |
| BPI-R4 风扇(CN1,PH3A-2.00mm) | |
|---|---|
+5V |
1 |
GND |
2 |
PWM0 |
3 |
| BPI-R4 调试 UART(CON1,3PIN-2.54mm) | |
|---|---|
BPI-R4 Debug UART |
PIN |
GND |
1 |
RXD |
2 |
TXD |
3 |