BPI-M4 Berry 是一款功能强大的单板计算机(SBC),搭载 Allwinner H618 片上系统(SoC),为开发者提供良好的性能和丰富的功能。与 Raspberry Pi 4B 相似,BPI-M4 Berry 具有相近的 CPU 性能,支持 LPDDR4 内存,集成 WiFi 和蓝牙,并提供常见的 40 针排针、四个 USB 接口及一个 GbE RJ45 网口。
BPI-M4 Berry 凭借稳定的性能、丰富的功能和出色的图像处理能力,可作为嵌入式与计算行业的 SBC 开发平台。它配备 8 GB eMMC 闪存,具备高性能视频编解码能力和多种接口,可用于媒体处理、物联网、娱乐等场景。无论初学者还是有经验的开发者,都可使用它实现自己的创意和项目目标。
| 更多信息: 香蕉派 BPI-M4 Berry 主页 |
Allwinner H618,四核 ARM Cortex™-A53 处理器
Arm Mali-G31 GPU
WiFi 和蓝牙
2G LPDDR4 RAM
8G eMMC 闪存
1 × USB 2.0 Type-C OTG,支持 5 V 供电
4 × USB 2.0 Type-A
1 × HDMI 2.0a
1 × 3.5 mm 音频/TVE 插孔
1 × GbE 以太网接口
下载最新的 Android 镜像.
下载并安装 Allwinner 镜像下载工具;PhoenixSuit 适用于 Windows。
Type-C 数据线和 5 V 电源。
打开 PhoenixSuit,单击 Firmware 图标切换到固件下载面板,然后单击 Image 按钮并选择 Android 镜像文件。
按住 M4 Berry 上的“FEL”键,同时使用 Type-C 数据线连接电脑。弹出警告对话框后,单击“Yes”。
开始下载
下载完成
Linux 镜像支持从 SD 卡或 eMMC 启动;插入 SD 卡时会优先从 SD 卡启动。
推荐使用容量至少为 8 GB 的 A1 等级存储卡。
如果要从 SD 卡启动,请先格式化带有可启动系统的 eMMC。
如果要从 eMMC 启动并将 SD 卡用作存储,请确保 SD 卡已经格式化且未写入 Linux 镜像。
下载最新 Linux 镜像,并确认 MD5 校验值正确。
默认登录: pi/bananapi 或 root/1234
本 Wiki 指南仅适用于 Ubuntu/Debian 镜像。
可使用以下两种方法写入镜像,任选一种即可。
使用 Balena Etcher 安装镜像,支持 Windows、Linux 和 macOS。
Balena Etcher 是 Balena 提供的开源图形化镜像写入工具,可将操作系统镜像写入 SD 卡或 U 盘。
在 Ubuntu 等 Linux 桌面系统中,可能需要先授予 AppImage 文件执行权限;使用 Windows 时跳过此步骤。
右键单击 AppImage 文件,然后单击 Properties.
选择 Permissions,启用 Allow executing file as program,然后关闭窗口。
运行 Balena Etcher,单击 Flash from file 选择镜像。
点击 Select target 选择 USB 设备。
单击 Flash! 开始写入。
使用 Balena CLI 安装镜像,支持 Windows、Linux 和 macOS。
Balena CLI 是 balenaCloud/openBalena 的命令行工具,也可用于写入 Linux 镜像。
从 Balena CLI Releases 下载适用的安装程序或独立软件包。
按照 安装说明 将其正确安装到电脑。
使用 Balena 的 util available-drives 命令列出可用于写入操作系统镜像的存储设备。
balena util available-drives
然后使用 Balena 的 local flash 命令将 Linux 镜像写入 SD 卡或 U 盘。
| 请将镜像文件路径改为实际路径,并将设备参数改为要写入的目标设备。 |
在 Windows 中直接执行以下命令:
balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive \\.\PhysicalDrive2
在 Linux 中,可能需要使用 sudo 获取 root 权限后执行:
sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2
Windows 中的日志如下:
PS D:\temp\Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31> balena util available-drives
DEVICE SIZE DESCRIPTION
\\.\PhysicalDrive2 7.9 GB SDHC Card
PS D:\temp\Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31> balena local flash .\Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31.img --drive \\.\PhysicalDrive2
? This will erase the selected drive. Are you sure? Yes
Flashing [========================] 100% eta 0s
Validating [========================] 100% eta 0s
确保 Linux 镜像已烧录到 SD 卡,并且开发板能够正常启动。
在终端中输入以下命令。
sudo armbian-config
(如果使用最小版本镜像,请先参阅 这里。)
请按照以下步骤将 Linux 系统镜像安装到 eMMC。
选择 Ststem。
选择 Install。
选择 Boot from eMMC。
选择 Yes。
选择 ext4。
等几分钟。此时请勿关闭或重新启动开发板。
最后关闭开发板并断开电源,取出 SD 卡后重新接通电源,开发板即可从 eMMC 启动。
确保 Linux 镜像已烧录到 SD 卡中并插入 SD 卡。默认情况下,它将从 SD 卡启动。
在终端中输入 lsblk,列出系统中的硬盘、分区等块设备信息。
pi@bpi-m4berry:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk0 179:0 0 7.4G 0 disk
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd
/
mmcblk1 179:32 0 7.3G 0 disk
└─mmcblk1p1 179:33 0 7.3G 0 part
mmcblk1boot0 179:64 0 4M 1 disk
mmcblk1boot1 179:96 0 4M 1 disk
zram0 252:0 0 993.2M 0 disk [SWAP]
zram1 252:1 0 50M 0 disk /var/log
zram2 252:2 0 0B 0 disk
mmcblk0 是 SD 卡,mmcblk1 是 eMMC。在终端中输入以下命令擦除 eMMC。此过程需要几分钟且不可逆,请事先备份重要数据。
sudo dd if=/dev/zero of=/dev/mmcblk1
使用 Ubuntu/Debian 桌面版系统镜像即可获得图形界面。
准备一台带 HDMI 接口的显示器和一根 HDMI 线。
用 HDMI 线连接显示器与 BPI-M4 Berry,将显示器切换到对应的 HDMI 输入源。开发板开机后稍等片刻即可看到桌面。
Linux 桌面环境
准备好网线和路由器。
用网线将路由器的一个 LAN 口连接到 BPI-M4 Berry,并将 PC 连接到另一个 LAN 口。
在路由器管理界面中查看 BPI-M4 Berry 的 IP 地址,或在 BPI-M4 Berry 的 UART 终端中使用以下命令查看 IP 地址。
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20<link>
ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)
RX packets 553 bytes 92549 (92.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 329 bytes 26023 (26.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 42
以 MobaXterm 为例,在 IP 地址栏中填写获取到的地址(如上面的 192.168.3.10),端口填写 22。
打开 SSH 终端并输入用户名和密码:pi/bananapi 或 root/1234(如果已经修改过密码,请使用新密码
)。输入密码时终端不会显示任何字符,正常输入并按 Enter 键即可。
确保 BPI-M4 Berry 已连接互联网,然后使用以下命令在系统中下载 NoMachine DEB 安装包。
wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.13.1_1_arm64.deb
也可以在 PC 浏览器中打开 NoMachine for ARM - arm64 下载页面,下载 DEB 安装包后,通过 SSH 或 U 盘将其复制到 BPI-M4 Berry 的用户目录。
下载完成后,使用以下命令安装。文件名请以实际下载的文件为准。
sudo dpkg -i nomachine_8.13.1_1_arm64.deb
PC 端也需要安装 NoMachine。请在 NoMachine 下载页面选择适合 PC 操作系统的安装包,下载并完成安装。
确保 PC 与 BPI-M4 Berry 位于同一局域网。可以先尝试建立 SSH 连接,确认两者能够正常通信。
在 PC 上打开 NoMachine,单击添加按钮,在新窗口的 Host 栏中输入 BPI-M4 Berry 的 IP 地址,然后单击 Add。
单击识别出的设备图标,在弹出的新窗口中输入用户名和密码,然后单击 OK。
完成后续设置后即可看到远程桌面。
| 提示:如果 HDMI 接口未连接任何设备,NoMachine 远程桌面可能显示黑屏。建议保持 HDMI 显示器连接,或接入 HDMI 虚拟显示器适配器(dummy plug)。 |
无需额外安装,直接运行以下命令即可进入 armbian-config。
sudo armbian-config
可以使用 nmcli 命令扫描 Wi-Fi 热点、连接热点以及创建 AP 热点。
nmcli device #List devices
nmcli device wifi list # List available wifi access points, list can be omitted
nmcli device wifi connect [SSID] password [PASSWORD] # Connect to the hotspot mySSID.
#After the connection is successful, the configuration file will be automatically generated.
#If you want to connect again in the future, you can use the nmcli connection up [SSID] command.
nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command
nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot
nmcli connection show #List network connection configuration
nmcli connection down [NAME] # Deactivate a connection
nmcli connection up [NAME] # Activate a connection
nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect
nmcli radio wifi off # Turn off wifi
nmcli radio wifi on # Turn on wifi
设置静态 IP 前,需要先建立并保持相应的网络连接。设置以太网静态 IP 时先保持以太网连接;设置无线网络静态 IP 时先保持 Wi-Fi 连接。
如果上级路由器已将准备使用的 IP 地址分配给其他设备,请改用空闲 IP,或先让该设备释放此 IP。
使用 nmcli connection show 命令显示所有连接,例如:
pi@bpi-m4berry:~$ nmcli connection show
NAME UUID TYPE DEVICE
TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7
Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --
使用 nmcli connection show [NAME] 命令显示指定连接的全部属性,例如:
nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1
#Only list three common items
ipv4.dns: 192.168.3.1 #The default is the gateway address
ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP
ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router
设置静态IP:
nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2
设置DNS:
nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS
重置:
reboot
重启后查看是否修改成功:
ifconfig
nmcli connection show TP-LINK_5G_7747
Chrony 是一款开源免费网络时间协议 NTP 客户端和服务器软件。它允许计算机保持系统时钟与时钟服务器同步 (NTP),从而让您的计算机保持准确的时间。 Chrony还可以作为服务器软件,为其他计算机提供时间同步服务。
timedatectl set-ntp false #Disable NTP-based network time synchronization
sudo apt install chrony #Install chrony
systemctl start chrony #Start chrony
systemctl enable chrony
systemctl status chrony
systemctl restart chrony #Restart service
timedatectl status #View time synchronization status
timedatectl list-timezones #View time zone list
timedatectl set-timezone Asia/Shanghai #Modify time zone
timedatectl set-ntp true #Enable NTP network time synchronization
date #View time
sudo hwclock -r #View hardware clock
可以使用以下四个命令查看各温度传感器对应的硬件。
cat /sys/class/thermal/thermal_zone0/type
cat /sys/class/thermal/thermal_zone1/type
cat /sys/class/thermal/thermal_zone2/type
cat /sys/class/thermal/thermal_zone3/type
然后使用以下命令分别查看温度。
cat /sys/class/thermal/thermal_zone0/temp
cat /sys/class/thermal/thermal_zone1/temp
cat /sys/class/thermal/thermal_zone2/temp
cat /sys/class/thermal/thermal_zone3/temp
读取到的温度值需要除以 1000,单位为摄氏度。
例如,将 CPU 温度读数除以 1000 后得到 54.17 摄氏度。
准备一个已正常分区的 U 盘,并将其插入 BPI-M4 Berry 的 USB 接口。
在 Ubuntu 桌面版中,系统识别 U 盘后可以通过文件管理器打开,也可以使用 GParted 工具管理分区。
在终端中,将 U 盘挂载到本地目录:
mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management
cat /proc/partitions | grep "sd*" #List partitions starting with sd
sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/
ls ~/mnt/ #After mounting, you can list the files in the USB disk
sudo umount -v /dev/sda1 #umount, then you can remove the USB disk
准备一个音频文件,通过 U 盘或 SSH 将其复制到 BPI-M4 Berry 的 Ubuntu 桌面系统中。
准备一台支持 HDMI 音频输入的显示器,在显示器设置中启用相关功能,并使用 HDMI 线连接显示器。
在系统设置的声音选项中,将输出设备设置为 HDMI Audio。
播放音频。
准备耳机或其他使用 3.5 mm 插头的音频设备,将插头插入 BPI-M4 Berry 的 3.5 mm 插孔。
在系统设置的声音选项中,将输出设备设置为 Audio Codec。
播放音频。
可以查询 BPI-M4 Berry 上的音频设备:
aplay -l #List devices
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: soc@3000000:codec_plat-5096000.codec 5096000.codec-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: ahubhdmi [ahubhdmi], device 0: ahub_plat-snd-soc-dummy-dai snd-soc-dummy-dai-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
以下命令用于在相应设备上播放。 ==== 通过 3.5 毫米音频插孔播放
aplay -D hw:0,0 [path] #Play the audio file of the specified path
aplay -D hw:1,0 [path] #Play the audio file of the specified path
打开 Ubuntu 桌面的系统设置,在蓝牙选项中连接蓝牙鼠标、键盘等设备。
在终端中通过命令行连接蓝牙设备的方法如下:
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool
[sudo] password for pi:
Agent registered
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off
Changing power on succeeded
[bluetooth]# discoverable on #Allow this device to be discovered
Changing discoverable on succeeded
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes
[bluetooth]# pairable on #Allow device pairing
Changing pairable on succeeded
[bluetooth]# scan on #Start scanning
Discovery started
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to
Attempting to pair with D4:C4:85:A5:C6:B1
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes
Pairing successful #pairing successfully
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007
[bluetooth]# exit #Exit the Bluetooth device management tool
pi@bpi-m4berry:~$
您需要准备一个NEC格式的红外遥控器。
在终端中输入以下命令开始接收红外信号。
sudo ir-keytable -c -p NEC -t
Old keytable cleared
Protocols changed to nec
Testing events. Please, press CTRL-C to abort.
258.553895: lirc protocol(nec): scancode = 0x45
258.553926: event type EV_MSC(0x04): scancode = 0x45
258.553926: event type EV_SYN(0x00).
260.667648: lirc protocol(nec): scancode = 0x46
260.667671: event type EV_MSC(0x04): scancode = 0x46
260.667671: event type EV_SYN(0x00).
260.719552: lirc protocol(nec): scancode = 0x46 repeat
260.719568: event type EV_MSC(0x04): scancode = 0x46
260.719568: event type EV_SYN(0x00).
273.263728: lirc protocol(nec): scancode = 0x47
273.263753: event type EV_MSC(0x04): scancode = 0x47
273.263753: event type EV_SYN(0x00).
273.315591: lirc protocol(nec): scancode = 0x47 repeat
273.315608: event type EV_MSC(0x04): scancode = 0x47
273.315608: event type EV_SYN(0x00).
其他命令及具体应用方法请参见 ir-keytable 参考文档.
scp(secure copy,安全复制)是 Linux 系统中用于在服务器之间安全复制文件的命令。
scp 可以在本地主机与远程主机之间,或两个远程主机之间安全传输文件。
它使用与 Secure Shell(SSH)协议相同的身份验证与安全机制。
可以通过 Windows 终端向同一局域网中的 Linux 系统复制文件。请先在“设置”>“应用”>“可选功能”中确认 OpenSSH 客户端已启用。
若要从 Windows 系统向 Linux 系统复制文件,还需要在 Linux 系统上启用 OpenSSH 服务器。
scp 命令格式如下:
scp [optionals] file_source file_target
optionals 是可选参数,例如 -r 可用于递归复制整个目录。
file_source 表示要复制的文件或目录。
file_target 表示目标路径;如果末尾指定了文件名,复制时还会对文件重命名。
以从 Windows 系统向 Linux 系统复制本地文件为例,在 Windows 终端中输入:
PS D:\temp\temp_4> scp ".\hello.txt" [email protected]:"/home/pi/Downloads/"
也可以在 Windows 终端中将 Linux 系统上的文件复制到本机:
PS D:\temp\temp_4> scp [email protected]:"/home/pi/Downloads/hello.txt" "D:\temp\temp_4"
其中 [email protected] 分别是 Linux 系统的用户名和 BPI-M4 Berry 在局域网中的 IP 地址。
:"/home/pi/Downloads/hello.txt" 是 Linux 系统中的文件路径。
"D:\temp\temp_4" 是 Windows 系统中的路径。
可以使用 MobaXterm 或其他类似软件,通过图形界面管理文件。
如下图所示,在 MobaXterm 中建立 SSH 连接后,界面左侧会出现文件管理窗口,可通过拖放方式复制文件。
运行 sudo nano "/boot/armbianEnv.txt",将 bootlogo=true 改为 bootlogo=false。
按快捷键 Ctrl+O 写入文件。
无需更改路径,按 Enter 键保存。
按快捷键 Ctrl+X 退出 nano。
执行 reboot,重新启动后将不再显示启动徽标。
运行 sudo nano "/boot/armbianEnv.txt",将 bootlogo=false 改为 bootlogo=true。
启动徽标文件的保存路径为:/usr/share/plymouth/themes/armbian/watermark.png。
准备一张 png 图片,最好带有透明背景,并将其重命名为 watermark.png。
使用任意方式将其复制到 /home/pi/watermark.png。
使用 root 权限将其复制到目标路径。
sudo cp "/home/pi/watermark.png" "/usr/share/plymouth/themes/armbian/watermark.png"
使用以下命令应用更改,等待数十秒完成构建。
sudo update-initramfs -u
执行 reboot,重新启动后即可看到更换后的启动徽标。
通过 GPIO 端口控制 LED 灯亮灭。
设置 GPIO 高低电平
以下以 7 号引脚为例进行演示。
接入 LED 灯,此时可以看到 LED 尚未点亮。
执行
gpio mode 2 out
将 GPIO 设置为输出模式。
执行
gpio write 2 1
可以看到 LED 灯已经点亮。
执行
gpio write 2 0
可以看到 LED 灯已经熄灭。
设置上拉和下拉电阻
首先,将 GPIO 端口设置为输入模式
gpio mode 2 in
然后启用 GPIO 端口的上拉电阻
gpio mode 2 up
可以看到 LED 灯再次点亮。
最后,将 GPIO 端口设置为下拉模式
gpio mode 2 down
可以看到 LED 灯再次熄灭。
| Banana Pi M4 Berry HDMI 测试 | |
|---|---|
显示屏 |
测试视频 |