快速上手 BPI-M4 Berry
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.在终端通过命令行连接蓝牙设备的方法如下:
123
使用红外接收器
- 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).