介绍
BPI-M4 Berry 开发板是一款功能强大的单板计算机 (SBC),利用 Allwinner H618 片上系统 (SoC) 的功能为开发人员提供令人印象深刻的性能和丰富的功能。与 Raspberry Pi 4b 类似,BPI-M4 Berry 拥有可比的 CPU 性能、LPDDR4 内存支持、集成 WiFi 和蓝牙功能、熟悉的 40 针接头布局,以及 4 个 USB 接口和 1 个 GbE RJ45 端口。
以其强大的性能、多功能的功能和卓越的图像处理能力为特点,成为嵌入式和计算行业专业人士的示范性 SBC 开发平台。它配备 8GB eMMC 闪存、高性能解码和编码功能以及一系列接口选项,可满足广泛的应用领域,包括媒体处理、物联网和娱乐。无论是针对新手还是经验丰富的开发人员,BPI-M4 Berry 开发板都提供了实现创意愿景和项目目标的理想工具集。
| ** | 更多信息:Banana Pi BPI-M4 Berry 主页 |
|---|
规格
- 全志H618,四核ARM Cortex™-A53处理器
- ARM Mali G31 GPU
- 无线网络和蓝牙
- 2G LPDDR4 内存
- 8G eMMC闪存
- 1x USB2.0 Type-C OTG,5V 电源
- 4 个 USB2.0 A 型
- 1 个 HDMI 2.0a
- 1 个 3.5 毫米音频和 TVE 插孔
- 1 个 GbE 以太网端口
发展
Linux
准备
- Linux镜像支持SD卡或eMMC启动,并且会首先从SD卡启动。
- 建议使用A1级卡,至少8GB。
- 如果您想从 SD 卡启动,请确保可启动 eMMC 已格式化。
- 如果您想从 eMMC 启动并使用 Sdcard 作为存储,请确保 SD 卡已格式化且没有 Linux 映像。
- 下载最新的Linux镜像,并确认md5校验和正确。
- 默认登录名:pi/bananapi或root/bananapi
- wiki 指南仅适用于 ubuntu/debian 映像。
将映像安装到 SD 卡
我们准备了 2 种方法来帮助您刻录映像,只需选择其中一种即可。
使用Balena Etcher安装镜像,支持 Windows、Linux 和 MacOS。
Balena Etcher是 Balena 的开源 GUI 闪存工具,可将操作系统映像闪存到 SD 卡或 USB 驱动器。
-
如果您将其安装在Linux桌面操作系统(例如Ubuntu)中,您可能需要首先授予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 版本下载安装程序或独立包。
-
将其正确安装到您的电脑上。
-
使用balena 的util available-drives命令选项列出可用于写入操作系统映像的可用驱动器。
balena util available-drives复制
-
然后您可以使用balena 的本地闪存命令选项将 Linux 映像闪存到 sdcard 或 USB 驱动器。
** 请注意,您需要将图像文件的路径更改为您需要的正确路径。并将设备修改为你要刻录的设备。 -
在 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复制
-
将镜像安装到eMMC
-
确保Linux镜像已烧录至SD卡并正常启动。
-
在终端中输入以下命令。
sudo bananapi-config复制
-
请按照以下说明在 eMMC 上安装 Linux 系统映像。
-
选择
Ststem。 -
选择
Install。 -
选择
Boot from eMMC。 -
选择
Yes。 -
选择
ext4。 -
等几分钟。此时不要关闭或重新启动开发板。
-
最后一步是关闭该板。此时,断开电源,取出SD卡,重新接通电源,即可从eMMC启动。
-
擦除 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接口,开机,稍等片刻即可看到桌面。
-
Ubuntu 桌面
-
Debian 桌面
调试串口
-
准备一个3.3v USB转TTL模块。
-
使用 USB 转 TTL 模块连接 PC USB 端口和板上的 Debug UART 端口。
-
以mobaxterm为例,设置好串口号和115200波特率后,即可打开BPI-M4 Berry UART终端。
SSH
-
准备好网线和路由器。
-
使用网线将路由器的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为例,
192.168.3.10在IP地址栏填入获取到的IP地址如上,在Port端口填入22。 -
打开 SSH 终端并输入登录用户名/密码:
pi/bananapi或root/bananapi。输入密码时不会有提示。请正常输入,完成后按回车键。
NoMachine远程桌面
-
确保BPI-M4 Berry已连接互联网,并使用以下命令下载系统中的nomachine DEB安装包。
wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb -
或者在PC浏览器中打开NoMachine for ARM - arm64下载页面,下载DEB安装包,然后通过SSH或U盘复制到BPI-M4 Berry用户目录。
-
下载完成后,通过以下命令进行安装。请注意,文件名以实际下载的文件名为准。
sudo dpkg -i nomachine_8.9.1_1_arm64.deb复制
-
PC端还需要下载并安装NoMachine。NoMachine下载页面选择适合PC操作系统的安装包,下载到本地并完成安装。
-
注意保持PC和BPI-M4 Berry在同一个局域网内。您可以先尝试SSH连接,确保局域网内正常通信。
-
在PC上打开NoMachine,点击添加按钮,在跳转后的窗口中的主机栏中输入BPI-M4 Berry的IP地址,然后点击添加按钮。
-
单击识别的端口图标,在弹出的新窗口中输入用户名/密码,然后单击确定按钮。
-
完成后续设置后就可以看到桌面了。
| ** | 提示:如果 HDMI 接口没有连接任何设备,NoMachine 远程桌面将显示黑屏。建议保留 HDMI 连接或连接 HDMI 诱饵设备。 |
|---|
无线上网
使用nmcli命令扫描WiFi热点、连接热点、创建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、DNS
-
要设置静态IP,您需要先保持连接。如果要设置以太网静态IP,首先必须保持以太网连接;如果要设置无线网络静态IP,首先必须保持WIFI连接。
-
如果上级路由器已将您要设置的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
复制
查看硬件温度
输入以下命令可查看 BPI-M4 Berry 板上芯片内置传感器返回的温度数据。
sensors
复制
修改HDMI输出分辨率
使用Ubuntu&Debian桌面操作系统时,可以在设置中找到显示栏,修改分辨率。
-
Ubuntu 桌面
-
Debian 桌面
使用U盘
-
准备一张已经正常分区的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线连接显示器。
-
在设置的声音栏中将输出设备设置为 HDMI 音频。
-
播放音频。
3.5毫米音频插孔
-
准备好耳机或其他使用3.5mm插头的音频设备,将插头插入BPI-M4 Berry的3.5mm插孔。
-
在设置的声音栏中将输出设备设置为音频编解码器。
-
播放音频。
播放音频文件的终端命令
aplay -l #List devices
aplay -D hw:0,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
Linux系统中的scp(安全复制)命令用于以安全的方式在服务器之间复制文件。
SCP 命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全地传输文件。
它使用与 Secure Shell (SSH) 协议中使用的相同的身份验证和安全性。
您可以将文件从 Windows 终端复制到同一 LAN 上的 Linux 系统。只需确保 Open SSH 客户端已打开并且可以在“设置”>“应用程序”>“可选功能”中查看。
如果要将文件从Windows系统复制到Linux系统,还需要启用Open SSH服务器。
scp命令格式为:
scp [optionals] file_source file_target
复制
optionals是可选参数,如-r,可用于递归复制整个目录。- file_source 要复制的文件或目录。
- 如果最后输入了特定的文件名,file_target 将复制过去的路径并重命名它。
以将本地文件从Windows系统复制到Linux系统为例。在 Windows 终端中,输入:
PS D:\temp\temp_4> scp ".\hello.txt" pi@192.168.3.12:"/home/pi/Downloads/"
复制
您还可以在Windows终端中将Linux系统中的文件复制到本地计算机:
PS D:\temp\temp_4> scp pi@192.168.3.12:"/home/pi/Downloads/hello.txt" "D:\temp\temp_4"
复制
-
其中pi@192.168.3.12为Linux系统中的用户名,BPI-M4 Berry在局域网中的IP地址。
-
:"/home/pi/Downloads/hello.txt"Linux系统中的文件路径在哪里。 -
"D:\temp\temp_4"Windows系统中的路径在哪里。
莫巴克斯术语
可以使用 mobaxterm 或其他类似软件通过图形界面管理文件。
如下图,在mobaxterm中建立SSH连接后,界面左侧会出现文件管理窗口,支持通过拖放文件的方式进行复制粘贴。
纳米 - 文本编辑器
GNU nano是一个用于类 Unix 计算系统或使用命令行界面的操作环境的文本编辑器。
它比vim更容易使用,适合初学者。
通常您可以按以下顺序完成编辑、保存并退出编辑器:
设置开机标志
开/关开机标志
-
sudo nano "/boot/bananapiEnv.txt",重写bootlogo=true为bootlogo=false. -
按键盘快捷键 Ctrl+O 写入文件。
-
无需更改路径,按 Enter 保存。
-
按键盘快捷键 Ctrl+X 退出 nano。
-
reboot,启动标志不会显示。
更换开机标志
-
sudo nano "/boot/bananapiEnv.txt",重写bootlogo=false为bootlogo=true. -
开机Logo文件的存放路径为:
/usr/share/plymouth/themes/bananapi/watermark.png。 -
准备一个
png图像,最好是带有透明层的图案,并将其重命名为watermark.png. -
/home/pi/watermark.png使用您喜欢的任何方法将其复制到路径。 -
使用root权限将其复制到目标路径。
sudo cp "/home/pi/watermark.png" "/usr/share/plymouth/themes/bananapi/watermark.png"复制
-
使用此命令应用更改并等待数十秒以完成构建。
sudo update-initramfs -u复制
-
reboot,您将看到开机徽标已更改为您替换的图像。
40 针接口 GPIO、I2C、UART、SPI 和 PWM 测试
通用输入输出接口
控制GPIO口点亮LED灯。
设置GPIO的高低电平
以下是使用7针的演示。
插入LED灯,可以看到它不亮。
-
执行
gpio mode 2 out复制
将其设置为输出模式。
-
执行
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 灯再次熄灭
I2C
根据原理图,可用的i2c有i2c3和i2c4
-
执行
sudo bananapi-config复制
-
选择“系统”
-
选择“硬件”
-
使用键盘方向键移动,然后使用空格键选择。选择“pg-i2c3”和“pg-i2c4”
-
选择“保存”,然后选择“返回”
-
最后,选择重新启动。
-
重启后,检查是否有i2c-3和i2c-4节点。
pi@bpi-m4berry:~$ ls /dev/i2c-3 /dev/i2c-3 pi@bpi-m4berry:~$ ls /dev/i2c-4 /dev/i2c-4复制
-
执行
cd /usr/src/wiringPi/examples/ gcc ./oled_demo.c -o oled -lwiringPi复制
-
将 i2c 设备连接到 i2c3 的引脚。执行
sudo ./oled /dev/i2c-3复制
-
将 i2c 设备连接到 i2c4 的引脚。执行
sudo ./oled /dev/i2c-4复制
串口
通过查看原理图可以发现可用的uart是uart1和uart5。
-
Uart1已使能,可以直接使用。短路后,执行
gpio serial /dev/ttyS1复制
-
Uart5已关闭,需要打开。执行
sudo bananapi-config复制
-
选择“系统”
-
选择“硬件”
-
使用键盘方向键移动,然后使用空格键选择。选择“ph-uart5”
-
选择“保存”,然后选择“返回”
-
最后,选择重新启动。
-
重启后查看是否有ttyS5节点。
pi@bpi-m4berry:~$ ls /dev/ttyS5 /dev/ttyS5复制
-
短接uart5引脚并执行
SPI
通过查看原理图可以发现可用的spi是spi1。
-
执行
sudo bananapi-config复制
-
选择“系统”
-
选择“硬件”
-
使用键盘方向键移动,然后使用空格键选择。选择“spi1-cs1-spidev”
-
选择“保存”,然后选择“返回”
-
最后,选择重新启动。
-
重启后,检查是否有SPI节点。
pi@bpi-m4berry:~$ ls /dev/spidev1.1 /dev/spidev1.1复制
-
执行
sudo spidev_test -v -D /dev/spidev1.1复制
可以看出TX和RX是不同的。所以,我们需要将MOSI和MISO短路并重新执行该命令。