BPI-M8 搭载高性能八核 AI 平台芯片 A733,集成 2 个 Arm® Cortex®-A76 核心和 6 个 Arm Cortex-A55 核心。该平台支持 Imagination PowerVR BXM-4-64 MC1 GPU、3 TOPS NPU、LPDDR4/LPDDR4x/LPDDR5 DRAM,以及 UFS/eMMC 存储。
BPI-M8 提供丰富的外设接口,包括 USB、DP、UFS、HDMI、MIPI CSI、MIPI DSI、风扇、RTC,以及 1 个支持 PoE 的千兆以太网口。开发板支持从 SD 卡启动,板载 KEIIOT K038 WiFi/蓝牙芯片,并配备 4 GB LPDDR5 RAM、32 GB eMMC 存储和两个 12 mm × 12 mm 单天线模块。 目录
| 更多信息:Banana Pi BPI-M8 |
Windows PC
使用 balenaEtcher 安装镜像。
balenaEtcher 是 Balena 开发的开源图形化烧录工具,可将操作系统镜像写入 SD 卡或 USB 存储设备。
单击“Flash from file”选择镜像。
单击“Select target”选择目标设备。
单击“Flash!”开始烧录。
Linux PC
有两种方法供您选择。
在 Linux 上使用 dd 命令写入镜像。如果系统自动挂载了 SD 卡设备 /dev/sdX 的分区,请先卸载。bpi-copy 实际执行的操作与此 dd 命令相同。
$ sudo apt-get install pv unzip
$ sudo unzip -p xxx-bpi-m2-ultra-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer
在 Linux 上使用 bpi-tools 安装镜像:将 SD 卡插入 Linux PC,然后执行以下命令。
$ sudo apt-get install pv unzip
$ sudo bpi-copy xxx-bpi-m2-ultra-xxx.img.zip /dev/sdX
将 SD 卡插入 M8 并启动。
将待烧录镜像保存到 U 盘,然后将 U 盘连接到 M8。
使用 lsblk 命令查询 USB 设备。
root@bananapim8:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 0B 0 disk
sdb 8:16 1 0B 0 disk
mmcblk1 179:0 0 29.1G 0 disk
mmcblk0 179:8 0 7.4G 0 disk
├─mmcblk0p1 179:9 0 256M 0 part /boot
└─mmcblk0p2 179:10 0 7G 0 part /var/log.hdd
/
zram0 254:0 0 1.9G 0 disk [SWAP]
zram1 254:1 0 50M 0 disk /var/log
zram2 254:2 0 0B 0 disk
使用 mount 命令挂载 U 盘,并进入存放镜像的目录。
root@bananapim8:/mnt/M8# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 0B 0 disk
sdb 8:16 1 0B 0 disk
sdc 8:32 1 59.5G 0 disk
└─sdc1 8:33 1 59.5G 0 part /mnt
sdd 8:48 1 0B 0 disk
mmcblk1 179:0 0 29.1G 0 disk
mmcblk0 179:8 0 7.4G 0 disk
├─mmcblk0p1 179:9 0 256M 0 part /boot
└─mmcblk0p2 179:10 0 7G 0 part /var/log.hdd
/
zram0 254:0 0 1.9G 0 disk [SWAP]
zram1 254:1 0 50M 0 disk /var/log
zram2 254:2 0 0B 0 disk
root@bananapim8:/mnt/M8# ls
Bananapi-Armbian_26.05.0-trunk_Bananapim8_bookworm_legacy_5.15.147_xfce_desktop.img
使用 dd 命令烧录镜像。
root@bananapim8:/mnt/M8# ls
Bananapi-Armbian_26.05.0-trunk_Bananapim8_bookworm_legacy_5.15.147_xfce_desktop.img
root@bananapim8:/mnt/M8# dd if=Bananapi-Armbian_26.05.0-trunk_Bananapim8_bookworm_legacy_5.15.147_xfce_desktop.img of=/dev/mmcblk1
输入了 10723328+0 块记录
输出了 10723328+0 块记录
5490343936 字节 (5.5 GB, 5.1 GiB) 已复制,240.847 s,22.8 MB/s
取出 SD 卡,再次为 M8 上电,即可从 eMMC 启动。
将需要使用的 USB 设备连接到 M8。
root@bananapim8:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 0B 0 disk
sdb 8:16 1 0B 0 disk
sdc 8:32 1 59.5G 0 disk
└─sdc1 8:33 1 59.5G 0 part
sdd 8:48 1 0B 0 disk
mmcblk1 179:0 0 29.1G 0 disk
mmcblk0 179:8 0 7.4G 0 disk
├─mmcblk0p1 179:9 0 256M 0 part /boot
└─mmcblk0p2 179:10 0 7G 0 part /var/log.hdd
/
zram0 254:0 0 1.9G 0 disk [SWAP]
zram1 254:1 0 50M 0 disk /var/log
zram2 254:2 0 0B 0 disk
root@bananapim8:~# lsusb
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0bda:0301 Realtek Semiconductor Corp. multicard reader
Bus 001 Device 002: ID 1a86:8091 QinHeng Electronics USB HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
将网线连接到网络端口。
root@bananapim8:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
3: ip6_vti0@NONE: <NOARP> mtu 1364 qdisc noop state DOWN group default qlen 1000
link/tunnel6 :: brd :: permaddr 96a4:9905:4718::
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
5: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
link/tunnel6 :: brd :: permaddr c660:9fcf:33dc::
6: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether d0:96:16:de:fa:97 brd ff:ff:ff:ff:ff:ff
inet 10.168.1.199/24 brd 10.168.1.255 scope global dynamic noprefixroute end0
valid_lft 43022sec preferred_lft 43022sec
inet6 fd0b:9aaf:b1a:0:5525:fc96:c1bb:9b64/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::289c:25a6:4957:e0d9/64 scope link noprefixroute
valid_lft forever preferred_lft forever
root@bananapim8:~# ping baidu.com
PING baidu.com (124.237.177.164) 56(84) bytes of data.
64 bytes from 124.237.177.164 (124.237.177.164): icmp_seq=1 ttl=52 time=35.0 ms
64 bytes from 124.237.177.164 (124.237.177.164): icmp_seq=2 ttl=52 time=34.6 ms
64 bytes from 124.237.177.164 (124.237.177.164): icmp_seq=3 ttl=52 time=34.6 ms
^C64 bytes from 124.237.177.164: icmp_seq=4 ttl=52 time=34.4 ms
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 15651ms
rtt min/avg/max/mdev = 34.434/34.657/34.988/0.203 ms
使用 iperf3 测试时,网口速率通常约为 1 Gbps。
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 111 MBytes 928 Mbits/sec
[ 5] 1.00-2.00 sec 110 MBytes 921 Mbits/sec
[ 5] 2.00-3.00 sec 111 MBytes 933 Mbits/sec
[ 5] 3.00-4.00 sec 112 MBytes 938 Mbits/sec
[ 5] 4.00-5.00 sec 112 MBytes 938 Mbits/sec
[ 5] 5.00-6.00 sec 112 MBytes 938 Mbits/sec
[ 5] 6.00-7.00 sec 112 MBytes 938 Mbits/sec
[ 5] 7.00-8.00 sec 112 MBytes 938 Mbits/sec
[ 5] 8.00-9.00 sec 112 MBytes 936 Mbits/sec
[ 5] 9.00-10.00 sec 112 MBytes 938 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec receiver
iperf Done.
使用 nmcli 命令连接 WiFi。
sudo nmcli dev wifi connect "<SSID>" password "<password>" //connect WiFi
sudo nmcli connection down "SSID" //disconnect WiFi
完成后即可使用 WiFi。
root@bananapim8:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
3: ip6_vti0@NONE: <NOARP> mtu 1364 qdisc noop state DOWN group default qlen 1000
link/tunnel6 :: brd :: permaddr b621:40ef:3118::
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
5: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
link/tunnel6 :: brd :: permaddr 2af0:cf62:c68a::
6: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 88:49:2d:60:20:3e brd ff:ff:ff:ff:ff:ff
7: p2p0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 8a:49:2d:60:20:3e brd ff:ff:ff:ff:ff:ff
inet 10.168.1.160/24 brd 10.168.1.255 scope global dynamic noprefixroute p2p0
valid_lft 43193sec preferred_lft 43193sec
inet6 fe80::e2d8:3f6a:f09d:f52b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
8: wlan1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 82:49:2d:60:20:3e brd ff:ff:ff:ff:ff:ff
9: end0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether b4:7a:5c:89:ac:59 brd ff:ff:ff:ff:ff:ff
root@bananapim8:~# ping baidu.com
PING baidu.com (124.237.177.164) 56(84) bytes of data.
64 bytes from 124.237.177.164 (124.237.177.164): icmp_seq=1 ttl=52 time=146 ms
64 bytes from 124.237.177.164 (124.237.177.164): icmp_seq=2 ttl=52 time=98.4 ms
64 bytes from 124.237.177.164 (124.237.177.164): icmp_seq=3 ttl=52 time=97.8 ms
^C64 bytes from 124.237.177.164: icmp_seq=4 ttl=52 time=99.5 ms
通过 HDMI 线连接到显示器。
短按 PWR 按钮即可关闭电源。
关闭时会出现如下日志:
root@bananapim8:~#
[ 2010.090118][ T1] npu[1][1] unregister cooling
[ 2010.095369][ T1] npu[1][1] remove opp freq: 492000000
[ 2010.101349][ T1] npu[1][1] remove opp freq: 852000000
[ 2010.107323][ T1] npu[1][1] remove opp freq: 1008000000
[ 2010.113401][ T1] sunxi:vin:[WARN]: video0 device have been closed!
[ 2010.193946][ T1] reboot: Power down
长按 PWR 按钮开机。
使用 aplay 命令可看到 M8 声卡提供两个输出:
HP 耳机输出
HDMI 输出
root@bananapim8:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndi2s0 [sndi2s0], device 0: sunxi-snd-plat-i2s-ac101-codec sunxi-ac101.15-001a-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: allwinnerhdmi [allwinner-hdmi], device 0: sunxi-snd-plat-i2s-sunxi-snd-codec-hdmi soc@3000000:hdmi_codec- []
Subdevices: 1/1
Subdevice #0: subdevice #0
连接间距为 2 mm 的电池,为 RTC 供电。
查看系统 RTC 配置
root@bananapim8:~# dmesg | grep -Ei "rtc|sunxi-rtc"
[ 0.054099] sunxi:ccu-ng:[INFO]: sunxi rtc-ccu version: 0.5.5
[ 0.065807] sunxi:ccu-ng:[INFO]: rtc_ccu: sunxi ccu init OK
[ 0.201736] axp8191-rtcldo: supplied by regulator-dummy
[ 2.838689] sunxi-rtc 7090000.rtc: errata__fix_alarm_day_reg_default_value(): ALARM0_DAY_REG=0, set it to 1
[ 2.850795] sunxi-rtc 7090000.rtc: registered as rtc0
[ 2.857255] sunxi-rtc 7090000.rtc: sunxi rtc probed
[ 5.509982] [drm] sunxi_de_bind crtc init for de 0 ok
[ 5.517001] [drm] sunxi_de_bind crtc init for de 1 ok
[ 21.530070] [drm] [SUNXI-CRTC]sunxi_crtc_atomic_enable
设置 RTC 时间
root@bananapim8:~# date -s "2026-08-20 16:30:00" //Set system time
2026年 08月 20日 星期四 16:30:00 CST
root@bananapim8:~# hwclock -w -f /dev/rtc0 //RTC writing time
root@bananapim8:~# hwclock -r -f /dev/rtc0 //RTC reading time
2026-08-20 16:30:28.460504+08:00
root@bananapim8:~# date //Query system time
2026年 08月 20日 星期四 16:30:42 CST
root@bananapim8:~# hwclock -r -f /dev/rtc0
2026-08-20 16:30:52.447590+08:00
关闭电源以验证 RTC 是否工作
root@bananapim8:~# date -s "2026-08-20 16:30:00" //Set system time
2026年 08月 20日 星期四 16:30:00 CST
root@bananapim8:~# hwclock -w -f /dev/rtc0 //RTC writing time
root@bananapim8:~# hwclock -r -f /dev/rtc0 //RTC reading time
2026-08-20 16:30:28.460504+08:00
root@bananapim8:~# date //Query system time
2026年 08月 20日 星期四 16:30:42 CST
root@bananapim8:~# hwclock -r -f /dev/rtc0
2026-08-20 16:30:52.447590+08:00
断电数分钟后,RTC 时钟仍在运行,而系统时钟已经停止了数分钟。
root@bananapim8:~# date
2026年 08月 20日 星期四 16:41:54 CST
root@bananapim8:~# hwclock -r -f /dev/rtc0
2026-08-20 16:43:04.558201+08:00
查询系统中的风扇控制 PWM 设备
root@bananapim8:~# cat /sys/class/hwmon/hwmon0/name
pwmfan
root@bananapim8:~# ls /sys/class/hwmon/
hwmon0
使用命令控制风扇开关
root@bananapim8:~# echo 1 > /sys/class/hwmon/hwmon0/pwm1
root@bananapim8:~# echo 0 > /sys/class/hwmon/hwmon0/pwm1
| Banana Pi BPI-M8 的 40 针 GPIO | |
|---|---|
引脚号 |
引脚名称 |
1 |
DCDC1 |
2 |
VBUS-AXP318 |
3 |
PJ23/TWI7-SDA |
4 |
VBUS-AXP318 |
5 |
PJ22/TWI7-SCK |
6 |
GND |
7 |
PL05/PWM0-3 |
8 |
PB00/UART2-TX |
9 |
GND |
10 |
PB01/UART2-RX |
11 |
PL12/S-UART1-TX |
12 |
HD-PIN12 |
13 |
PL13/S-UART1-RX |
14 |
GND |
15 |
PL06/S-UART0-TX |
16 |
PB02/UART2-RTS |
17 |
DCDC1 |
18 |
PB03/UART2-CTS |
19 |
PJ25/SPI3-MOSI |
20 |
GND |
21 |
PJ26/SPI3-MISO |
22 |
HD-PIN22 |
23 |
PJ24/SPI3-CLK |
24 |
HD-PIN24 |
25 |
GND |
26 |
PJ27/SPI3-CS0 |
27 |
HD-PIN27 |
28 |
HD-PIN28 |
29 |
PL07/S-UART0-RX |
30 |
GND |
31 |
HD-PIN31 |
32 |
HD-PIN32 |
33 |
HD-PIN33 |
34 |
GND |
35 |
HD-PIN35 |
36 |
HD-PIN36 |
37 |
HD-PIN37 |
38 |
HD-PIN38 |
39 |
GND |
40 |
HD-PIN40 |
| Banana Pi BPI-M8 的 MIPI CSIA | |
|---|---|
引脚号 |
引脚名称 |
1 |
MCSIA-D3N |
2 |
MCSIA-D3P |
3 |
GND |
4 |
MCSIA-D2N |
5 |
MCSIA-D2P |
6 |
GND |
7 |
NC |
8 |
NC |
9 |
GND |
10 |
MCSIA-D1N |
11 |
MCSIA-D1P |
12 |
GND |
13 |
MCSIA-D0N |
14 |
MCSIA-D0P |
15 |
GND |
16 |
MCSIA-CKN |
17 |
MCSIA-CKP |
18 |
GND |
19 |
PE00/MCSI-A-MCLK |
20 |
PE06/MCSI-A-STBY |
21 |
PE07/MCSI-A-RST |
22 |
PE10/TWI4-SCK |
23 |
PE11/TWI4-SDA |
24 |
GND |
25 |
NC |
26 |
NC |
27 |
NC |
28 |
NC |
29 |
NC |
30 |
VCC1V8_CSI0 |
31 |
GND |
32 |
GND |
33 |
VCC3V3_CSI0 |
34 |
VCC3V3_CSI0 |
35 |
VCC3V3_CSI0 |
36 |
GND |
37 |
GND |
| Banana Pi BPI-M8 的 MIPI CSIB | |
|---|---|
引脚号 |
引脚名称 |
1 |
MCSIB-D3N |
2 |
MCSIB-D3P |
3 |
GND |
4 |
MCSIB-D2N |
5 |
MCSIB-D2P |
6 |
GND |
7 |
NC |
8 |
NC |
9 |
GND |
10 |
MCSIB-D1N |
11 |
MCSIB-D1P |
12 |
GND |
13 |
MCSIB-D0N |
14 |
MCSIB-D0P |
15 |
GND |
16 |
MCSIB-CKN |
17 |
MCSIB-CKP |
18 |
GND |
19 |
PE05/MCSI-B-MCLK |
20 |
PE08/MCSI-B-STBY |
21 |
PE09/MCSI-B-RST |
22 |
PE03/TWI3-SCK |
23 |
PE04/TWI3-SDA |
24 |
GND |
25 |
AP-NMI |
26 |
PMU-PWRON |
27 |
AP-RESET |
28 |
PMU-SCK |
29 |
PMU-SDA |
30 |
VCC1V8_CSI1 |
31 |
GND |
32 |
GND |
33 |
VCC3V3_CSI1 |
34 |
VCC3V3_CSI1 |
35 |
VCC3V3_CSI1 |
36 |
GND |
37 |
GND |
| Banana Pi BPI-M8 的 PCIe+DP | |
|---|---|
引脚号 |
引脚名称 |
1 |
COMB1-TX0P |
2 |
COMB1-TX0N |
3 |
GND |
4 |
COMB1-RX0P |
5 |
COMB1-RX0N |
6 |
GND |
7 |
COMB1-REFP |
8 |
COMB1-REFN |
9 |
GND |
10 |
DP_TX0P |
11 |
DP_TX0N |
12 |
GND |
13 |
DP_TX1P |
14 |
DP_TX1N |
15 |
GND |
16 |
DP_AUXP |
17 |
DP_AUXN |
18 |
DP_HPD |
19 |
HOST-D4M |
20 |
HOST-D4P |
21 |
GND |
22 |
PCIE-PERSTn-3p3V |
23 |
PCIE-WAKEn-3p3v |
24 |
PCIE-CLKREQn-3p3v |
25 |
PCIE-PWREN-3p3v |
26 |
VDD1P8V-PCIe |
27 |
GND |
28 |
GND |
29 |
VDD5P0V-PCIe |
30 |
VDD5P0V-PCIe |
31 |
VDD5P0V-PCIe |
32 |
GND |
33 |
GND |
| Banana Pi BPI-M8 的 MIPI DSI0 | |
|---|---|
引脚号 |
引脚名称 |
1 |
MIPI-DSI0-D0N |
2 |
MIPI-DSI0-D0P |
3 |
GND |
4 |
MIPI-DSI0-D0P |
5 |
MIPI-DSI0-D1P |
6 |
GND |
7 |
MIPI-DSI0-CKN |
8 |
MIPI-DSI0-CKP |
9 |
GND |
10 |
MIPI-DSI0-D2N |
11 |
MIPI-DSI0-D2P |
12 |
GND |
13 |
MIPI-DSI0-D3N |
14 |
MIPI-DSI0-D3P |
15 |
GND |
16 |
GPADC6 |
17 |
PD18/LCD-PWREN |
18 |
PD21/LCD-RST |
19 |
PD19/LCD-BLEN |
20 |
PD22/LCD-PWM |
21 |
GND |
22 |
PD23/TP-INT |
23 |
PD20/TP-RST |
24 |
PD16/TWI2-SCK |
25 |
PD17/TWI2-SDA |
26 |
VDD1P8V-DSI0 |
27 |
GND |
28 |
GND |
29 |
VDD5P0V-DSI0 |
30 |
VDD5P0V-DSI0 |
31 |
VDD5P0V-DSI0 |
32 |
GND |
33 |
GND |