快速上手 BPI-M4 Berry
![](/images/thumb/a/a6/Banana_Pi_BPI-M4_Berry_1.jpg/300x225x300px-Banana_Pi_BPI-M4_Berry_1.jpg.pagespeed.ic.RUYpd3zj9g.jpg)
Banana Pi BPI-M4 Berry H618 design
![](/images/thumb/2/29/Banana_pi_BPI-M2_Berry_5.JPG/300x225x300px-Banana_pi_BPI-M2_Berry_5.JPG.pagespeed.ic.1M7S9SeJtL.jpg)
Banana Pi BPI-M2 Berry A40i-H design
![](/images/thumb/a/a9/BPI-M2_Pro_2.jpg/300x225x300px-BPI-M2_Pro_2.jpg.pagespeed.ic.QwYAEL6-Jj.jpg)
Banana Pi BPI-M2 Pro S905x3 design
![](/images/thumb/6/6e/Banana_Pi_BPI-M2S_1.jpg/300x225x300px-Banana_Pi_BPI-M2S_1.jpg.pagespeed.ic.09oBHwAysc.jpg)
Banana Pi BPI-M2S Amlogic A311D/S922 chip
![](/images/thumb/7/7b/Banana_Pi_BPI-M5_1.JPG/300x225x300px-Banana_Pi_BPI-M5_1.JPG.pagespeed.ic.gFvwugqKO7.jpg)
Banana Pi BPI-M5 with S905x3 design
Contents
开发
Linux
准备
- 1. Linux镜像支持SD卡或EMMC启动,但您应该首先阅读[Boot_Sequence启动顺序]。
- 2. 建议使用A1级别的SD卡,至少8GB。
- 3. 如果要从SD卡启动,确保可启动的EMMC已经格式化。
- 4. 如果要从EMMC启动并将SD卡用作存储,确保SD卡已经格式化,没有刷入Linux镜像。
- 5. 下载最新的[Linux镜像],并确认md5校验和正确。
- 6. 默认登录用户名:pi/bananapi或root/bananapi。
- 7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。
将镜像安装到SD卡
- 1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。
- Balena Etcher 是Balena提供的开源GUI闪存工具,用于将操作系统镜像写入SD卡或USB驱动器。
- 2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。
- Balena CLI 是用于balenaCloud或openBalena的命令行界面。 您可以从balena-io 下载安装程序或独立包,然后正确安装到您的PC上,然后您可以使用balena的"local flash"命令将Linux镜像写入SD卡或USB驱动器。
sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes
- 3. 在Linux上使用dd命令安装镜像,如果SD卡自动挂载,请取消挂载SD卡设备/dev/sdX分区。实际上,bpi-copy与此dd命令相同。
sudo apt-get install pv unzip sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer
- 4. 使用bpi-tools在Linux上安装镜像,将SD卡插入Linux PC并运行以下命令:
sudo apt-get install pv unzip sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX
启动
Ubuntu桌面
- 1.使用Ubuntu桌面版系统镜像,可以获得一个图形化操作界面。
- 2.需要准备一台具备HDMI接口的显示器,一根HDMI线。
- 3.使用HDMI线连接显示器与BPI-M4 Berry,切换显示器输入接口为对应HDMI接口,上电开机,等待片刻即可看到桌面。
Debug UART
- 1.准备一个3.3v USB转TTL模块。
- 2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。
- 3.在PC端开启一个串行终端软件,例如mobaxterm或putty。
- 4.以mobaxterm为例,设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。
SSH
- 1.准备一条网线,一个路由器。
- 2.使用网线连接路由器的LAN口与BPI-M4 Berry,同时也将PC接入另一个LAN口。
- 3.在路由器管理界面查看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
- 4.在PC端开启一个SSH终端软件,例如mobaxterm或putty。
- 5.以mobaxterm为例,将获得的IP地址,例如上文 192.168.3.10 ,填入IP地址栏,Port端口填入 22 。
- 6.打开SSH终端,输入登录用户名/密码:pi/bananapi 或 root/bananapi ,输入密码时无提示,请正常输入,完成后按Enter键即可。
NoMachine 远程桌面
- 1.确保BPI-M4 Berry已连接互联网,使用以下命令在系统中下载nomachine DEB安装包。
wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb
- 2.或在PC浏览器打开NoMachine for ARM - arm64下载页面 下载DEB安装包,然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。
- 3.下载完成后,通过以下命令安装,注意文件名以实际下载的文件名为准。
sudo dpkg -i nomachine_8.9.1_1_arm64.deb
- 4.PC端也需下载安装NoMachine,NoMachine下载页面选择适合PC操作系统的安装包,下载到本地并完成安装。
- 5.注意保持PC与BPI-M4 Berry在同一个局域网中,可先尝试SSH连接确保局域网内通信正常。
- 6.在PC端打开NoMachine,点击 Add 按钮,在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址,再点击 Add 按钮。
- 7.点击识别到的端口图标,在弹出的新窗口中输入用户名/密码,然后点击OK按钮。
- 8.完后后续设置后,即可看到桌面。
- 9.如果HDMI接口没有连接任何设备,NoMachine 远程桌面将显示黑屏,建议保持HDMI连接,或接入一个HDMI诱骗器。
重启,关机
- 1.按RST按钮进行硬件重启,或输入重启命令:
reboot
- 2.关机命令,关机后必须重新上电才可再次启动:
poweroff
WiFi
- 使用 nmcli 命令可扫描WiFi热点,连接热点,创建AP热点。
nmcli device #列出设备 nmcli device wifi list # 列出可用的wifi接入点, list可以省略 nmcli device wifi connect [SSID] password [PASSWORD] # 连接热点mySSID, 连接成功后,就会自动生成配置文件,以后要再连接,就可以使用nmcli connection up [SSID]命令了 nmcli device disconnect [device name] # 断开wifi,使用nmcli device命令中显示的wifi设备名 nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点
nmcli connection show #列出网络连接的配置 nmcli connection down [NAME] # 停用一个连接 nmcli connection up [NAME] # 激活一个连接 nmcli connection delete [SSID] #删除一个配置,不再保存信息和自动连接
nmcli radio wifi off # 关闭wifi nmcli radio wifi on # 开启wifi
设置静态IP,DNS
- 1.设置静态IP需先保持连接,如果想设置以太网静态IP,则先保持以太网连接;如果想设置无线网静态IP,则先保持与一个WIFI的连接。
- 2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备,请更换到空闲的IP,或使其他设备让出该IP。
- 3.使用 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 --
- 4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性,列如:
nmcli connection show TP-LINK_5G_7747 #如果想看以太网的则改为 Wired connection 1
#仅列举三个常用条目 ipv4.dns: 192.168.3.1 #默认为网关地址 ipv4.addresses: 192.168.3.10/24 #默认为路由器DHCP分配的IP地址 ipv4.gateway: 192.168.3.1 #网关地址,默认为路由器的IP地址
- 5.设置静态IP:
nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2
- 6.设置DNS:
nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS
- 7.复位:
reboot
- 8.再次启动后检查是否修改成功:
ifconfig nmcli connection show TP-LINK_5G_7747
网络时间同步
- Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
timedatectl set-ntp false #禁用基于NTP的网络时间同步
sudo apt install chrony #安装chrony systemctl start chrony #开启chrony systemctl enable chrony systemctl status chrony systemctl restart chrony #重启服务
timedatectl status #查看时间同步状态 timedatectl list-timezones #查看时区列表 timedatectl set-timezone Asia/Shanghai #修改时区 timedatectl set-ntp true #开启NTP网络时间同步
date #查看时间 sudo hwclock -r #查看硬件时钟
查看硬件温度
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。
sensors
修改HDMI输出分辨率
- 使用Ubuntu桌面版操作系统时,可以在Setting中找到Displays栏,修改分辨率。
使用USB存储设备
- 1.准备一个已经正常分区的U盘,插入BPI-M4 Berry的USB接口中。
- 2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开,也可通过GParted工具进行分区管理。
- 3.在终端挂载U盘到本地目录中:
mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载,便于管理 cat /proc/partitions | grep "sd*" #列出sd开头的分区 sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/ ls ~/mnt/ #挂载后即可列出U盘中的文件 sudo umount -v /dev/sda1 #卸载/dev/sda1,之后可移除U盘
使用音频设备
- 准备一个音频文件,通过U盘或SSH等方式,拷贝到BPI-M4 Berry Ubuntu桌面版系统中。
HDMI音频
- 1.准备一个具备HDMI音频输入功能的显示器,在显示器设置中开启相关功能,使用HDMI线连接显示器。
- 2.在设置的Sound栏中将输出设备设置为HDMI Audio。
- 3.播放音频。
3.5mm 音频接口
- 1.准备一个使用3.5mm插头的耳机或其他音频设备,将插头插入BPI-M4 Berry的3.5mm插孔中。
- 2在设置的Sound栏中将输出设备设置为Audio Codec。
- 3.播放音频。
使用蓝牙
- 1.在Ubuntu桌面中打开设置,在Bluetooth栏中连接蓝牙设备,例如蓝牙鼠标或键盘。
- 2.在终端通过命令行连接蓝牙设备的方法如下:
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具 [sudo] password for pi: Agent registered [CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes [bluetooth]# power on #启动蓝牙功能,power off关闭 Changing power on succeeded [bluetooth]# discoverable on #允许本设备被发现 Changing discoverable on succeeded [CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes [bluetooth]# pairable on #允许设备配对 Changing pairable on succeeded [bluetooth]# scan on #开始扫描 Discovery started [CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes [NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名 [CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4 [bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址 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 #配对成功 [CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007 [bluetooth]# exit #退出蓝牙设备管理工具 pi@bpi-m4berry:~$
使用红外接收器
- 1.需要准备一个使用NEC格式的红外遥控。
- 2.在终端输入以下命令即可开始接收红外信号。
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).
传输文件
scp
Linux系统中的scp(secure copy)命令用于以安全的方式在服务器之间复制文件。
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。
它使用与Secure Shell(SSH)协议相同的身份验证和安全性。
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中,仅需确保已开启Open SSH客户端,在设置>应用>可选功能中可查看。 如果想在Linux系统中拷贝Windows系统中的文件,则还需开启Open SSH服务端。
scp命令格式为:
scp [optional] file_source file_target
- 1.[optional] 为可选参数,例如 -r ,使用它即可递归复制整个目录。
- 2.file_source 要拷贝的文件或目录。
- 3.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 或其他类似的软件,可通过图形化界面管理文件。
如下图所示,在mobaxterm中建立SSH连接后,界面左侧就会出现文件管理窗口,支持以文件拖拽的方式进行复制粘贴。