<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.banana-pi.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wind</id>
		<title>Banana Pi Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.banana-pi.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wind"/>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/Special:Contributions/Wind"/>
		<updated>2026-06-04T21:45:45Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3&amp;diff=16467</id>
		<title>BPI-Leaf-S3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3&amp;diff=16467"/>
				<updated>2023-11-15T02:16:10Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:BPI-Leaf-S3 开发板]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:Leaf-S3-incline-back.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:BPI-Centi-S3_2.jpg|thumb|[[BPI-Centi-S3]] with ESP32-S3 front]]&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi BPI-Leaf-S3 is a series of low-powered microcontrollers designed for IoT development and Maker DIY board.It supports 2.4 GHz Wi-Fi and Bluetooth® LE dual-mode wireless communication, the peripheral is compatible with low-power hardware design, and the power consumption is only 10uA in deep sleep mode.&lt;br /&gt;
&lt;br /&gt;
The main controller supports two power supply inputs: USB and external 3.7V lithium battery, both can be interchangable freely.  The battery could also be charged while USB is plugged in.  Compact size, various interface, easy to use, and can be directly applied to low-power IoT projects.&lt;br /&gt;
&lt;br /&gt;
In terms of programming, the Leaf-S3 supports ESP-IDF, Arduino, micropython and other methods.&lt;br /&gt;
&lt;br /&gt;
The IO pins on BPI-Leaf-S3 are identical to the Espressif ESP32-S3-DevKitC-1, developers can add peripherals that are supported by DevKitC-1 onto the BPI-Leaf-S3, and can also combine it onto a breadboard.&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Leaf-S3_banner.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Key Features ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* Extereal FLASH 8MB &lt;br /&gt;
* In-packge PSRAM 2MB&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1* SH 1mm 4-Pin Socket, support I2C&lt;br /&gt;
* 1 * USB Type-C&lt;br /&gt;
* 1 * MX 1.25mm 2-Pin Socket，support USB charging&lt;br /&gt;
* 1 * Neopixel LED&lt;br /&gt;
&lt;br /&gt;
== ESP32-S3-DevKitC-1, BPI-Leaf-S3 Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Dev Board&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| GPIO Pins&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v Pins&lt;br /&gt;
| 3&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5v Pins&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND Pins&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| ARGB LEDs&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| Chip Internal USB&lt;br /&gt;
| USB-C Connector x 1&lt;br /&gt;
| MicroUSB Connector x 1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL to USB&lt;br /&gt;
| None&lt;br /&gt;
| CP2102-MicroUSB Connector x 1&lt;br /&gt;
|-&lt;br /&gt;
| External Battery Socket&lt;br /&gt;
| 3.7v Li-ion Battery dock&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Battery Charging&lt;br /&gt;
| 500mA Charging Current&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| JST SH 1mm 4-Pin Socket&lt;br /&gt;
| 1&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The amount, numeric order, and spacing of IO pins on BPI-Leaf-S3 are identical to the Espressif ESP32-S3-DevKitC-1.&lt;br /&gt;
&lt;br /&gt;
The BPI-Leaf-S3 dev board no longer equips traditional UART TTL to USB converter chip and its dedicated USB port.  This is due to the ESP32-S3 chip's internal USB function were improved, supporting CDC-ACM virtual serial port and JTAG interface, which is capable of software development and firmware management feature, that makes the external converter chip redundant. &lt;br /&gt;
&lt;br /&gt;
Compared to ESP32-S3-DevKitC-1 dev board, the BPI-Leaf-S3 adds an external battery socket and a charging circuit, capable of charging the battery via USB. When a 3.7v battery is connected, unplugging the USB will not cause the program to break, making it fit for multiple applications.&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3 dev board is equipped with an I²C 4 pin dock, this stabalizes connection to other I²C peripherals.  This dock is not only restricted to I²C connection, any module that requires a 3.3v pin, a GND pin, one or two data pin can also be connected to the Leaf-S3 via this 4 pin dock.&lt;br /&gt;
&lt;br /&gt;
==Espressif ESP32-S3==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 is a dual-core XTensa LX7 MCU, capable of running at 240 MHz. Apart from its 512 KB of internal SRAM, it also comes with integrated 2.4 GHz, 802.11 b/g/n Wi-Fi and Bluetooth 5 (LE) connectivity that provides long-range support. It has 45 programmable GPIOs and supports a rich set of peripherals. Compared with ESP32, it supports larger, high-speed octal SPI flash, and PSRAM with configurable data and instruction cache.&lt;br /&gt;
&lt;br /&gt;
What follows is a description of the most important features of ESP32-S3.&lt;br /&gt;
&lt;br /&gt;
* Wi-Fi + Bluetooth 5 (LE) Wireless Connectivity: ESP32-S3 supports a 2.4 GHz Wi-Fi (802.11 b/g/n) with 40 MHz of bandwidth support. The Bluetooth Low Energy subsystem supports long range through Coded PHY and advertisement extension. It also supports higher transmission speed and data throughput, with 2 Mbps PHY. Both Wi-Fi and BLE have superior RF performance that is maintained even at high temperatures.&lt;br /&gt;
&lt;br /&gt;
* AI Acceleration Support: ESP32-S3 has additional support for vector instructions in the MCU, which provides acceleration for neural network computing and signal processing workloads. The software libraries for the above-mentioned optimized functions will become available very soon, in the form of updates to ESP-WHO and ESP-Skainet.&lt;br /&gt;
&lt;br /&gt;
* Rich Set of IO Peripherals: ESP32-S3 has 44 programmable GPIOs, namely 10 more GPIOs than those of ESP32. ESP32-S3 supports all the commonly-used peripherals, such as SPI, I2S, I2C, PWM, RMT, ADC and UART, SD/MMC host and TWAITM. In total, 14 GPIOs can be configured as capacitive touch input for HMI applications. Apart from all these peripherals, however, ESP32-S3 is also equipped with an ultra-low-power (ULP) core that supports multiple low-power modes in a variety of such use-cases.&lt;br /&gt;
&lt;br /&gt;
* Security:ESP32-S3 provides all the necessary security requirements for building securely connected devices, without requiring any external components. It supports AES-XTS-based flash encryption and RSA-based secure boot. In addition, ESP32-S3 has a digital signature peripheral and an HMAC module, which provide functionality that is similar to the hardware secure element, thus protecting the private or symmetric key from software attacks and identity theft. ESP32-S3 also has a “World Controller” peripheral that provides two fully-isolated execution environments, which enable the implementation of a trusted-execution environment or a privilege-separation scheme.&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
&lt;br /&gt;
*[https://bpi-steam.com/Leaf_S3_doc/en/ Getting Started with BPI-Leaf-S3]&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== Hardware sketch map ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Spec ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 Spec&lt;br /&gt;
|-&lt;br /&gt;
| SoC&lt;br /&gt;
| ESP32-S3，Xtensa® dual-core 32-bit LX7 microprocessor&lt;br /&gt;
|-&lt;br /&gt;
| Clock Frequency&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| Operating Temperature&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| Internal ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| Internal SRAM&lt;br /&gt;
| 512 KB&lt;br /&gt;
|-&lt;br /&gt;
| Onboard FLASH ROM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| In-packge PSRAM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-Leaf-S3 has led out 36 available gpios&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
|  2 × 12-bit SAR ADCs, up to 20 channels&lt;br /&gt;
|-&lt;br /&gt;
| Touch Sensor&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1 × LCD interface (8-bit ~16-bit parallel RGB, I8080 and MOTO6800)&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1 × DVP 8-bit ~16-bit camera interface&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 &lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 channels 14 bits&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × full-speed USB OTG，female Type-C socket&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG controller&lt;br /&gt;
| 1，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
| 1，ranging from -20 °C to 110 °C&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO host controller with 2 slots,SD 3.0,SD 3.01,SDIO 3.0,CE-ATA 1.1,MMC 4.41,eMMC 4.5,eMMC 4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® controller&lt;br /&gt;
| 1 ，compatible with ISO 11898-1 (CAN Specification 2.0)&lt;br /&gt;
|-&lt;br /&gt;
| General DMA controller (GDMA)&lt;br /&gt;
| 5 transmit channels and 5 receive channels&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 TX channels,4RX channels.Eight channels share a 384 x 32-bit RAM&lt;br /&gt;
|-&lt;br /&gt;
| Pulse Count Controller&lt;br /&gt;
| 4 independent pulse counters (units).Each unit consists of two independent channels&lt;br /&gt;
|-&lt;br /&gt;
| Timers&lt;br /&gt;
| 4 × 54-bit general-purpose timers. 1 × 52-bit system timer. 3 × watchdog timers&lt;br /&gt;
|-&lt;br /&gt;
| External crystal oscillator&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC and Low­Power Management&lt;br /&gt;
| Power Management Unit (PMU) + Ultra-­Low-­Power Coprocessor(ULP)&lt;br /&gt;
|-&lt;br /&gt;
| Deep-sleep consumption current&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| Operating Voltage&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| Input Voltage&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| Maximum discharge current&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB charge&lt;br /&gt;
| Support&lt;br /&gt;
|-&lt;br /&gt;
| Maximum charging current&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| Neopixel LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware Dimensions ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board_dimension.png | 700px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 Dimensions&lt;br /&gt;
|-&lt;br /&gt;
| Pin spacing&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole spacing&lt;br /&gt;
| 23mm/ 62.25mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole size&lt;br /&gt;
| bore 2mm/outside 3mm&lt;br /&gt;
|-&lt;br /&gt;
| Motherboard size&lt;br /&gt;
| 26 × 65.25(mm)/1.02 x 2.57(inches)&lt;br /&gt;
|-&lt;br /&gt;
| board thickness&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin spacing is breadboard compatible for easy application debugging.&lt;br /&gt;
&lt;br /&gt;
== Peripheral Pin Configurations ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 GPIO Pin define&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| Peripheral Interface&lt;br /&gt;
| Signal&lt;br /&gt;
| Pin&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| Touch sensor&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | The pins are assigned by default, and can be redefined to any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| any GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Used for FLASH and PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Pulse counter&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Neopixel LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS.&lt;br /&gt;
&lt;br /&gt;
It is recommend that developers install ESP-IDF via IDE.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README.md GitHub: ESP-IDF Eclipse Plugin README]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode Extension] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: README ] | [https://www.youtube.com/watch?v=Lc6ausiKvQM youtube: Quick User Guide for the ESP-IDF VSCode Extension]&lt;br /&gt;
&lt;br /&gt;
Or install manually based on operating system:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/windows-setup.html Standard Setup of Toolchain for Windows]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/linux-macos-setup.html Standard Toolchain Setup for Linux and macOS]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/index.html#api-reference ESP-IDF API Reference Docs]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/index.html#api-guides ESP-IDF API Guides]&lt;br /&gt;
&lt;br /&gt;
To enable your BPI-Leaf-S3 device to flash via USB-CDC.&lt;br /&gt;
&lt;br /&gt;
There are two ways to enter Bootloader mode:&lt;br /&gt;
&lt;br /&gt;
# Connect it to the computer via USB, hold BOOT button, press RST button once, then release BOOT button.&lt;br /&gt;
# Hold BOOT button while disconnected to power, connect to PC via USB, then release BOOT button.&lt;br /&gt;
&lt;br /&gt;
The chip controls GPIO0 via BOOT button to choose between reset or cold boot.&lt;br /&gt;
&lt;br /&gt;
Confirm the port of your BPI-Leaf-S3 device via device manager, it might display different port if you are on different modes.&lt;br /&gt;
&lt;br /&gt;
*ESP-DL (deep learning) Auto-Generating Model Deployment Project using TVM: https://docs.espressif.com/projects/esp-dl/en/latest/esp32/tutorials/deploying-models-through-tvm.html&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Regardless of the programmer is a beginner or not, MicroPython is considered to be less difficult to develop than other MCU programming languages.&lt;br /&gt;
&lt;br /&gt;
Its code is easy to understand compared to other programming languages, and it has various resources accumulated over the years by the open source community.&lt;br /&gt;
&lt;br /&gt;
Just like Python, it has strong vitality and application value. &lt;br /&gt;
&lt;br /&gt;
* [[ micropython_operating_env | Building MicroPython Operating Environment ]]&lt;br /&gt;
* [[ micropython_firmware | MicroPython Firmware Download]]&lt;br /&gt;
&lt;br /&gt;
'''BPI-Steam resources'''&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/Environment.html MicroPython runtime environment setup]&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/Firmware.html Micropython firmware download and burning]&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/Basic.html Basic use case]&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/ESPNOW.html ESP-NOW use case]&lt;br /&gt;
&lt;br /&gt;
'''Forum resources'''&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-esp-now-on-micropython-easy-to-implement-networking-communication/15481 BPI-Leaf-S3 , ESP-NOW on MicroPython, easy to implement networking communication]&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-oled-displays-potentiometer-voltage-and-progress-bar/13718 BPI-Leaf-S3 OLED displays potentiometer voltage and progress bar]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-use-potentiometer-to-control-neopixel-steplessly/13703 BPI-Leaf-S3 with ESP32-S3, use potentiometer to control neopixel steplessly]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-use-key-interrupts-to-control-neopixel/13660 BPI-Leaf-S3 with ESP32-S3, use key interrupts to control neopixel]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-micropython-neopixel-show/13661 BPI-Leaf-S3 with ESP32-S3 &amp;amp; microPython Neopixel show]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-getting-started-blink-led-on-bread-board/13634 BPI-Leaf-S3 microPython getting started, blink LED on bread board]&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-micropython-display-web-clock-on-oled-screen/13324 BPI-Leaf-S3+MicroPython: Display Web Clock on OLED screen]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-use-adc-measuring-potentiometer-to-control-the-motor/13273 BPI-Leaf-S3+MicroPython:Use ADC measuring potentiometer to control the motor]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-with-tb6612fng-pwm-motor/13259 Banana Pi BPI-Leaf-S3 MicroPython with TB6612FNG PWM Motor]&lt;br /&gt;
* [https://forum.banana-pi.org/t/making-iot-programming-easy-using-micropython-on-bpi-leaf-s3/13248 Making IoT programming easy，using MicroPython on BPI-Leaf-S3]&lt;br /&gt;
&lt;br /&gt;
== CircuitPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards.&lt;br /&gt;
&lt;br /&gt;
CircuitPython programming with Mu editor is the easiest way to get started. Install the software and connect the device to start using it.&lt;br /&gt;
&lt;br /&gt;
[https://circuitpython.org/board/bpi_leaf_s3/ BPI-Leaf-S3 CircuitPython Download Page]&lt;br /&gt;
&lt;br /&gt;
[https://codewith.mu/ Mu Editor]&lt;br /&gt;
&lt;br /&gt;
'''How to install tinyUF2 firmware:'''&lt;br /&gt;
&lt;br /&gt;
To enable your BPI-Leaf-S3 device to flash via USB-CDC.&lt;br /&gt;
&lt;br /&gt;
Connect it to the computer via USB, hold BOOT button, press RST button once, then release BOOT button.&lt;br /&gt;
&lt;br /&gt;
In the Install, Repair, or Update UF2 Bootloader section at the bottom of the page, follow its instructions to download and install tinyUF2 firmware.&lt;br /&gt;
&lt;br /&gt;
'''How to install CircuitPython firmware：'''&lt;br /&gt;
&lt;br /&gt;
Click the DOWNLOAD .UF2 NOW button on the right side of the page to download the firmware to the local, and then copy it to the disk in BPI-Leaf-S3 UF2 Bootloader mode, and it can be used after automatic reset.&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/circuitpython GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/circuitpython/pull/6904&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/tinyuf2 GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/tinyuf2/pull/196&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino is an open source embedded software and hardware development platform for users to create interactive embedded projects.&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE download link] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing Install and configure the Arduino-ESP32 runtime environment]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino Getting Started]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
'''Supported by the arduino-esp32 GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/espressif/arduino-esp32/pull/7345&lt;br /&gt;
&lt;br /&gt;
The board has been merged into the master branch.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/sch/BPI-Leaf-S3-Chip-V0.1A.pdf BPI-Leaf-S3 schematic diagram PDF]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf ESP32-S3 Datasheet]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_en.pdf ESP32-S3 Technical Reference Manual]&lt;br /&gt;
&lt;br /&gt;
=Easy to buy sample=&lt;br /&gt;
&lt;br /&gt;
* BIPAI Aliexpress shop:https://www.aliexpress.com/item/1005004701866550.html?&lt;br /&gt;
* SINOVOIP Aliexpress shop : https://www.aliexpress.com/item/1005004428945296.html?spm=5261.ProductManageOnline.0.0.48af4edfYbyEoI&lt;br /&gt;
* Taobao shop : https://item.taobao.com/item.htm?spm=a2126o.success.0.0.29034831FGnLQW&amp;amp;id=677287234553&lt;br /&gt;
* OEM&amp;amp;OEM customized service ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3&amp;diff=16466</id>
		<title>BPI-Leaf-S3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3&amp;diff=16466"/>
				<updated>2023-11-15T02:15:59Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:BPI-Leaf-S3 开发板]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:Leaf-S3-incline-back.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:BPI-Centi-S3_2.jpg|thumb|[[BPI-Centi-S3]] with ESP32-S3 front]]&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi BPI-Leaf-S3 is a series of low-powered microcontrollers designed for IoT development and Maker DIY board.It supports 2.4 GHz Wi-Fi and Bluetooth® LE dual-mode wireless communication, the peripheral is compatible with low-power hardware design, and the power consumption is only 10uA in deep sleep mode.&lt;br /&gt;
&lt;br /&gt;
The main controller supports two power supply inputs: USB and external 3.7V lithium battery, both can be interchangable freely.  The battery could also be charged while USB is plugged in.  Compact size, various interface, easy to use, and can be directly applied to low-power IoT projects.&lt;br /&gt;
&lt;br /&gt;
In terms of programming, the Leaf-S3 supports ESP-IDF, Arduino, micropython and other methods.&lt;br /&gt;
&lt;br /&gt;
The IO pins on BPI-Leaf-S3 are identical to the Espressif ESP32-S3-DevKitC-1, developers can add peripherals that are supported by DevKitC-1 onto the BPI-Leaf-S3, and can also combine it onto a breadboard.&lt;br /&gt;
[[File:BPI-Leaf-S3_banner.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Leaf-S3_banner.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Key Features ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* Extereal FLASH 8MB &lt;br /&gt;
* In-packge PSRAM 2MB&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1* SH 1mm 4-Pin Socket, support I2C&lt;br /&gt;
* 1 * USB Type-C&lt;br /&gt;
* 1 * MX 1.25mm 2-Pin Socket，support USB charging&lt;br /&gt;
* 1 * Neopixel LED&lt;br /&gt;
&lt;br /&gt;
== ESP32-S3-DevKitC-1, BPI-Leaf-S3 Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Dev Board&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| GPIO Pins&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v Pins&lt;br /&gt;
| 3&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5v Pins&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND Pins&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| ARGB LEDs&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| Chip Internal USB&lt;br /&gt;
| USB-C Connector x 1&lt;br /&gt;
| MicroUSB Connector x 1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL to USB&lt;br /&gt;
| None&lt;br /&gt;
| CP2102-MicroUSB Connector x 1&lt;br /&gt;
|-&lt;br /&gt;
| External Battery Socket&lt;br /&gt;
| 3.7v Li-ion Battery dock&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Battery Charging&lt;br /&gt;
| 500mA Charging Current&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| JST SH 1mm 4-Pin Socket&lt;br /&gt;
| 1&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The amount, numeric order, and spacing of IO pins on BPI-Leaf-S3 are identical to the Espressif ESP32-S3-DevKitC-1.&lt;br /&gt;
&lt;br /&gt;
The BPI-Leaf-S3 dev board no longer equips traditional UART TTL to USB converter chip and its dedicated USB port.  This is due to the ESP32-S3 chip's internal USB function were improved, supporting CDC-ACM virtual serial port and JTAG interface, which is capable of software development and firmware management feature, that makes the external converter chip redundant. &lt;br /&gt;
&lt;br /&gt;
Compared to ESP32-S3-DevKitC-1 dev board, the BPI-Leaf-S3 adds an external battery socket and a charging circuit, capable of charging the battery via USB. When a 3.7v battery is connected, unplugging the USB will not cause the program to break, making it fit for multiple applications.&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3 dev board is equipped with an I²C 4 pin dock, this stabalizes connection to other I²C peripherals.  This dock is not only restricted to I²C connection, any module that requires a 3.3v pin, a GND pin, one or two data pin can also be connected to the Leaf-S3 via this 4 pin dock.&lt;br /&gt;
&lt;br /&gt;
==Espressif ESP32-S3==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 is a dual-core XTensa LX7 MCU, capable of running at 240 MHz. Apart from its 512 KB of internal SRAM, it also comes with integrated 2.4 GHz, 802.11 b/g/n Wi-Fi and Bluetooth 5 (LE) connectivity that provides long-range support. It has 45 programmable GPIOs and supports a rich set of peripherals. Compared with ESP32, it supports larger, high-speed octal SPI flash, and PSRAM with configurable data and instruction cache.&lt;br /&gt;
&lt;br /&gt;
What follows is a description of the most important features of ESP32-S3.&lt;br /&gt;
&lt;br /&gt;
* Wi-Fi + Bluetooth 5 (LE) Wireless Connectivity: ESP32-S3 supports a 2.4 GHz Wi-Fi (802.11 b/g/n) with 40 MHz of bandwidth support. The Bluetooth Low Energy subsystem supports long range through Coded PHY and advertisement extension. It also supports higher transmission speed and data throughput, with 2 Mbps PHY. Both Wi-Fi and BLE have superior RF performance that is maintained even at high temperatures.&lt;br /&gt;
&lt;br /&gt;
* AI Acceleration Support: ESP32-S3 has additional support for vector instructions in the MCU, which provides acceleration for neural network computing and signal processing workloads. The software libraries for the above-mentioned optimized functions will become available very soon, in the form of updates to ESP-WHO and ESP-Skainet.&lt;br /&gt;
&lt;br /&gt;
* Rich Set of IO Peripherals: ESP32-S3 has 44 programmable GPIOs, namely 10 more GPIOs than those of ESP32. ESP32-S3 supports all the commonly-used peripherals, such as SPI, I2S, I2C, PWM, RMT, ADC and UART, SD/MMC host and TWAITM. In total, 14 GPIOs can be configured as capacitive touch input for HMI applications. Apart from all these peripherals, however, ESP32-S3 is also equipped with an ultra-low-power (ULP) core that supports multiple low-power modes in a variety of such use-cases.&lt;br /&gt;
&lt;br /&gt;
* Security:ESP32-S3 provides all the necessary security requirements for building securely connected devices, without requiring any external components. It supports AES-XTS-based flash encryption and RSA-based secure boot. In addition, ESP32-S3 has a digital signature peripheral and an HMAC module, which provide functionality that is similar to the hardware secure element, thus protecting the private or symmetric key from software attacks and identity theft. ESP32-S3 also has a “World Controller” peripheral that provides two fully-isolated execution environments, which enable the implementation of a trusted-execution environment or a privilege-separation scheme.&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
&lt;br /&gt;
*[https://bpi-steam.com/Leaf_S3_doc/en/ Getting Started with BPI-Leaf-S3]&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== Hardware sketch map ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Spec ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 Spec&lt;br /&gt;
|-&lt;br /&gt;
| SoC&lt;br /&gt;
| ESP32-S3，Xtensa® dual-core 32-bit LX7 microprocessor&lt;br /&gt;
|-&lt;br /&gt;
| Clock Frequency&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| Operating Temperature&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| Internal ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| Internal SRAM&lt;br /&gt;
| 512 KB&lt;br /&gt;
|-&lt;br /&gt;
| Onboard FLASH ROM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| In-packge PSRAM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-Leaf-S3 has led out 36 available gpios&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
|  2 × 12-bit SAR ADCs, up to 20 channels&lt;br /&gt;
|-&lt;br /&gt;
| Touch Sensor&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1 × LCD interface (8-bit ~16-bit parallel RGB, I8080 and MOTO6800)&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1 × DVP 8-bit ~16-bit camera interface&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 &lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 channels 14 bits&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × full-speed USB OTG，female Type-C socket&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG controller&lt;br /&gt;
| 1，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
| 1，ranging from -20 °C to 110 °C&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO host controller with 2 slots,SD 3.0,SD 3.01,SDIO 3.0,CE-ATA 1.1,MMC 4.41,eMMC 4.5,eMMC 4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® controller&lt;br /&gt;
| 1 ，compatible with ISO 11898-1 (CAN Specification 2.0)&lt;br /&gt;
|-&lt;br /&gt;
| General DMA controller (GDMA)&lt;br /&gt;
| 5 transmit channels and 5 receive channels&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 TX channels,4RX channels.Eight channels share a 384 x 32-bit RAM&lt;br /&gt;
|-&lt;br /&gt;
| Pulse Count Controller&lt;br /&gt;
| 4 independent pulse counters (units).Each unit consists of two independent channels&lt;br /&gt;
|-&lt;br /&gt;
| Timers&lt;br /&gt;
| 4 × 54-bit general-purpose timers. 1 × 52-bit system timer. 3 × watchdog timers&lt;br /&gt;
|-&lt;br /&gt;
| External crystal oscillator&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC and Low­Power Management&lt;br /&gt;
| Power Management Unit (PMU) + Ultra-­Low-­Power Coprocessor(ULP)&lt;br /&gt;
|-&lt;br /&gt;
| Deep-sleep consumption current&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| Operating Voltage&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| Input Voltage&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| Maximum discharge current&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB charge&lt;br /&gt;
| Support&lt;br /&gt;
|-&lt;br /&gt;
| Maximum charging current&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| Neopixel LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware Dimensions ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board_dimension.png | 700px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 Dimensions&lt;br /&gt;
|-&lt;br /&gt;
| Pin spacing&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole spacing&lt;br /&gt;
| 23mm/ 62.25mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole size&lt;br /&gt;
| bore 2mm/outside 3mm&lt;br /&gt;
|-&lt;br /&gt;
| Motherboard size&lt;br /&gt;
| 26 × 65.25(mm)/1.02 x 2.57(inches)&lt;br /&gt;
|-&lt;br /&gt;
| board thickness&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin spacing is breadboard compatible for easy application debugging.&lt;br /&gt;
&lt;br /&gt;
== Peripheral Pin Configurations ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 GPIO Pin define&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| Peripheral Interface&lt;br /&gt;
| Signal&lt;br /&gt;
| Pin&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| Touch sensor&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | The pins are assigned by default, and can be redefined to any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| any GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Used for FLASH and PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Pulse counter&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Neopixel LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS.&lt;br /&gt;
&lt;br /&gt;
It is recommend that developers install ESP-IDF via IDE.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README.md GitHub: ESP-IDF Eclipse Plugin README]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode Extension] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: README ] | [https://www.youtube.com/watch?v=Lc6ausiKvQM youtube: Quick User Guide for the ESP-IDF VSCode Extension]&lt;br /&gt;
&lt;br /&gt;
Or install manually based on operating system:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/windows-setup.html Standard Setup of Toolchain for Windows]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/linux-macos-setup.html Standard Toolchain Setup for Linux and macOS]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/index.html#api-reference ESP-IDF API Reference Docs]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/index.html#api-guides ESP-IDF API Guides]&lt;br /&gt;
&lt;br /&gt;
To enable your BPI-Leaf-S3 device to flash via USB-CDC.&lt;br /&gt;
&lt;br /&gt;
There are two ways to enter Bootloader mode:&lt;br /&gt;
&lt;br /&gt;
# Connect it to the computer via USB, hold BOOT button, press RST button once, then release BOOT button.&lt;br /&gt;
# Hold BOOT button while disconnected to power, connect to PC via USB, then release BOOT button.&lt;br /&gt;
&lt;br /&gt;
The chip controls GPIO0 via BOOT button to choose between reset or cold boot.&lt;br /&gt;
&lt;br /&gt;
Confirm the port of your BPI-Leaf-S3 device via device manager, it might display different port if you are on different modes.&lt;br /&gt;
&lt;br /&gt;
*ESP-DL (deep learning) Auto-Generating Model Deployment Project using TVM: https://docs.espressif.com/projects/esp-dl/en/latest/esp32/tutorials/deploying-models-through-tvm.html&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Regardless of the programmer is a beginner or not, MicroPython is considered to be less difficult to develop than other MCU programming languages.&lt;br /&gt;
&lt;br /&gt;
Its code is easy to understand compared to other programming languages, and it has various resources accumulated over the years by the open source community.&lt;br /&gt;
&lt;br /&gt;
Just like Python, it has strong vitality and application value. &lt;br /&gt;
&lt;br /&gt;
* [[ micropython_operating_env | Building MicroPython Operating Environment ]]&lt;br /&gt;
* [[ micropython_firmware | MicroPython Firmware Download]]&lt;br /&gt;
&lt;br /&gt;
'''BPI-Steam resources'''&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/Environment.html MicroPython runtime environment setup]&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/Firmware.html Micropython firmware download and burning]&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/Basic.html Basic use case]&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/ESPNOW.html ESP-NOW use case]&lt;br /&gt;
&lt;br /&gt;
'''Forum resources'''&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-esp-now-on-micropython-easy-to-implement-networking-communication/15481 BPI-Leaf-S3 , ESP-NOW on MicroPython, easy to implement networking communication]&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-oled-displays-potentiometer-voltage-and-progress-bar/13718 BPI-Leaf-S3 OLED displays potentiometer voltage and progress bar]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-use-potentiometer-to-control-neopixel-steplessly/13703 BPI-Leaf-S3 with ESP32-S3, use potentiometer to control neopixel steplessly]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-use-key-interrupts-to-control-neopixel/13660 BPI-Leaf-S3 with ESP32-S3, use key interrupts to control neopixel]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-micropython-neopixel-show/13661 BPI-Leaf-S3 with ESP32-S3 &amp;amp; microPython Neopixel show]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-getting-started-blink-led-on-bread-board/13634 BPI-Leaf-S3 microPython getting started, blink LED on bread board]&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-micropython-display-web-clock-on-oled-screen/13324 BPI-Leaf-S3+MicroPython: Display Web Clock on OLED screen]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-use-adc-measuring-potentiometer-to-control-the-motor/13273 BPI-Leaf-S3+MicroPython:Use ADC measuring potentiometer to control the motor]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-with-tb6612fng-pwm-motor/13259 Banana Pi BPI-Leaf-S3 MicroPython with TB6612FNG PWM Motor]&lt;br /&gt;
* [https://forum.banana-pi.org/t/making-iot-programming-easy-using-micropython-on-bpi-leaf-s3/13248 Making IoT programming easy，using MicroPython on BPI-Leaf-S3]&lt;br /&gt;
&lt;br /&gt;
== CircuitPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards.&lt;br /&gt;
&lt;br /&gt;
CircuitPython programming with Mu editor is the easiest way to get started. Install the software and connect the device to start using it.&lt;br /&gt;
&lt;br /&gt;
[https://circuitpython.org/board/bpi_leaf_s3/ BPI-Leaf-S3 CircuitPython Download Page]&lt;br /&gt;
&lt;br /&gt;
[https://codewith.mu/ Mu Editor]&lt;br /&gt;
&lt;br /&gt;
'''How to install tinyUF2 firmware:'''&lt;br /&gt;
&lt;br /&gt;
To enable your BPI-Leaf-S3 device to flash via USB-CDC.&lt;br /&gt;
&lt;br /&gt;
Connect it to the computer via USB, hold BOOT button, press RST button once, then release BOOT button.&lt;br /&gt;
&lt;br /&gt;
In the Install, Repair, or Update UF2 Bootloader section at the bottom of the page, follow its instructions to download and install tinyUF2 firmware.&lt;br /&gt;
&lt;br /&gt;
'''How to install CircuitPython firmware：'''&lt;br /&gt;
&lt;br /&gt;
Click the DOWNLOAD .UF2 NOW button on the right side of the page to download the firmware to the local, and then copy it to the disk in BPI-Leaf-S3 UF2 Bootloader mode, and it can be used after automatic reset.&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/circuitpython GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/circuitpython/pull/6904&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/tinyuf2 GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/tinyuf2/pull/196&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino is an open source embedded software and hardware development platform for users to create interactive embedded projects.&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE download link] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing Install and configure the Arduino-ESP32 runtime environment]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino Getting Started]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
'''Supported by the arduino-esp32 GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/espressif/arduino-esp32/pull/7345&lt;br /&gt;
&lt;br /&gt;
The board has been merged into the master branch.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/sch/BPI-Leaf-S3-Chip-V0.1A.pdf BPI-Leaf-S3 schematic diagram PDF]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf ESP32-S3 Datasheet]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_en.pdf ESP32-S3 Technical Reference Manual]&lt;br /&gt;
&lt;br /&gt;
=Easy to buy sample=&lt;br /&gt;
&lt;br /&gt;
* BIPAI Aliexpress shop:https://www.aliexpress.com/item/1005004701866550.html?&lt;br /&gt;
* SINOVOIP Aliexpress shop : https://www.aliexpress.com/item/1005004428945296.html?spm=5261.ProductManageOnline.0.0.48af4edfYbyEoI&lt;br /&gt;
* Taobao shop : https://item.taobao.com/item.htm?spm=a2126o.success.0.0.29034831FGnLQW&amp;amp;id=677287234553&lt;br /&gt;
* OEM&amp;amp;OEM customized service ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3&amp;diff=16465</id>
		<title>BPI-Leaf-S3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3&amp;diff=16465"/>
				<updated>2023-11-15T02:15:50Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:BPI-Leaf-S3 开发板]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:Leaf-S3-incline-back.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:BPI-Centi-S3_2.jpg|thumb|[[BPI-Centi-S3]] with ESP32-S3 front]]&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi BPI-Leaf-S3 is a series of low-powered microcontrollers designed for IoT development and Maker DIY board.It supports 2.4 GHz Wi-Fi and Bluetooth® LE dual-mode wireless communication, the peripheral is compatible with low-power hardware design, and the power consumption is only 10uA in deep sleep mode.&lt;br /&gt;
&lt;br /&gt;
The main controller supports two power supply inputs: USB and external 3.7V lithium battery, both can be interchangable freely.  The battery could also be charged while USB is plugged in.  Compact size, various interface, easy to use, and can be directly applied to low-power IoT projects.&lt;br /&gt;
&lt;br /&gt;
In terms of programming, the Leaf-S3 supports ESP-IDF, Arduino, micropython and other methods.&lt;br /&gt;
&lt;br /&gt;
The IO pins on BPI-Leaf-S3 are identical to the Espressif ESP32-S3-DevKitC-1, developers can add peripherals that are supported by DevKitC-1 onto the BPI-Leaf-S3, and can also combine it onto a breadboard.&lt;br /&gt;
[[File:BPI-Leaf-S3_banner.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Key Features ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* Extereal FLASH 8MB &lt;br /&gt;
* In-packge PSRAM 2MB&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1* SH 1mm 4-Pin Socket, support I2C&lt;br /&gt;
* 1 * USB Type-C&lt;br /&gt;
* 1 * MX 1.25mm 2-Pin Socket，support USB charging&lt;br /&gt;
* 1 * Neopixel LED&lt;br /&gt;
&lt;br /&gt;
== ESP32-S3-DevKitC-1, BPI-Leaf-S3 Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Dev Board&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| GPIO Pins&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v Pins&lt;br /&gt;
| 3&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5v Pins&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND Pins&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| ARGB LEDs&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| Chip Internal USB&lt;br /&gt;
| USB-C Connector x 1&lt;br /&gt;
| MicroUSB Connector x 1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL to USB&lt;br /&gt;
| None&lt;br /&gt;
| CP2102-MicroUSB Connector x 1&lt;br /&gt;
|-&lt;br /&gt;
| External Battery Socket&lt;br /&gt;
| 3.7v Li-ion Battery dock&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Battery Charging&lt;br /&gt;
| 500mA Charging Current&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| JST SH 1mm 4-Pin Socket&lt;br /&gt;
| 1&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The amount, numeric order, and spacing of IO pins on BPI-Leaf-S3 are identical to the Espressif ESP32-S3-DevKitC-1.&lt;br /&gt;
&lt;br /&gt;
The BPI-Leaf-S3 dev board no longer equips traditional UART TTL to USB converter chip and its dedicated USB port.  This is due to the ESP32-S3 chip's internal USB function were improved, supporting CDC-ACM virtual serial port and JTAG interface, which is capable of software development and firmware management feature, that makes the external converter chip redundant. &lt;br /&gt;
&lt;br /&gt;
Compared to ESP32-S3-DevKitC-1 dev board, the BPI-Leaf-S3 adds an external battery socket and a charging circuit, capable of charging the battery via USB. When a 3.7v battery is connected, unplugging the USB will not cause the program to break, making it fit for multiple applications.&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3 dev board is equipped with an I²C 4 pin dock, this stabalizes connection to other I²C peripherals.  This dock is not only restricted to I²C connection, any module that requires a 3.3v pin, a GND pin, one or two data pin can also be connected to the Leaf-S3 via this 4 pin dock.&lt;br /&gt;
&lt;br /&gt;
==Espressif ESP32-S3==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 is a dual-core XTensa LX7 MCU, capable of running at 240 MHz. Apart from its 512 KB of internal SRAM, it also comes with integrated 2.4 GHz, 802.11 b/g/n Wi-Fi and Bluetooth 5 (LE) connectivity that provides long-range support. It has 45 programmable GPIOs and supports a rich set of peripherals. Compared with ESP32, it supports larger, high-speed octal SPI flash, and PSRAM with configurable data and instruction cache.&lt;br /&gt;
&lt;br /&gt;
What follows is a description of the most important features of ESP32-S3.&lt;br /&gt;
&lt;br /&gt;
* Wi-Fi + Bluetooth 5 (LE) Wireless Connectivity: ESP32-S3 supports a 2.4 GHz Wi-Fi (802.11 b/g/n) with 40 MHz of bandwidth support. The Bluetooth Low Energy subsystem supports long range through Coded PHY and advertisement extension. It also supports higher transmission speed and data throughput, with 2 Mbps PHY. Both Wi-Fi and BLE have superior RF performance that is maintained even at high temperatures.&lt;br /&gt;
&lt;br /&gt;
* AI Acceleration Support: ESP32-S3 has additional support for vector instructions in the MCU, which provides acceleration for neural network computing and signal processing workloads. The software libraries for the above-mentioned optimized functions will become available very soon, in the form of updates to ESP-WHO and ESP-Skainet.&lt;br /&gt;
&lt;br /&gt;
* Rich Set of IO Peripherals: ESP32-S3 has 44 programmable GPIOs, namely 10 more GPIOs than those of ESP32. ESP32-S3 supports all the commonly-used peripherals, such as SPI, I2S, I2C, PWM, RMT, ADC and UART, SD/MMC host and TWAITM. In total, 14 GPIOs can be configured as capacitive touch input for HMI applications. Apart from all these peripherals, however, ESP32-S3 is also equipped with an ultra-low-power (ULP) core that supports multiple low-power modes in a variety of such use-cases.&lt;br /&gt;
&lt;br /&gt;
* Security:ESP32-S3 provides all the necessary security requirements for building securely connected devices, without requiring any external components. It supports AES-XTS-based flash encryption and RSA-based secure boot. In addition, ESP32-S3 has a digital signature peripheral and an HMAC module, which provide functionality that is similar to the hardware secure element, thus protecting the private or symmetric key from software attacks and identity theft. ESP32-S3 also has a “World Controller” peripheral that provides two fully-isolated execution environments, which enable the implementation of a trusted-execution environment or a privilege-separation scheme.&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
&lt;br /&gt;
*[https://bpi-steam.com/Leaf_S3_doc/en/ Getting Started with BPI-Leaf-S3]&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== Hardware sketch map ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Spec ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 Spec&lt;br /&gt;
|-&lt;br /&gt;
| SoC&lt;br /&gt;
| ESP32-S3，Xtensa® dual-core 32-bit LX7 microprocessor&lt;br /&gt;
|-&lt;br /&gt;
| Clock Frequency&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| Operating Temperature&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| Internal ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| Internal SRAM&lt;br /&gt;
| 512 KB&lt;br /&gt;
|-&lt;br /&gt;
| Onboard FLASH ROM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| In-packge PSRAM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-Leaf-S3 has led out 36 available gpios&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
|  2 × 12-bit SAR ADCs, up to 20 channels&lt;br /&gt;
|-&lt;br /&gt;
| Touch Sensor&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1 × LCD interface (8-bit ~16-bit parallel RGB, I8080 and MOTO6800)&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1 × DVP 8-bit ~16-bit camera interface&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 &lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 channels 14 bits&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × full-speed USB OTG，female Type-C socket&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG controller&lt;br /&gt;
| 1，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
| 1，ranging from -20 °C to 110 °C&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO host controller with 2 slots,SD 3.0,SD 3.01,SDIO 3.0,CE-ATA 1.1,MMC 4.41,eMMC 4.5,eMMC 4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® controller&lt;br /&gt;
| 1 ，compatible with ISO 11898-1 (CAN Specification 2.0)&lt;br /&gt;
|-&lt;br /&gt;
| General DMA controller (GDMA)&lt;br /&gt;
| 5 transmit channels and 5 receive channels&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 TX channels,4RX channels.Eight channels share a 384 x 32-bit RAM&lt;br /&gt;
|-&lt;br /&gt;
| Pulse Count Controller&lt;br /&gt;
| 4 independent pulse counters (units).Each unit consists of two independent channels&lt;br /&gt;
|-&lt;br /&gt;
| Timers&lt;br /&gt;
| 4 × 54-bit general-purpose timers. 1 × 52-bit system timer. 3 × watchdog timers&lt;br /&gt;
|-&lt;br /&gt;
| External crystal oscillator&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC and Low­Power Management&lt;br /&gt;
| Power Management Unit (PMU) + Ultra-­Low-­Power Coprocessor(ULP)&lt;br /&gt;
|-&lt;br /&gt;
| Deep-sleep consumption current&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| Operating Voltage&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| Input Voltage&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| Maximum discharge current&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB charge&lt;br /&gt;
| Support&lt;br /&gt;
|-&lt;br /&gt;
| Maximum charging current&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| Neopixel LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware Dimensions ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board_dimension.png | 700px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 Dimensions&lt;br /&gt;
|-&lt;br /&gt;
| Pin spacing&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole spacing&lt;br /&gt;
| 23mm/ 62.25mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole size&lt;br /&gt;
| bore 2mm/outside 3mm&lt;br /&gt;
|-&lt;br /&gt;
| Motherboard size&lt;br /&gt;
| 26 × 65.25(mm)/1.02 x 2.57(inches)&lt;br /&gt;
|-&lt;br /&gt;
| board thickness&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin spacing is breadboard compatible for easy application debugging.&lt;br /&gt;
&lt;br /&gt;
== Peripheral Pin Configurations ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 GPIO Pin define&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| Peripheral Interface&lt;br /&gt;
| Signal&lt;br /&gt;
| Pin&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| Touch sensor&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | The pins are assigned by default, and can be redefined to any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| any GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Used for FLASH and PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Pulse counter&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Neopixel LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS.&lt;br /&gt;
&lt;br /&gt;
It is recommend that developers install ESP-IDF via IDE.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README.md GitHub: ESP-IDF Eclipse Plugin README]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode Extension] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: README ] | [https://www.youtube.com/watch?v=Lc6ausiKvQM youtube: Quick User Guide for the ESP-IDF VSCode Extension]&lt;br /&gt;
&lt;br /&gt;
Or install manually based on operating system:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/windows-setup.html Standard Setup of Toolchain for Windows]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/linux-macos-setup.html Standard Toolchain Setup for Linux and macOS]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/index.html#api-reference ESP-IDF API Reference Docs]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/index.html#api-guides ESP-IDF API Guides]&lt;br /&gt;
&lt;br /&gt;
To enable your BPI-Leaf-S3 device to flash via USB-CDC.&lt;br /&gt;
&lt;br /&gt;
There are two ways to enter Bootloader mode:&lt;br /&gt;
&lt;br /&gt;
# Connect it to the computer via USB, hold BOOT button, press RST button once, then release BOOT button.&lt;br /&gt;
# Hold BOOT button while disconnected to power, connect to PC via USB, then release BOOT button.&lt;br /&gt;
&lt;br /&gt;
The chip controls GPIO0 via BOOT button to choose between reset or cold boot.&lt;br /&gt;
&lt;br /&gt;
Confirm the port of your BPI-Leaf-S3 device via device manager, it might display different port if you are on different modes.&lt;br /&gt;
&lt;br /&gt;
*ESP-DL (deep learning) Auto-Generating Model Deployment Project using TVM: https://docs.espressif.com/projects/esp-dl/en/latest/esp32/tutorials/deploying-models-through-tvm.html&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Regardless of the programmer is a beginner or not, MicroPython is considered to be less difficult to develop than other MCU programming languages.&lt;br /&gt;
&lt;br /&gt;
Its code is easy to understand compared to other programming languages, and it has various resources accumulated over the years by the open source community.&lt;br /&gt;
&lt;br /&gt;
Just like Python, it has strong vitality and application value. &lt;br /&gt;
&lt;br /&gt;
* [[ micropython_operating_env | Building MicroPython Operating Environment ]]&lt;br /&gt;
* [[ micropython_firmware | MicroPython Firmware Download]]&lt;br /&gt;
&lt;br /&gt;
'''BPI-Steam resources'''&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/Environment.html MicroPython runtime environment setup]&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/Firmware.html Micropython firmware download and burning]&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/Basic.html Basic use case]&lt;br /&gt;
* [https://bpi-steam.com/Leaf_S3_doc/en/MicroPython/ESPNOW.html ESP-NOW use case]&lt;br /&gt;
&lt;br /&gt;
'''Forum resources'''&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-esp-now-on-micropython-easy-to-implement-networking-communication/15481 BPI-Leaf-S3 , ESP-NOW on MicroPython, easy to implement networking communication]&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-oled-displays-potentiometer-voltage-and-progress-bar/13718 BPI-Leaf-S3 OLED displays potentiometer voltage and progress bar]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-use-potentiometer-to-control-neopixel-steplessly/13703 BPI-Leaf-S3 with ESP32-S3, use potentiometer to control neopixel steplessly]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-use-key-interrupts-to-control-neopixel/13660 BPI-Leaf-S3 with ESP32-S3, use key interrupts to control neopixel]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-micropython-neopixel-show/13661 BPI-Leaf-S3 with ESP32-S3 &amp;amp; microPython Neopixel show]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-getting-started-blink-led-on-bread-board/13634 BPI-Leaf-S3 microPython getting started, blink LED on bread board]&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-micropython-display-web-clock-on-oled-screen/13324 BPI-Leaf-S3+MicroPython: Display Web Clock on OLED screen]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-use-adc-measuring-potentiometer-to-control-the-motor/13273 BPI-Leaf-S3+MicroPython:Use ADC measuring potentiometer to control the motor]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-with-tb6612fng-pwm-motor/13259 Banana Pi BPI-Leaf-S3 MicroPython with TB6612FNG PWM Motor]&lt;br /&gt;
* [https://forum.banana-pi.org/t/making-iot-programming-easy-using-micropython-on-bpi-leaf-s3/13248 Making IoT programming easy，using MicroPython on BPI-Leaf-S3]&lt;br /&gt;
&lt;br /&gt;
== CircuitPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards.&lt;br /&gt;
&lt;br /&gt;
CircuitPython programming with Mu editor is the easiest way to get started. Install the software and connect the device to start using it.&lt;br /&gt;
&lt;br /&gt;
[https://circuitpython.org/board/bpi_leaf_s3/ BPI-Leaf-S3 CircuitPython Download Page]&lt;br /&gt;
&lt;br /&gt;
[https://codewith.mu/ Mu Editor]&lt;br /&gt;
&lt;br /&gt;
'''How to install tinyUF2 firmware:'''&lt;br /&gt;
&lt;br /&gt;
To enable your BPI-Leaf-S3 device to flash via USB-CDC.&lt;br /&gt;
&lt;br /&gt;
Connect it to the computer via USB, hold BOOT button, press RST button once, then release BOOT button.&lt;br /&gt;
&lt;br /&gt;
In the Install, Repair, or Update UF2 Bootloader section at the bottom of the page, follow its instructions to download and install tinyUF2 firmware.&lt;br /&gt;
&lt;br /&gt;
'''How to install CircuitPython firmware：'''&lt;br /&gt;
&lt;br /&gt;
Click the DOWNLOAD .UF2 NOW button on the right side of the page to download the firmware to the local, and then copy it to the disk in BPI-Leaf-S3 UF2 Bootloader mode, and it can be used after automatic reset.&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/circuitpython GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/circuitpython/pull/6904&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/tinyuf2 GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/tinyuf2/pull/196&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino is an open source embedded software and hardware development platform for users to create interactive embedded projects.&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE download link] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing Install and configure the Arduino-ESP32 runtime environment]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino Getting Started]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
'''Supported by the arduino-esp32 GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/espressif/arduino-esp32/pull/7345&lt;br /&gt;
&lt;br /&gt;
The board has been merged into the master branch.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/sch/BPI-Leaf-S3-Chip-V0.1A.pdf BPI-Leaf-S3 schematic diagram PDF]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf ESP32-S3 Datasheet]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_en.pdf ESP32-S3 Technical Reference Manual]&lt;br /&gt;
&lt;br /&gt;
=Easy to buy sample=&lt;br /&gt;
&lt;br /&gt;
* BIPAI Aliexpress shop:https://www.aliexpress.com/item/1005004701866550.html?&lt;br /&gt;
* SINOVOIP Aliexpress shop : https://www.aliexpress.com/item/1005004428945296.html?spm=5261.ProductManageOnline.0.0.48af4edfYbyEoI&lt;br /&gt;
* Taobao shop : https://item.taobao.com/item.htm?spm=a2126o.success.0.0.29034831FGnLQW&amp;amp;id=677287234553&lt;br /&gt;
* OEM&amp;amp;OEM customized service ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16464</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16464"/>
				<updated>2023-11-15T02:08:14Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, 2G LPDDR4 memory and 8G eMMC, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_minimal_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1Mh8E6Zh-x8dAPkb00iX9Rw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/159Y7p8j067snqTG4oaUA2CP4aY4t6uyt/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1_sN137hKZt4DaawVsfO5Nw?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/10wXnsgGtLWwf9J-dvLHW2mxsPKOrdHmJ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
*Aliexpress shop:&lt;br /&gt;
:SINOVOIP Aliexpress shop: https://www.aliexpress.us/item/1005006212355480.html?spm&lt;br /&gt;
:Bipai Aliexpress shop: https://www.aliexpress.us/item/1005006212128000.html?gatewayAdapt=glo2usa&lt;br /&gt;
:OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16461</id>
		<title>Getting Started with BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16461"/>
				<updated>2023-11-14T03:11:26Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Prepare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Zero]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface, an HDMI cable, and a mini HDMI to HDMI adapter.&lt;br /&gt;
:3. Use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor and BPI-M4 Zero, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Zero UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Zero, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Zero on the router management interface, or use the following command on the BPI-M4 Zero UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Zero is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Zero user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Zero in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Zero in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Zero board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Zero.If it is a USB disk with a type-A plug, you also need a type-A to type-C adapter.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Zero Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4zero:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Zero in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=16453</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=16453"/>
				<updated>2023-11-13T06:30:46Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 香蕉派快速上手使用并开始开发 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Main_Page]]&lt;br /&gt;
&amp;lt;div id=&amp;quot;快速开始&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Website.jpg|thumb| [[香蕉派(Banana Pi) 开源社区生态与物联网整体技术解决方案]]]]&lt;br /&gt;
[[File:Banana Pi BPI-W3 LGA 1.jpg|thumb|[[Banana Pi BPI-W3]] with Rockchip RK3588 chip design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Router_2.jpg|thumb|[[香蕉派 BPI-R3]] with MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[香蕉派 BPI-M2S]] Amlogic A311D chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R2_Pro_1_750.jpg|thumb|[[香蕉派 BPI-R2 Pro]] Rockchip RK3568 design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[香蕉派 BPI-M2 Pro]] S905x3 方案设计]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[香蕉派 BPI-M5 ]]Amlogic S905X3 方案设计]]&lt;br /&gt;
[[File:Banana_PI_BPI-F2P_3.JPG|thumb| [[香蕉派 BPI-F2P]]工业物联网网关开发板]]&lt;br /&gt;
[[File:Banana_Pi_BPI-F2S_1_.JPG|thumb| [[香蕉派 BPI-F2S]] with Sunplus SP7021]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R64_1.jpg|thumb|[[香蕉派 BPI-R64]] MTK MT7622]]&lt;br /&gt;
[[File:O2A0500.jpg|thumb|[[香蕉派 BPI-W2]] Realtek RD1296]]&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[香蕉派 BPI-R2]] MTK MT7623N]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_1.jpg|thumb|[[香蕉派 BPI-M4]] Realtek RTD1395]]&lt;br /&gt;
[[File:Banana_pi_BPI-M64_1.jpg|thumb|[[香蕉派 BPI-M64]] Allwinner A64]]&lt;br /&gt;
[[File:Banana_pi_BPI-M3_1.jpg|thumb|[[香蕉派 BPI-M3]] Allwinner A83T]]&lt;br /&gt;
[[File:BPI-F2_zero_1.JPG|thumb|[[香蕉派 BPI-P2 Zero]] Allwinner H2+/H3/H5]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2+_2.jpg|thumb|[[香蕉派 BPI-M2+]] Allwinner H3/H5/H2+]3]]&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[香蕉派 BPI-M2 ZERO]] Allwinner H2+/H3/H5]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Ultra_2.JPG|thumb|[[香蕉派 BPI-M2U]] Allwinner R40/V40/A40i]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[香蕉派 BPI-M2 Berry]] Allwinner R40/V40/A40i]]&lt;br /&gt;
[[File:Banana_pi_bpi-m2_magic_5.JPG|thumb|[[香蕉派 BPI-M2M]] Allwinner A33/R16]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[香蕉派 BPI-R1]] Allwinner A20]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_1.jpg|thumb|[[香蕉派 BPI-M1+]] Allwinner A20]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1_1.jpg|thumb|[[香蕉派 BPI-M1]] Allwinner A20]]&lt;br /&gt;
&lt;br /&gt;
=香蕉派(Banana Pi)开源硬件项目介绍=&lt;br /&gt;
&lt;br /&gt;
[[File:Website.jpg]]&lt;br /&gt;
&lt;br /&gt;
[https://www.banana-pi.org.cn/ '''香蕉派（Banana Pi）''']是由[http://wiki.banana-pi.org/%E5%B9%BF%E4%B8%9C%E6%AF%94%E6%B4%BE%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%E5%85%AC%E5%8F%B8%E4%BB%8B%E7%BB%8D '''广东比派科技有限公司''']主导的一个开源硬件项目，专注在ARM，MCU系列开源硬件开发板，提供全开放的软件与硬件平台,打造基础技术开发平台。重点打造[[香蕉派(Banana Pi) 开源社区生态与物联网整体技术解决方案]].&lt;br /&gt;
&lt;br /&gt;
全系列开源硬件产品，完整整合了语音，数据，视频系统平台,传感器。开发者可以灵活的在开源硬件基础平台上搭建各种应用平台。可以应用在物联网，AI 人工智能 ，工业互联网控制，STEAM教育等各方面。&lt;br /&gt;
&lt;br /&gt;
欢迎加入[https://forum.banana-pi.org.cn/ '''Banana Pi中文官方论坛''']进行技术讨论，可以在[https://shop108780008.taobao.com/?spm=a1z10.1.0.0.EZ5mQu '''比派科技淘宝官方店''']购买样品进行DIY.&lt;br /&gt;
&lt;br /&gt;
'''[[BPI 4.0 定制服务]]'''已经全球有100多个'''[[BPI 4.0 成功案例]]'''，为客户提供研发，生产，供应链管理，产品认证一站式服务。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==香蕉派快速上手使用并开始开发==&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[快速上手 香蕉派镜像烧录与系统启动]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M1]] [[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M1+]] [[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-P2 Zero]] &lt;br /&gt;
*[[快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry]][[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M2 Magic]][[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M2 Zero]] &lt;br /&gt;
*[[快速上手 香蕉派 BPI-M2+]] [[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M64]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M3]][[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 BPI-M4 Berry | 快速上手 香蕉派 BPI-M4 Berry ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[快速上手 香蕉派 BPI-R1]][[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-R2]] [[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-W2]] [[Image:hot.gif]]&lt;br /&gt;
*[[Getting Started with R2PRO]] &lt;br /&gt;
*[[Getting Started with R64]]&lt;br /&gt;
*[[Getting Started with BPI-R3]]&lt;br /&gt;
*[[Getting Started with BPI-W3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[[Getting Started with M64]]&lt;br /&gt;
*[[Getting Started with M3]]&lt;br /&gt;
*[[Getting Started with M4]]&lt;br /&gt;
*[[Getting Started with M5/M2Pro]]&lt;br /&gt;
*[[Getting Started with M2S]]&lt;br /&gt;
*[[Getting Started with CM4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=镜像和开发工具=&lt;br /&gt;
=== 嵌入式系统 ===&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[[Armbian]]&lt;br /&gt;
*[[Tina Linux]]&lt;br /&gt;
*[[Mainline Linux uboot 2019.07]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 开发工具 ===&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Using 4G module with BananaPi]]&lt;br /&gt;
*[[WiFi/AP/BT/BLE on BananaPi]]&lt;br /&gt;
*[[OpenCV 3.4x on BananaPi]]&lt;br /&gt;
*[[How to use DHT Sensor via banana pi]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Github编译源码 ===&lt;br /&gt;
* 香蕉派开源硬件源代码github : https://github.com/bpi-sinovoip&lt;br /&gt;
* STEAM教育产品源代码github :  https://github.com/BPI-STEAM&lt;br /&gt;
&lt;br /&gt;
=香蕉派（Banana Pi）开源硬件产品系列=&lt;br /&gt;
&lt;br /&gt;
[https://pan.baidu.com/s/1QE18Hh2D1asNI1z9TFNspQ 香蕉派产品数码照片百度下载 提取码: 4y75] &lt;br /&gt;
===香蕉派系列单板计算机: [[Banana Pi 单板计算机系列产品比较表]] ===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi single board computer&amp;quot;&amp;gt;&amp;lt;/div &amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-M1]] [Allwinner A20] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M1+]] [Allwinner A20] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M2 ZERO]] [Allwinner H2+/H3/H5] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-P2 Zero]] [allwinner H2+/H3/H5]&lt;br /&gt;
*[[香蕉派 BPI-M2+]] [Allwinner H3/H5/H2+] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M2 Magic]] [Allwinner A33/R16] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M2 Berry]] [Allwinner R40/V40/A40i] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M2 Ultra]] [Allwinner  R40/V40/A40i][[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M64]] [Allwinner  A64] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M3]] [Allwinner A83T] [[Image:hot.gif]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-F2]] [Freescale IMX6] &lt;br /&gt;
*[[香蕉派 BPI-F2S]] [Sunplus SP7021 工业级开发板] &lt;br /&gt;
*[[香蕉派 BPI-F2P]] [Sunplus SP7021 工业控制网关开发板] &lt;br /&gt;
*[[香蕉派 BPI-S64 Core]]  [Actions S700] &lt;br /&gt;
*[[香蕉派 BPI-M4]] [Realtek 1395]&lt;br /&gt;
*[[香蕉派 BPI-M4 Berry]][Allwinner H618]&lt;br /&gt;
*[[香蕉派 BPI-M5]] [Amlogic S905x3]&lt;br /&gt;
*[[香蕉派 BPI-M2 Pro]] [Amlogic S905x3]&lt;br /&gt;
*[[香蕉派 BPI-M2S]] [Amlogic A311D&amp;amp;S922X]&lt;br /&gt;
*[[香蕉派 BPI-M6]] [ Synaptics VS680]&lt;br /&gt;
*[[香蕉派 BPI-P2 Pro]] [Rockchip RK3308]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派系列开源智能路由器: [[Banana Pi 开源路由器产品系列比较表]]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino Products&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-R4]] [MTK MT7988(Filogic 880)] &lt;br /&gt;
*[[香蕉派 BPI-R3]] [MTK MT7986(Filogic 830)] &lt;br /&gt;
*[[香蕉派 BPI-R3 Mini]] [MTK MT7986(Filogic 830)] &lt;br /&gt;
*[[香蕉派 BPI-R64]] [MTK MT7622]&lt;br /&gt;
*[[香蕉派 BPI-R2]] [MTK MT7623N] [[Image:hot.gif]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-W3]] [Rockchip RK3588]&lt;br /&gt;
*[[香蕉派 BPI-R2 Pro]] [Rockchip RK3568]&lt;br /&gt;
*[[香蕉派 BPI-W2]] [Realtek 1296] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-R1]] [Allwinner A20] &lt;br /&gt;
*[[香蕉派 BPI-Wifi6 路由器]] [创耀科技 TR6560 + TR5220 wifi SOC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Banana Pi Core board and development Kit===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi AI&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-CM2]] [Rockchip RK3568]&lt;br /&gt;
*[[香蕉派 BPI-CM4]] [Amlogic A311D]&lt;br /&gt;
*[[香蕉派 BPI-CM5]] [Amlogic A311D2]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-RK3588 Core board and development Kit]] [Rochchip RK3588]&lt;br /&gt;
*[[香蕉派 BPI-W3]] [Rockchip RK3588 LGA core board]&lt;br /&gt;
*[[Banana Pi BPI-S64 Core]]  [Actions S700]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派系列开源AI智能开发板===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi AI&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-AI-Voice (Microsemi)]] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI-EAI80 AIoT 开发板]] 格力零边界 EAI80芯片方案 &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-R18-AI 语音麦克风陈列开发套件(Allwinner SoC-Only 3-Mic Far-Field Dev Kit) ]][[Image:hot.gif]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[AIWorld P1]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派 Webduino &amp;amp; Arduino &amp;amp; MicroPython 产品系列===&lt;br /&gt;
&lt;br /&gt;
Banana Pi Webduino &amp;amp; Arduino &amp;amp; MicroPython 主板&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino &amp;amp; MicroPython Products&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-Bit STEAM 教育开发板]] [ESP32] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI-Bit-S2 STEAM 教育开发板]][ESP32-S2]&lt;br /&gt;
*[[BPI-Smart STEAM教育开发板]] [ESP8266]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-UNO32 Arduino开发板]] [ESP32] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI-Leaf-S2 开发板]][ESP32-S2]&lt;br /&gt;
*[[BPI-Leaf-S3 开发板]][ESP32-S3]&lt;br /&gt;
*[[BPI-PicoW-S3 开发板]][ESP32-S3]&lt;br /&gt;
*[[BPI-Centi-S3 开发板]][ESP32-S3 ST7789]&lt;br /&gt;
*[[BPI-Pico-RP2040 开发板]][RP2040]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-NANO Arduino开源开发板]] [ATmega328P]&lt;br /&gt;
*[[BPI-UNO Arduino开源开发板]] [ATmega328P]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Banana Pi Webduino &amp;amp; Arduino &amp;amp; Micro:bit 主板扩展板&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino boards Accessories&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[ BPI-UNO32 shell compatible LEGO bricks ]] [[Image:hot.gif]]&lt;br /&gt;
*[[ BPI-bit acrylic shell compatible LEGO bricks ]] &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[ BPI:bit gpio expansion board ]]&lt;br /&gt;
*[[ BPI:bit robot 机器人扩展板]]&lt;br /&gt;
*[[ BPI:bit MoonCar 登月小车]]&lt;br /&gt;
*[[香蕉派 Q-Car]] [支持BPI:bit BPI:AI Micro:bit]&lt;br /&gt;
*[[香蕉派 Triode-Car]][支持BPI:bit Micro:bit]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[ BPI-BT BLE 4.2 control module  ]]&lt;br /&gt;
*[[BPI-Nano robot 机器人扩展板]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派嵌入式工业控制网关方案===&lt;br /&gt;
&lt;br /&gt;
*[[BPI-6202 嵌入式单板工控机]]&lt;br /&gt;
*[[BPI-5202 龙芯2K1000LA嵌入式单板工控机]]&lt;br /&gt;
*[[BPI-FSM1819D 伺服电机驱动控制器]]&lt;br /&gt;
*[[5G + 4G LTE + Wifi AC + 5千兆网口 多卡聚合融合通信网关]] 采用MTK MT7622/7623N芯片设计&lt;br /&gt;
*[[基于BPI-M2 Ultra 的工业控制网关设计]] 采用Allwinner A40i芯片设计&lt;br /&gt;
&lt;br /&gt;
===香蕉派IoT物联网开发板与技术解决方案===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI NB-IoT Linaro 96Boars]] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI-CC2650 Zigbee BT Linaro 96Boars]] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI Zigbee BT5.0 IoT module]]&lt;br /&gt;
*[[BPI-GSM module]]&lt;br /&gt;
*[[BPI-9600 IEEE 802.3af PoE module]]&lt;br /&gt;
*[[BPI-7402 IEEE 802.3at PoE module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI NB-BC95 NB-IoT ]] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI Z-Wave Gateway IoT module]]&lt;br /&gt;
*[[4G module via USB]]&lt;br /&gt;
*[[BPI-PC101 gesture recognition module]]&lt;br /&gt;
*[[BPI-MT7615 802.11 ac wifi无线 4x4双频模块]]&lt;br /&gt;
*[[BPI NB-IOT Arduino]] [[Image:hot.gif]]&lt;br /&gt;
*[[Banana PI D1]]&lt;br /&gt;
*[[BPI-D2]][Rockchips RV1126]&lt;br /&gt;
*[[Banana PI G1]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana PI BPI-FT8215Q FOC控制直流无刷马达驱动开发板]]&lt;br /&gt;
*[[Banana PI BPI-8132Q 三相电机控制开发板]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派系列产品相关配件===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino Products&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派外壳]]&lt;br /&gt;
*[[IR remote control]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[7.0 LCD touch panel]]&lt;br /&gt;
*[[10.1 HDMI touch panel]] will coming soon&lt;br /&gt;
*[[Camera]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI Open debugger board]]&lt;br /&gt;
*[[UniPi on BPI]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
香蕉派系列 GPIO 扩展板&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI LM75 Temperature Sensor Module]]&lt;br /&gt;
*[[BPI AD/DA extend module]]&lt;br /&gt;
*[[BPI Prototyping Pi Plate module]]&lt;br /&gt;
*[[BPI OLED Display Module]]&lt;br /&gt;
*[[OLED12832 Module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI I2C electric level conversion expand module]]&lt;br /&gt;
*[[BPI BerryClip Module]]&lt;br /&gt;
*[[BPI Uno Compatible Module]]&lt;br /&gt;
*[[BPI GPIO extend module T type]]&lt;br /&gt;
*[[BPI LCD 1602 display module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI RTC real time Module]]&lt;br /&gt;
*[[BPI I2C GPIO extend module]]&lt;br /&gt;
*[[BPI IO extend module]]&lt;br /&gt;
*[[BPI RGB LED Matrix Expansion Module]]&lt;br /&gt;
*[[BPI Uart  Module]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=香蕉派产品软件镜像发布图=&lt;br /&gt;
* [[Image Release Map]]&lt;br /&gt;
&lt;br /&gt;
=香蕉派 BPI 4.0 OEM &amp;amp; ODM 定制服务=&lt;br /&gt;
&lt;br /&gt;
[[File:Factory.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;BPI 4.0&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[广东比派科技有限公司公司介绍]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 4.0 定制服务]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 4.0 成功案例 ]] &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 产品认证 ]] &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 宣传推广 ]] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=香蕉派（Banana Pi）资源支持=&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 开源社区合作伙伴]]&lt;br /&gt;
*[[BPI 开源硬件全球代理渠道]]&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[http://www.banana-pi.org 英文官方网站]&lt;br /&gt;
*[http://forum.banana-pi.org/ 英文官方论坛]&lt;br /&gt;
*[http://www.banana-pi.org.cn 中文官方网站]&lt;br /&gt;
*[http://forum.banana-pi.org.cn 中文官方论坛]&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[https://shop108780008.taobao.com/?spm=a1z10.1.0.0.EZ5mQu 香蕉派淘宝网官方网店]&lt;br /&gt;
*[https://pt.aliexpress.com/store/302756 香蕉派全球速卖通官方网店]&lt;br /&gt;
*[https://cn1001196335.en.alibaba.com/?spm=a2700.details.cordpanyb.2.3da524a13Ez5iC 香蕉派全球阿里巴巴官方网店]&lt;br /&gt;
*[http://www.banana-pi.org/shop.html 香蕉派全球代理商列表]&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[https://www.facebook.com/groups/Banana.Pi.Community/ Facebook用户群组]&lt;br /&gt;
*[https://plus.google.com/u/0/communities/116770564125019694131 google group]&lt;br /&gt;
*官方QQ技术交流群：85785523&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=16452</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=16452"/>
				<updated>2023-11-13T06:30:05Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 香蕉派快速上手使用并开始开发 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Main_Page]]&lt;br /&gt;
&amp;lt;div id=&amp;quot;快速开始&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Website.jpg|thumb| [[香蕉派(Banana Pi) 开源社区生态与物联网整体技术解决方案]]]]&lt;br /&gt;
[[File:Banana Pi BPI-W3 LGA 1.jpg|thumb|[[Banana Pi BPI-W3]] with Rockchip RK3588 chip design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Router_2.jpg|thumb|[[香蕉派 BPI-R3]] with MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[香蕉派 BPI-M2S]] Amlogic A311D chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R2_Pro_1_750.jpg|thumb|[[香蕉派 BPI-R2 Pro]] Rockchip RK3568 design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[香蕉派 BPI-M2 Pro]] S905x3 方案设计]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[香蕉派 BPI-M5 ]]Amlogic S905X3 方案设计]]&lt;br /&gt;
[[File:Banana_PI_BPI-F2P_3.JPG|thumb| [[香蕉派 BPI-F2P]]工业物联网网关开发板]]&lt;br /&gt;
[[File:Banana_Pi_BPI-F2S_1_.JPG|thumb| [[香蕉派 BPI-F2S]] with Sunplus SP7021]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R64_1.jpg|thumb|[[香蕉派 BPI-R64]] MTK MT7622]]&lt;br /&gt;
[[File:O2A0500.jpg|thumb|[[香蕉派 BPI-W2]] Realtek RD1296]]&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[香蕉派 BPI-R2]] MTK MT7623N]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_1.jpg|thumb|[[香蕉派 BPI-M4]] Realtek RTD1395]]&lt;br /&gt;
[[File:Banana_pi_BPI-M64_1.jpg|thumb|[[香蕉派 BPI-M64]] Allwinner A64]]&lt;br /&gt;
[[File:Banana_pi_BPI-M3_1.jpg|thumb|[[香蕉派 BPI-M3]] Allwinner A83T]]&lt;br /&gt;
[[File:BPI-F2_zero_1.JPG|thumb|[[香蕉派 BPI-P2 Zero]] Allwinner H2+/H3/H5]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2+_2.jpg|thumb|[[香蕉派 BPI-M2+]] Allwinner H3/H5/H2+]3]]&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[香蕉派 BPI-M2 ZERO]] Allwinner H2+/H3/H5]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Ultra_2.JPG|thumb|[[香蕉派 BPI-M2U]] Allwinner R40/V40/A40i]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[香蕉派 BPI-M2 Berry]] Allwinner R40/V40/A40i]]&lt;br /&gt;
[[File:Banana_pi_bpi-m2_magic_5.JPG|thumb|[[香蕉派 BPI-M2M]] Allwinner A33/R16]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[香蕉派 BPI-R1]] Allwinner A20]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_1.jpg|thumb|[[香蕉派 BPI-M1+]] Allwinner A20]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1_1.jpg|thumb|[[香蕉派 BPI-M1]] Allwinner A20]]&lt;br /&gt;
&lt;br /&gt;
=香蕉派(Banana Pi)开源硬件项目介绍=&lt;br /&gt;
&lt;br /&gt;
[[File:Website.jpg]]&lt;br /&gt;
&lt;br /&gt;
[https://www.banana-pi.org.cn/ '''香蕉派（Banana Pi）''']是由[http://wiki.banana-pi.org/%E5%B9%BF%E4%B8%9C%E6%AF%94%E6%B4%BE%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%E5%85%AC%E5%8F%B8%E4%BB%8B%E7%BB%8D '''广东比派科技有限公司''']主导的一个开源硬件项目，专注在ARM，MCU系列开源硬件开发板，提供全开放的软件与硬件平台,打造基础技术开发平台。重点打造[[香蕉派(Banana Pi) 开源社区生态与物联网整体技术解决方案]].&lt;br /&gt;
&lt;br /&gt;
全系列开源硬件产品，完整整合了语音，数据，视频系统平台,传感器。开发者可以灵活的在开源硬件基础平台上搭建各种应用平台。可以应用在物联网，AI 人工智能 ，工业互联网控制，STEAM教育等各方面。&lt;br /&gt;
&lt;br /&gt;
欢迎加入[https://forum.banana-pi.org.cn/ '''Banana Pi中文官方论坛''']进行技术讨论，可以在[https://shop108780008.taobao.com/?spm=a1z10.1.0.0.EZ5mQu '''比派科技淘宝官方店''']购买样品进行DIY.&lt;br /&gt;
&lt;br /&gt;
'''[[BPI 4.0 定制服务]]'''已经全球有100多个'''[[BPI 4.0 成功案例]]'''，为客户提供研发，生产，供应链管理，产品认证一站式服务。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==香蕉派快速上手使用并开始开发==&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[快速上手 香蕉派镜像烧录与系统启动]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M1]] [[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M1+]] [[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-P2 Zero]] &lt;br /&gt;
*[[快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry]][[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M2 Magic]][[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M2 Zero]] &lt;br /&gt;
*[[快速上手 香蕉派 BPI-M2+]] [[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M64]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M3]][[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[快速上手 香蕉派 BPI-R1]][[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-R2]] [[Image:hot.gif]]&lt;br /&gt;
*[[快速上手 香蕉派 BPI-W2]] [[Image:hot.gif]]&lt;br /&gt;
*[[Getting Started with R2PRO]] &lt;br /&gt;
*[[Getting Started with R64]]&lt;br /&gt;
*[[Getting Started with BPI-R3]]&lt;br /&gt;
*[[Getting Started with BPI-W3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[[Getting Started with M64]]&lt;br /&gt;
*[[Getting Started with M3]]&lt;br /&gt;
*[[Getting Started with M4]]&lt;br /&gt;
*[[Getting Started with M5/M2Pro]]&lt;br /&gt;
*[[Getting Started with M2S]]&lt;br /&gt;
*[[Getting Started with CM4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=镜像和开发工具=&lt;br /&gt;
=== 嵌入式系统 ===&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[[Armbian]]&lt;br /&gt;
*[[Tina Linux]]&lt;br /&gt;
*[[Mainline Linux uboot 2019.07]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 开发工具 ===&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Using 4G module with BananaPi]]&lt;br /&gt;
*[[WiFi/AP/BT/BLE on BananaPi]]&lt;br /&gt;
*[[OpenCV 3.4x on BananaPi]]&lt;br /&gt;
*[[How to use DHT Sensor via banana pi]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Github编译源码 ===&lt;br /&gt;
* 香蕉派开源硬件源代码github : https://github.com/bpi-sinovoip&lt;br /&gt;
* STEAM教育产品源代码github :  https://github.com/BPI-STEAM&lt;br /&gt;
&lt;br /&gt;
=香蕉派（Banana Pi）开源硬件产品系列=&lt;br /&gt;
&lt;br /&gt;
[https://pan.baidu.com/s/1QE18Hh2D1asNI1z9TFNspQ 香蕉派产品数码照片百度下载 提取码: 4y75] &lt;br /&gt;
===香蕉派系列单板计算机: [[Banana Pi 单板计算机系列产品比较表]] ===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi single board computer&amp;quot;&amp;gt;&amp;lt;/div &amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-M1]] [Allwinner A20] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M1+]] [Allwinner A20] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M2 ZERO]] [Allwinner H2+/H3/H5] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-P2 Zero]] [allwinner H2+/H3/H5]&lt;br /&gt;
*[[香蕉派 BPI-M2+]] [Allwinner H3/H5/H2+] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M2 Magic]] [Allwinner A33/R16] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M2 Berry]] [Allwinner R40/V40/A40i] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M2 Ultra]] [Allwinner  R40/V40/A40i][[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M64]] [Allwinner  A64] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-M3]] [Allwinner A83T] [[Image:hot.gif]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-F2]] [Freescale IMX6] &lt;br /&gt;
*[[香蕉派 BPI-F2S]] [Sunplus SP7021 工业级开发板] &lt;br /&gt;
*[[香蕉派 BPI-F2P]] [Sunplus SP7021 工业控制网关开发板] &lt;br /&gt;
*[[香蕉派 BPI-S64 Core]]  [Actions S700] &lt;br /&gt;
*[[香蕉派 BPI-M4]] [Realtek 1395]&lt;br /&gt;
*[[香蕉派 BPI-M4 Berry]][Allwinner H618]&lt;br /&gt;
*[[香蕉派 BPI-M5]] [Amlogic S905x3]&lt;br /&gt;
*[[香蕉派 BPI-M2 Pro]] [Amlogic S905x3]&lt;br /&gt;
*[[香蕉派 BPI-M2S]] [Amlogic A311D&amp;amp;S922X]&lt;br /&gt;
*[[香蕉派 BPI-M6]] [ Synaptics VS680]&lt;br /&gt;
*[[香蕉派 BPI-P2 Pro]] [Rockchip RK3308]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派系列开源智能路由器: [[Banana Pi 开源路由器产品系列比较表]]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino Products&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-R4]] [MTK MT7988(Filogic 880)] &lt;br /&gt;
*[[香蕉派 BPI-R3]] [MTK MT7986(Filogic 830)] &lt;br /&gt;
*[[香蕉派 BPI-R3 Mini]] [MTK MT7986(Filogic 830)] &lt;br /&gt;
*[[香蕉派 BPI-R64]] [MTK MT7622]&lt;br /&gt;
*[[香蕉派 BPI-R2]] [MTK MT7623N] [[Image:hot.gif]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-W3]] [Rockchip RK3588]&lt;br /&gt;
*[[香蕉派 BPI-R2 Pro]] [Rockchip RK3568]&lt;br /&gt;
*[[香蕉派 BPI-W2]] [Realtek 1296] [[Image:hot.gif]]&lt;br /&gt;
*[[香蕉派 BPI-R1]] [Allwinner A20] &lt;br /&gt;
*[[香蕉派 BPI-Wifi6 路由器]] [创耀科技 TR6560 + TR5220 wifi SOC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Banana Pi Core board and development Kit===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi AI&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派 BPI-CM2]] [Rockchip RK3568]&lt;br /&gt;
*[[香蕉派 BPI-CM4]] [Amlogic A311D]&lt;br /&gt;
*[[香蕉派 BPI-CM5]] [Amlogic A311D2]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-RK3588 Core board and development Kit]] [Rochchip RK3588]&lt;br /&gt;
*[[香蕉派 BPI-W3]] [Rockchip RK3588 LGA core board]&lt;br /&gt;
*[[Banana Pi BPI-S64 Core]]  [Actions S700]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派系列开源AI智能开发板===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi AI&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-AI-Voice (Microsemi)]] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI-EAI80 AIoT 开发板]] 格力零边界 EAI80芯片方案 &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-R18-AI 语音麦克风陈列开发套件(Allwinner SoC-Only 3-Mic Far-Field Dev Kit) ]][[Image:hot.gif]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[AIWorld P1]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派 Webduino &amp;amp; Arduino &amp;amp; MicroPython 产品系列===&lt;br /&gt;
&lt;br /&gt;
Banana Pi Webduino &amp;amp; Arduino &amp;amp; MicroPython 主板&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino &amp;amp; MicroPython Products&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-Bit STEAM 教育开发板]] [ESP32] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI-Bit-S2 STEAM 教育开发板]][ESP32-S2]&lt;br /&gt;
*[[BPI-Smart STEAM教育开发板]] [ESP8266]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-UNO32 Arduino开发板]] [ESP32] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI-Leaf-S2 开发板]][ESP32-S2]&lt;br /&gt;
*[[BPI-Leaf-S3 开发板]][ESP32-S3]&lt;br /&gt;
*[[BPI-PicoW-S3 开发板]][ESP32-S3]&lt;br /&gt;
*[[BPI-Centi-S3 开发板]][ESP32-S3 ST7789]&lt;br /&gt;
*[[BPI-Pico-RP2040 开发板]][RP2040]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-NANO Arduino开源开发板]] [ATmega328P]&lt;br /&gt;
*[[BPI-UNO Arduino开源开发板]] [ATmega328P]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Banana Pi Webduino &amp;amp; Arduino &amp;amp; Micro:bit 主板扩展板&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino boards Accessories&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[ BPI-UNO32 shell compatible LEGO bricks ]] [[Image:hot.gif]]&lt;br /&gt;
*[[ BPI-bit acrylic shell compatible LEGO bricks ]] &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[ BPI:bit gpio expansion board ]]&lt;br /&gt;
*[[ BPI:bit robot 机器人扩展板]]&lt;br /&gt;
*[[ BPI:bit MoonCar 登月小车]]&lt;br /&gt;
*[[香蕉派 Q-Car]] [支持BPI:bit BPI:AI Micro:bit]&lt;br /&gt;
*[[香蕉派 Triode-Car]][支持BPI:bit Micro:bit]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[ BPI-BT BLE 4.2 control module  ]]&lt;br /&gt;
*[[BPI-Nano robot 机器人扩展板]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派嵌入式工业控制网关方案===&lt;br /&gt;
&lt;br /&gt;
*[[BPI-6202 嵌入式单板工控机]]&lt;br /&gt;
*[[BPI-5202 龙芯2K1000LA嵌入式单板工控机]]&lt;br /&gt;
*[[BPI-FSM1819D 伺服电机驱动控制器]]&lt;br /&gt;
*[[5G + 4G LTE + Wifi AC + 5千兆网口 多卡聚合融合通信网关]] 采用MTK MT7622/7623N芯片设计&lt;br /&gt;
*[[基于BPI-M2 Ultra 的工业控制网关设计]] 采用Allwinner A40i芯片设计&lt;br /&gt;
&lt;br /&gt;
===香蕉派IoT物联网开发板与技术解决方案===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI NB-IoT Linaro 96Boars]] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI-CC2650 Zigbee BT Linaro 96Boars]] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI Zigbee BT5.0 IoT module]]&lt;br /&gt;
*[[BPI-GSM module]]&lt;br /&gt;
*[[BPI-9600 IEEE 802.3af PoE module]]&lt;br /&gt;
*[[BPI-7402 IEEE 802.3at PoE module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI NB-BC95 NB-IoT ]] [[Image:hot.gif]]&lt;br /&gt;
*[[BPI Z-Wave Gateway IoT module]]&lt;br /&gt;
*[[4G module via USB]]&lt;br /&gt;
*[[BPI-PC101 gesture recognition module]]&lt;br /&gt;
*[[BPI-MT7615 802.11 ac wifi无线 4x4双频模块]]&lt;br /&gt;
*[[BPI NB-IOT Arduino]] [[Image:hot.gif]]&lt;br /&gt;
*[[Banana PI D1]]&lt;br /&gt;
*[[BPI-D2]][Rockchips RV1126]&lt;br /&gt;
*[[Banana PI G1]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana PI BPI-FT8215Q FOC控制直流无刷马达驱动开发板]]&lt;br /&gt;
*[[Banana PI BPI-8132Q 三相电机控制开发板]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===香蕉派系列产品相关配件===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino Products&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[香蕉派外壳]]&lt;br /&gt;
*[[IR remote control]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[7.0 LCD touch panel]]&lt;br /&gt;
*[[10.1 HDMI touch panel]] will coming soon&lt;br /&gt;
*[[Camera]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI Open debugger board]]&lt;br /&gt;
*[[UniPi on BPI]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
香蕉派系列 GPIO 扩展板&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI LM75 Temperature Sensor Module]]&lt;br /&gt;
*[[BPI AD/DA extend module]]&lt;br /&gt;
*[[BPI Prototyping Pi Plate module]]&lt;br /&gt;
*[[BPI OLED Display Module]]&lt;br /&gt;
*[[OLED12832 Module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI I2C electric level conversion expand module]]&lt;br /&gt;
*[[BPI BerryClip Module]]&lt;br /&gt;
*[[BPI Uno Compatible Module]]&lt;br /&gt;
*[[BPI GPIO extend module T type]]&lt;br /&gt;
*[[BPI LCD 1602 display module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI RTC real time Module]]&lt;br /&gt;
*[[BPI I2C GPIO extend module]]&lt;br /&gt;
*[[BPI IO extend module]]&lt;br /&gt;
*[[BPI RGB LED Matrix Expansion Module]]&lt;br /&gt;
*[[BPI Uart  Module]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=香蕉派产品软件镜像发布图=&lt;br /&gt;
* [[Image Release Map]]&lt;br /&gt;
&lt;br /&gt;
=香蕉派 BPI 4.0 OEM &amp;amp; ODM 定制服务=&lt;br /&gt;
&lt;br /&gt;
[[File:Factory.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;BPI 4.0&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[广东比派科技有限公司公司介绍]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 4.0 定制服务]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 4.0 成功案例 ]] &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 产品认证 ]] &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 宣传推广 ]] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=香蕉派（Banana Pi）资源支持=&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 开源社区合作伙伴]]&lt;br /&gt;
*[[BPI 开源硬件全球代理渠道]]&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[http://www.banana-pi.org 英文官方网站]&lt;br /&gt;
*[http://forum.banana-pi.org/ 英文官方论坛]&lt;br /&gt;
*[http://www.banana-pi.org.cn 中文官方网站]&lt;br /&gt;
*[http://forum.banana-pi.org.cn 中文官方论坛]&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[https://shop108780008.taobao.com/?spm=a1z10.1.0.0.EZ5mQu 香蕉派淘宝网官方网店]&lt;br /&gt;
*[https://pt.aliexpress.com/store/302756 香蕉派全球速卖通官方网店]&lt;br /&gt;
*[https://cn1001196335.en.alibaba.com/?spm=a2700.details.cordpanyb.2.3da524a13Ez5iC 香蕉派全球阿里巴巴官方网店]&lt;br /&gt;
*[http://www.banana-pi.org/shop.html 香蕉派全球代理商列表]&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[https://www.facebook.com/groups/Banana.Pi.Community/ Facebook用户群组]&lt;br /&gt;
*[https://plus.google.com/u/0/communities/116770564125019694131 google group]&lt;br /&gt;
*官方QQ技术交流群：85785523&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Main_Page&amp;diff=16451</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Main_Page&amp;diff=16451"/>
				<updated>2023-11-13T06:28:53Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:首页]]&lt;br /&gt;
&amp;lt;div id=&amp;quot;GettingStarted&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Website.jpg|thumb|[[Banana Pi open source community ecology and Internet of things overall technical solutions]]]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R4_1.jpg|thumb|[[Banana Pi BPI-R4]] with MediaTek Filogic 800 (MT7988)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Mini__1.jpg|thumb|[[Banana Pi BPI-R3 Mini]] with  MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-P2_Pro_1.jpg|thumb|[[Banana Pi BPI-P2 Pro]] with Rockchip RK3308]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M6_1.jpg|thumb|[[Banana Pi BPI-M6]] with  Synaptics VS680]]&lt;br /&gt;
[[File:Banana Pi BPI-W3 LGA 1.jpg|thumb|[[Banana Pi BPI-W3]] with Rockchip RK3588 chip design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Router_2.jpg|thumb|[[Banana Pi BPI-R3]] with MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-CM5_1.jpg|thumb|[[Banana Pi BPI-CM5]] with A311D2 design]]&lt;br /&gt;
[[File:BananaPi_BPI-CM4_base_board_1.jpg|thumb|[[Banana Pi BPI-CM4 ]] with Amlogic A311D design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-CM2_1.jpg|thumb|[[Banana Pi BPI-CM2]] with Rockchip RK3568 ]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R2_Pro_1_750.jpg|thumb|[[Banana Pi BPI-R2 Pro]] Rockchip RK3568 design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5 ]]Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_PI_BPI-F2P_3.JPG|thumb| [[Banana Pi BPI-F2P]] Sunplus SP7021 industrial control board ]]&lt;br /&gt;
[[File:Banana_Pi_BPI-F2S_1_.JPG|thumb| [[Banana Pi BPI-F2S]] with Sunplus SP7021]]&lt;br /&gt;
[[File:BPI-R64_3.JPG|thumb|[[Banana Pi BPI-R64]] MTK MT7622]]&lt;br /&gt;
[[File:O2A0500.jpg|thumb|[[Banana Pi BPI-W2]] Realtek RD1296]]&lt;br /&gt;
[[File:Banana_pi_BPI-M64_1.jpg|thumb|[[Banana Pi BPI-M64]] Allwinner A64]]&lt;br /&gt;
[[File:Banana_pi_BPI-M3_1.jpg|thumb|[[Banana Pi BPI-M3]] Allwinner A83T]]&lt;br /&gt;
[[File:BPI-F2_zero_1.JPG|thumb|[[Banana Pi BPI-P2 Zero]] Allwinner H2+/H3/H5]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2+_2.jpg|thumb|[[Banana Pi BPI-M2+]] Allwinner H3/H5/H2+]3]]&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] Allwinner H2+/H3/H5]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Ultra_2.JPG|thumb|[[Banana Pi BPI-M2U]] Allwinner R40/V40/A40i]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] Allwinner R40/V40/A40i]]&lt;br /&gt;
[[File:Banana_pi_bpi-m2_magic_5.JPG|thumb|[[Banana Pi BPI-M2M]] Allwinner A33/R16]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[Banana Pi BPI-R1]] Allwinner A20]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_1.jpg|thumb|[[Banana Pi BPI-M1+]] Allwinner A20]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1_1.jpg|thumb|[[Banana Pi BPI-M1]] Allwinner A20]]&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[Banana Pi BPI-R2]] MTK MT7623N]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_1.jpg|thumb|[[Banana Pi BPI-M4]] Realtek RTD1395]]&lt;br /&gt;
&lt;br /&gt;
=About Banana Pi Open source project=&lt;br /&gt;
&lt;br /&gt;
[[File:Website.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.banana-pi.org/ '''Banana Pi'''] is an open source hardware project lead by [http://wiki.banana-pi.org/About_BPI '''GuangDong BiPai technology co., LTD''']. It focuses on the open source hardware development board of ARM and MCU series, provides open software and hardware platform, and creates the basic technology development platform. Full series open source hardware products, complete integration of voice, data, video system platform. Developers can flexibly build various application platforms on the open source hardware foundation platform. It can be applied in the Internet of things, AI artificial intelligence, industrial Internet control, STEAM education and other aspects.Create [[banana Pi open source community ecology and Internet of things overall technical solutions]].&lt;br /&gt;
&lt;br /&gt;
Welcome free discuss on [http://forum.banana-pi.org/ '''Banana Pi Forum''' ], Because of the Google security update some of the old links will not work if the images you want to use cannot be downloaded from the new link [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing '''Documents'''] and [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA  '''Image''' ]&lt;br /&gt;
&lt;br /&gt;
Easy to buy sample from [https://pt.aliexpress.com/store/302756 '''SinoVoip aliexpress online shop'''] and [https://www.aliexpress.com/store/1101951077 '''BPI aliexpress online shop''']&lt;br /&gt;
&lt;br /&gt;
'''[[BPI 4.0 Server]]''' has served more than 200 '''[[Successful case]]''' around the world, providing one-stop service of r&amp;amp;d, production, supply chain management and product certification for customers.&lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Getting Started with M1]] &lt;br /&gt;
*[[Getting Started with M1P]]&lt;br /&gt;
*[[Getting Started with M2 Ultra / Berry]]&lt;br /&gt;
*[[Getting Started with M2M]]&lt;br /&gt;
*[[Getting Started with P2-Zero]] &lt;br /&gt;
*[[Getting Started with M2 Zero]] &lt;br /&gt;
*[[Getting Started with M2P]] &lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]] &lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Getting Started with R1]]&lt;br /&gt;
*[[Getting Started with R2]] &lt;br /&gt;
*[[Getting Started with R2PRO]] &lt;br /&gt;
*[[Getting Started with R64]]&lt;br /&gt;
*[[Getting Started with W2]]&lt;br /&gt;
*[[Getting Started with BPI-R3]]&lt;br /&gt;
*[[Getting Started with BPI-R3 MINI]]&lt;br /&gt;
*[[Getting Started with BPI-W3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[[Getting Started with M64]]&lt;br /&gt;
*[[Getting Started with M3]]&lt;br /&gt;
*[[Getting Started with M4]]&lt;br /&gt;
*[[Getting Started with M5/M2Pro]]&lt;br /&gt;
*[[Getting Started with M2S]]&lt;br /&gt;
*[[Getting Started with CM4]]&lt;br /&gt;
*[[Getting Started with BPI-M6]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software &amp;amp; Development Tools=&lt;br /&gt;
===Embedded Operating Systems===&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[[Armbian]]&lt;br /&gt;
*[[Tina Linux]]&lt;br /&gt;
*[[Mainline Linux uboot 2019.07]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Development Tools ===&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Using 4G module with Banana Pi]]&lt;br /&gt;
*[[WiFi/AP/BT/BLE on Banana Pi]]&lt;br /&gt;
*[[OpenCV 3.4x on Banana Pi]]&lt;br /&gt;
*[[How to bulid a image with BSP]]&lt;br /&gt;
*[[How to use DHT Sensor via banana pi]]&lt;br /&gt;
*[[How to get the log information for Banana Pi board]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Building from sources ===&lt;br /&gt;
* Banana PI SBC and Router source code on github : https://github.com/bpi-sinovoip&lt;br /&gt;
* STEAM education product source code on github :  https://github.com/BPI-STEAM&lt;br /&gt;
&lt;br /&gt;
=Products=&lt;br /&gt;
&lt;br /&gt;
===Banana Pi single board computer : [[Banana Pi Series Comparison]] ===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi single board computer&amp;quot;&amp;gt;&amp;lt;/div &amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana Pi BPI-M4 Berry]] [Allwinner H618]&lt;br /&gt;
*[[Banana Pi BPI-M4 Zero]] [Allwinner H618]&lt;br /&gt;
*[[Banana Pi BPI-M2 ZERO]] [Allwinner H3/H2+] &lt;br /&gt;
*[[Banana Pi BPI-P2 Zero]] [Allwinner H3/H2+]&lt;br /&gt;
*[[Banana Pi BPI-M2+]] [Allwinner H3/H2+]&lt;br /&gt;
*[[Banana Pi BPI-M2M]] [Allwinner A33/R16]&lt;br /&gt;
*[[Banana Pi BPI-M2 Berry]] [Allwinner R40/V40/A40i]&lt;br /&gt;
*[[Banana Pi BPI-M2U]] [Allwinner  R40/V40/A40i]&lt;br /&gt;
*[[Banana Pi BPI-M64]] [Allwinner  A64]&lt;br /&gt;
*[[Banana Pi BPI-M3]] [Allwinner A83T]&lt;br /&gt;
*[[Banana Pi BPI-M1]] [Allwinner A20]&lt;br /&gt;
*[[Banana Pi BPI-M1+]] [Allwinner A20] &lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana Pi BPI-M5]]  [Amlogic S905X3] &lt;br /&gt;
*[[Banana Pi BPI-M2 Pro]] [Amlogic S905x3]&lt;br /&gt;
*[[Banana Pi BPI-M2S]] [Amlogic A311D&amp;amp;S922X]&lt;br /&gt;
&lt;br /&gt;
*[[Banana Pi BPI-M6]] [ Synaptics VS680]&lt;br /&gt;
*[[Banana Pi BPI-P2 Pro]] [Rockchip RK3308]&lt;br /&gt;
&lt;br /&gt;
*[[Banana Pi BPI-F2]] [Freescale IMX6 industrial-grade]  &lt;br /&gt;
*[[Banana Pi BPI-F2S]] [SunPlus SP7021 industrial-grade]  &lt;br /&gt;
*[[Banana Pi BPI-F2P]] [SunPlus SP7021 industrial control gateway board ]&lt;br /&gt;
*[[Banana Pi BPI-M4]]  [Realtek RTD1395] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Banana pi smart router: [[Banana Pi router Comparison]]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino Products&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana Pi BPI-R4]] [MTK Filogic 880 (MT7988)] &lt;br /&gt;
*[[Banana Pi BPI-R3]] [MTK MT7986(Filogic 830)] &lt;br /&gt;
*[[Banana Pi BPI-R3 Mini]] [MTK MT7986(Filogic 830)] &lt;br /&gt;
*[[Banana Pi BPI-R64]] [MTK MT7622]&lt;br /&gt;
*[[Banana Pi BPI-R2]] [MTK MT7623N]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana Pi BPI-W3]] [Rockchip RK3588]&lt;br /&gt;
*[[Banana Pi BPI-R2 Pro]] [Rockchip RK3568]&lt;br /&gt;
*[[Banana Pi BPI-W2]] [Realtek 1296] &lt;br /&gt;
*[[Banana Pi BPI-R1]] [Allwinner A20] &lt;br /&gt;
*[[Banana Pi BPI-Wifi6 Router]] [Triductor TR6560 + TR5220 wifi SOC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Banana Pi Core board and development Kit===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi AI&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana Pi BPI-CM2]] [Rockchip RK3568]&lt;br /&gt;
*[[Banana Pi BPI-CM4]] [Amlogic A311D]&lt;br /&gt;
*[[Banana Pi BPI-CM5]] [Amlogic A311D2]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-RK3588 Core board and development Kit]] [Rochchip RK3588]&lt;br /&gt;
*[[BPI-W3 Core board and development Kit]] [Rochchip RK3588]&lt;br /&gt;
*[[Banana Pi BPI-S64 Core]]  [Actions S700] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Banana Pi Compute Module Base Board===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi AI&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana Pi BPI-CM4IO]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Banana Pi AI design===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi AI&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-K210 RISC-V AIoT board]]&lt;br /&gt;
*[[StarFive VisionFive JH7100 RISC-V Single Board Computer]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-AI-Voice (Microsemi)]]&lt;br /&gt;
*[[BPI-EAI80 AIoT board]] [Edgeless EAI80 ] &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-R18-AI(Allwinner SoC-Only 3-Mic Far-Field Dev Kit) ]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[AIWorld P1]] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Banana Pi Webduino &amp;amp; Arduino &amp;amp; MicroPython Products===&lt;br /&gt;
&lt;br /&gt;
Banana Pi Webduino &amp;amp; Arduino &amp;amp; MicroPython boards&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino &amp;amp; MicroPython Products&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;20%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[[BPI-Leaf-S3]] [ESP32-S3]&lt;br /&gt;
*[[BPI-PicoW-S3]] [ESP32-S3]&lt;br /&gt;
*[[BPI-Centi-S3]][ESP32-S3 ST7789]&lt;br /&gt;
*[[BPI-Pico-RP2040]] [RP2040]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;20%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-AI]] [Kendryte K210 RISC-V for AI]&lt;br /&gt;
*[[BPI-Bit]] [ESP32 STEAM education] &lt;br /&gt;
*[[BPI-Bit-S2]] [ESP32-S2 STEAM education] &lt;br /&gt;
*[[BPI-Smart]] [ESP8266]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;20%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI-NANO arduino NANO board]] [ATmega328P]&lt;br /&gt;
*[[BPI-UNO arduino UNO board]] [ATmega328P]&lt;br /&gt;
*[[BPI-UNO32]] [ESP32 for Arduino]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Banana Pi Webduino &amp;amp; Arduino &amp;amp; Micro:bit boards Accessories&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino boards Accessories&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[ BPI-UNO32 shell compatible LEGO bricks ]] &lt;br /&gt;
*[[ BPI-bit acrylic shell compatible LEGO bricks ]] &lt;br /&gt;
*[[BPI:bit MoonCar Kit]]［BPI:bit/micro:bit］&lt;br /&gt;
*[[BPI Q-Car kit]][BPI:bit/micro:bit]&lt;br /&gt;
*[[BPI Triode-Car kit]][support BPI:bit Micro:bit]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[ BPI:bit gpio expansion board ]]［BPI:bit/micro:bit］&lt;br /&gt;
*[[ BPI:bit robot expansion board]]［BPI:bit］&lt;br /&gt;
*[[BPI:bit Sensor expansion board]]［BPI:bit］&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[ BPI-BT BLE 4.2 control module  ]]&lt;br /&gt;
*[[BPI-Nano robot board]] [arduino nano]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Banana Pi Industrial control gateway design===&lt;br /&gt;
*[[BPI-6202 Embedded single board industrial computer]]&lt;br /&gt;
*[[BPI-5202 Loongson 2K1000LA Embedded single board industrial computer]]&lt;br /&gt;
*[[Awinner A40I for Industrial control gateway design]]&lt;br /&gt;
*[[BPI-KVM with Rockchip RK3568 for KVM over IP design]]&lt;br /&gt;
*[[BPI-FSM1819D Servo motor controller]]&lt;br /&gt;
*[[5G + 4G LTE+Wifi AC+Gigabit Multiplex aggregate route]]&lt;br /&gt;
&lt;br /&gt;
===Banana Pi IoT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[[BPI-9600 IEEE 802.3af PoE module]]&lt;br /&gt;
*[[BPI-9460 IEEE 802.3af Isolation Model PoE module]]&lt;br /&gt;
*[[BPI-7604 IEEE 802.3af PoE Splitter module]]&lt;br /&gt;
*[[BPI-7402 IEEE 802.3at PoE module]]&lt;br /&gt;
*[[BPI-6175 Single channel PoE++ BT PSE Module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI NB-IoT Linaro 96Boars]] &lt;br /&gt;
*[[BPI-CC2650 Zigbee BT Linaro 96Boars]]&lt;br /&gt;
*[[BPI Zigbee BT5.0 IoT module]]&lt;br /&gt;
*[[BPI-GSM module]]&lt;br /&gt;
*[[BPI NB-BC95 NB-IoT ]]&lt;br /&gt;
*[[BPI Z-Wave Gateway IoT module]]&lt;br /&gt;
*[[4G module via USB]]&lt;br /&gt;
*[[BPI-PC101 gesture recognition module]]&lt;br /&gt;
*[[BPI-MT7615 802.11 ac wifi 4x4 dual-band module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI NB-IOT Arduino]] &lt;br /&gt;
*[[Banana PI D1]]&lt;br /&gt;
*[[BPI-D2]][Rockchips RV1126]&lt;br /&gt;
*[[Banana PI G1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Banana Pi Accessories===&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi Webduino &amp;amp; Arduino Products&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[case]]&lt;br /&gt;
*[[IR remote control]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[7.0 LCD touch panel]]&lt;br /&gt;
*[[10.1 MIPI touch panel]]&lt;br /&gt;
*[[10.1 HDMI touch panel]]&lt;br /&gt;
*[[Camera]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI Open debugger board]]&lt;br /&gt;
*[[UniPi on BPI]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Banana Pi GPIO Extend board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI LM75 Temperature Sensor Module]]&lt;br /&gt;
*[[BPI AD/DA extend module]]&lt;br /&gt;
*[[BPI Prototyping Pi Plate module]]&lt;br /&gt;
*[[BPI OLED Display Module]]&lt;br /&gt;
*[[OLED12832 Module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI I2C electric level conversion expand module]]&lt;br /&gt;
*[[BPI BerryClip Module]]&lt;br /&gt;
*[[BPI Uno Compatible Module]]&lt;br /&gt;
*[[BPI GPIO extend module T type]]&lt;br /&gt;
*[[BPI LCD 1602 display module]]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI RTC real time Module]]&lt;br /&gt;
*[[BPI I2C GPIO extend module]]&lt;br /&gt;
*[[BPI IO extend module]]&lt;br /&gt;
*[[BPI RGB LED Matrix Expansion Module]]&lt;br /&gt;
*[[BPI Uart  Module]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Image Release Map=&lt;br /&gt;
* [[Image Release Map]]&lt;br /&gt;
&lt;br /&gt;
=BPI4.0 OEM &amp;amp; ODM customized service=&lt;br /&gt;
&lt;br /&gt;
[[File:Factory.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;BPI 4.0&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[About BPI]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[BPI 4.0 Server]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Successful case ]] &lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Product certification]]&lt;br /&gt;
|width=&amp;quot;10%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana Pi Publicity and promotion ]] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Typical cases of [[Successful case]]==&lt;br /&gt;
&lt;br /&gt;
MediaTek MT7622E/MT7623N [[5G + 4G LTE+Wifi AC+Gigabit Multiplex aggregate route]]&lt;br /&gt;
&lt;br /&gt;
ESP32 [[Sweet fume machine Intelligent sleep meter design]]&lt;br /&gt;
&lt;br /&gt;
[[Realtek RTD1296 Intelligent voice, video processing platform]]&lt;br /&gt;
&lt;br /&gt;
[[Awinner A40I for Industrial control gateway design]]&lt;br /&gt;
&lt;br /&gt;
=Banana Pi Support=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Banana Pi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Banana Pi partners]]&lt;br /&gt;
*[[Banana Pi agents list]]&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[http://www.banana-pi.org English Website]&lt;br /&gt;
*[http://forum.banana-pi.org/ English Forum]&lt;br /&gt;
*[http://www.banana-pi.org.cn 中文官方网站]&lt;br /&gt;
*[http://forum.banana-pi.org.cn 中文论坛]&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[https://www.facebook.com/groups/Banana.Pi.Community/ Facebook group]&lt;br /&gt;
*[https://www.facebook.com/sinovoipbpi Facebook Page]&lt;br /&gt;
*[https://twitter.com/sinovoip Twitter]&lt;br /&gt;
*[https://www.linkedin.com/groups/6692107/ linkedin group]&lt;br /&gt;
*[https://www.youtube.com/c/lionwangsinovoip/featured YouTube Channel]&lt;br /&gt;
*[https://www.reddit.com/r/BananaPi/ Reddit Channel]&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;12%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[https://shop108780008.taobao.com/?spm=a1z10.1.0.0.EZ5mQu Taobao online shop]&lt;br /&gt;
*[https://www.aliexpress.com/store/1101951077 BPI Aliexpress online shop]&lt;br /&gt;
*[https://www.aliexpress.com/store/1100417230 SinoVoip Aliexpress online shop]&lt;br /&gt;
*[https://cn1001196335.en.alibaba.com/?spm=a2700.details.cordpanyb.2.3da524a13Ez5iC Banana Pi Alibaba online shop]&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16393</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16393"/>
				<updated>2023-11-09T03:24:34Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Use Audio Devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
====Terminal command to play audio files====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #List devices&lt;br /&gt;
aplay -D hw:0,0 [path] #Play the audio file of the specified path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16392</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16392"/>
				<updated>2023-11-09T03:23:18Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 3.5mm 音频接口 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]] 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
====终端命令播放音频文件====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #列出设备&lt;br /&gt;
aplay -D hw:0,0 [path] #播放指定路径的音频文件&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16391</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16391"/>
				<updated>2023-11-09T03:22:35Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 3.5mm 音频接口 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]] 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
:4.终端命令播放音频文件。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #列出设备&lt;br /&gt;
aplay -D hw:0,0 [path] #播放指定路径的音频文件&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16390</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16390"/>
				<updated>2023-11-09T03:22:00Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 3.5mm 音频接口 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]] 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
:4.终端命令播放音频文件。&lt;br /&gt;
[pre]&lt;br /&gt;
aplay -l #列出设备&lt;br /&gt;
aplay -D hw:0,0 [path] #播放指定路径的音频文件&lt;br /&gt;
[/pre]&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16389</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16389"/>
				<updated>2023-11-09T03:18:55Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 3.5mm 音频接口 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]] 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
:4.终端命令播放音频文件。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16388</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16388"/>
				<updated>2023-11-09T02:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 准备 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian 镜像]] 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16387</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16387"/>
				<updated>2023-11-09T01:58:49Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Prepare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16386</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16386"/>
				<updated>2023-11-09T01:50:32Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 准备 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[[Banana_Pi_BPI-M4_Berry#System_image | bananapi 4.9 bsp ubuntu/debian 镜像]]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于bananapi 4.9 bsp ubuntu/debian 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16385</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16385"/>
				<updated>2023-11-09T01:50:18Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 准备 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[[Banana_Pi_BPI-M4_Berry#System_image bananapi 4.9 bsp ubuntu/debian 镜像]]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于bananapi 4.9 bsp ubuntu/debian 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16384</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16384"/>
				<updated>2023-11-09T01:49:42Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[[Banana_Pi_BPI-M4_Berry#System_image]]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于bananapi 4.9 bsp ubuntu/debian 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16383</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16383"/>
				<updated>2023-11-09T01:49:24Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 准备 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Banana_Pi_BPI-M4_Berry#System_image]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于bananapi 4.9 bsp ubuntu/debian 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16382</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16382"/>
				<updated>2023-11-09T01:48:58Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 准备 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，优先从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Banana_Pi_BPI-M4_Berry#System_image Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于bananapi 4.9 bsp ubuntu/debian 镜像。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16373</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16373"/>
				<updated>2023-11-07T09:38:17Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Install Image to SDcard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, but you should read the [Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16372</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16372"/>
				<updated>2023-11-07T09:35:32Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 擦除eMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令lsblk，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_18.jpg&amp;diff=16371</id>
		<title>File:Bpi m4 berry mobaxterm 18.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_18.jpg&amp;diff=16371"/>
				<updated>2023-11-07T09:31:03Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: Wind uploaded a new version of File:Bpi m4 berry mobaxterm 18.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16370</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16370"/>
				<updated>2023-11-07T09:29:50Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 将镜像安装到eMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. 最后一步操作将关机，此时断开电源，移除SD卡，重新上电，即可从eMMC启动。&lt;br /&gt;
&lt;br /&gt;
===擦除eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，插入SD卡。默认会从SD卡启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入命令&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;，用于列出系统中的块设备信息,如硬盘、分区、磁盘等。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0      179:0    0   7.4G  0 disk&lt;br /&gt;
└─mmcblk0p1  179:1    0   7.2G  0 part /var/log.hdd&lt;br /&gt;
                                       /&lt;br /&gt;
mmcblk1      179:32   0   7.3G  0 disk&lt;br /&gt;
└─mmcblk1p1  179:33   0   7.3G  0 part&lt;br /&gt;
mmcblk1boot0 179:64   0     4M  1 disk&lt;br /&gt;
mmcblk1boot1 179:96   0     4M  1 disk&lt;br /&gt;
zram0        252:0    0 993.2M  0 disk [SWAP]&lt;br /&gt;
zram1        252:1    0    50M  0 disk /var/log&lt;br /&gt;
zram2        252:2    0     0B  0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0为SD卡，mmcblk1为eMMC，在终端中输入以下命令擦除eMMC，此过程需要消耗数分钟时间，且不可逆，注意备份重要数据。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16369</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16369"/>
				<updated>2023-11-07T09:20:44Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16368</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16368"/>
				<updated>2023-11-07T09:18:03Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 将镜像安装到eMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. 默认连续选择第一项并按下回车键，即可完成将Linux系统镜像安装到eMMC上的操作。&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_18.jpg&amp;diff=16367</id>
		<title>File:Bpi m4 berry mobaxterm 18.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_18.jpg&amp;diff=16367"/>
				<updated>2023-11-07T09:17:36Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_17.jpg&amp;diff=16366</id>
		<title>File:Bpi m4 berry mobaxterm 17.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_17.jpg&amp;diff=16366"/>
				<updated>2023-11-07T09:17:10Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_16.jpg&amp;diff=16365</id>
		<title>File:Bpi m4 berry mobaxterm 16.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_16.jpg&amp;diff=16365"/>
				<updated>2023-11-07T09:17:01Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_15.jpg&amp;diff=16364</id>
		<title>File:Bpi m4 berry mobaxterm 15.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_15.jpg&amp;diff=16364"/>
				<updated>2023-11-07T09:16:50Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_14.jpg&amp;diff=16363</id>
		<title>File:Bpi m4 berry mobaxterm 14.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_14.jpg&amp;diff=16363"/>
				<updated>2023-11-07T09:16:37Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_13.jpg&amp;diff=16362</id>
		<title>File:Bpi m4 berry mobaxterm 13.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_13.jpg&amp;diff=16362"/>
				<updated>2023-11-07T09:16:10Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_12.jpg&amp;diff=16361</id>
		<title>File:Bpi m4 berry mobaxterm 12.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:Bpi_m4_berry_mobaxterm_12.jpg&amp;diff=16361"/>
				<updated>2023-11-07T09:15:25Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16360</id>
		<title>快速上手 BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Berry&amp;diff=16360"/>
				<updated>2023-11-07T08:32:11Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 将镜像安装到SD卡 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到eMMC===&lt;br /&gt;
&lt;br /&gt;
1. 确保已经在一个SD卡中烧录了Linux镜像，且已经正常启动。&lt;br /&gt;
&lt;br /&gt;
2. 在终端输入以下命令：&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Berry，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Berry UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Berry，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Berry的IP地址，或在BPI-M4 Berry UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Berry已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Berry用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Berry在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Berry的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Berry板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Berry的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Berry Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm 音频接口====&lt;br /&gt;
:1.准备一个使用3.5mm插头的耳机或其他音频设备，将插头插入BPI-M4 Berry的3.5mm插孔中。&lt;br /&gt;
:2在设置的Sound栏中将输出设备设置为Audio Codec。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4berry:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
===使用红外接收器===&lt;br /&gt;
:1.需要准备一个使用NEC格式的红外遥控。&lt;br /&gt;
:2.在终端输入以下命令即可开始接收红外信号。&lt;br /&gt;
  sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
  Old keytable cleared&lt;br /&gt;
  Protocols changed to nec&lt;br /&gt;
  Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
  258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
  258.553926: event type EV_SYN(0x00).&lt;br /&gt;
  260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.667671: event type EV_SYN(0x00).&lt;br /&gt;
  260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
  260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
  260.719568: event type EV_SYN(0x00).&lt;br /&gt;
  273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.263753: event type EV_SYN(0x00).&lt;br /&gt;
  273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
  273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
  273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
[https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable 参考文档]&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Berry在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16359</id>
		<title>快速上手 BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16359"/>
				<updated>2023-11-07T01:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 使用USB存储设备 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Zero]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H3 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线，一个mini HDMI转HDMI转接头。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Zero，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Zero UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Zero，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Zero的IP地址，或在BPI-M4 Zero UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Zero已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Zero用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Zero在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Zero的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Zero板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Zero的USB接口中，如果是type-A插头的U盘，则还需要一个type-A转type-C转接头。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Zero Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线和mini HDMI转HDMI转接头连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4zero:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Zero在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16358</id>
		<title>快速上手 BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16358"/>
				<updated>2023-11-07T01:38:53Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* HDMI音频 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Zero]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H3 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线，一个mini HDMI转HDMI转接头。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Zero，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Zero UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Zero，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Zero的IP地址，或在BPI-M4 Zero UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Zero已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Zero用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Zero在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Zero的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Zero板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Zero的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Zero Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线和mini HDMI转HDMI转接头连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4zero:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Zero在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16357</id>
		<title>快速上手 BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16357"/>
				<updated>2023-11-07T01:27:22Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Ubuntu桌面 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Zero]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H3 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线，一个mini HDMI转HDMI转接头。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Zero，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Zero UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Zero，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Zero的IP地址，或在BPI-M4 Zero UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Zero已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Zero用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Zero在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Zero的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Zero板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Zero的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Zero Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4zero:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Zero在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16356</id>
		<title>快速上手 BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16356"/>
				<updated>2023-11-07T01:26:15Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Zero]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H3 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Zero，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Zero UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Zero，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Zero的IP地址，或在BPI-M4 Zero UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Zero已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Zero用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Zero在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Zero的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Zero板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Zero的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Zero Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4zero:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Zero在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16355</id>
		<title>快速上手 BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B_BPI-M4_Zero&amp;diff=16355"/>
				<updated>2023-11-07T01:19:14Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: Created page with &amp;quot;en:Getting_Started_with_BPI-M4_Berry  [[Banana Pi BPI-M2 ZERO with Allwinner H3 chip]] File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Getting_Started_with_BPI-M4_Berry]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H3 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===准备===&lt;br /&gt;
:1. Linux镜像支持SD卡或EMMC启动，但您应该首先阅读[Boot_Sequence启动顺序]。&lt;br /&gt;
&lt;br /&gt;
:2. 建议使用A1级别的SD卡，至少8GB。&lt;br /&gt;
&lt;br /&gt;
:3. 如果要从SD卡启动，确保可启动的EMMC已经格式化。&lt;br /&gt;
&lt;br /&gt;
:4. 如果要从EMMC启动并将SD卡用作存储，确保SD卡已经格式化，没有刷入Linux镜像。&lt;br /&gt;
&lt;br /&gt;
:5. 下载最新的[Linux镜像]，并确认md5校验和正确。&lt;br /&gt;
&lt;br /&gt;
:6. 默认登录用户名：pi/bananapi或root/bananapi。&lt;br /&gt;
&lt;br /&gt;
:7. Wiki指南仅适用于[bananapi 4.9 bsp ubuntu/debian镜像]。&lt;br /&gt;
&lt;br /&gt;
===将镜像安装到SD卡===&lt;br /&gt;
:1. 在Windows、Linux和MacOS上使用Balena Etcher安装镜像。&lt;br /&gt;
: [https://balena.io/etcher Balena Etcher] 是Balena提供的开源GUI闪存工具，用于将操作系统镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. 在Windows、Linux和MacOS上使用Balena Cli安装镜像。&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] 是用于balenaCloud或openBalena的命令行界面。 您可以从[https://github.com/balena-io/balena-cli/releases balena-io] 下载安装程序或独立包，然后正确安装到您的PC上，然后您可以使用balena的&amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot;命令将Linux镜像写入SD卡或USB驱动器。&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. 在Linux上使用dd命令安装镜像，如果SD卡自动挂载，请取消挂载SD卡设备/dev/sdX分区。实际上，bpi-copy与此dd命令相同。&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. 使用bpi-tools在Linux上安装镜像，将SD卡插入Linux PC并运行以下命令：&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===启动===&lt;br /&gt;
&lt;br /&gt;
====Ubuntu桌面====&lt;br /&gt;
&lt;br /&gt;
:1.使用Ubuntu桌面版系统镜像，可以获得一个图形化操作界面。&lt;br /&gt;
:2.需要准备一台具备HDMI接口的显示器，一根HDMI线。&lt;br /&gt;
:3.使用HDMI线连接显示器与BPI-M4 Zero，切换显示器输入接口为对应HDMI接口，上电开机，等待片刻即可看到桌面。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Debug UART====&lt;br /&gt;
:1.准备一个3.3v USB转TTL模块。&lt;br /&gt;
:2.使用USB转TTL模块连接PC USB端口与板上的Debug UART端口。&lt;br /&gt;
:3.在PC端开启一个串行终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:4.以mobaxterm为例，设置串行端口编号和115200波特率后即可打开BPI-M4 Zero UART终端。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SSH====&lt;br /&gt;
:1.准备一条网线，一个路由器。&lt;br /&gt;
:2.使用网线连接路由器的LAN口与BPI-M4 Zero，同时也将PC接入另一个LAN口。&lt;br /&gt;
:3.在路由器管理界面查看BPI-M4 Zero的IP地址，或在BPI-M4 Zero UART终端使用以下命令查看IP地址。&lt;br /&gt;
  ifconfig&lt;br /&gt;
&lt;br /&gt;
  eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt;  mtu 1500&lt;br /&gt;
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255&lt;br /&gt;
        inet6 fe80::3e1f:688f:81ab:d8b7  prefixlen 64  scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
        ether 02:00:54:a0:d6:a6  txqueuelen 1000  (Ethernet)&lt;br /&gt;
        RX packets 553  bytes 92549 (92.5 KB)&lt;br /&gt;
        RX errors 0  dropped 0  overruns 0  frame 0&lt;br /&gt;
        TX packets 329  bytes 26023 (26.0 KB)&lt;br /&gt;
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0&lt;br /&gt;
        device interrupt 42&lt;br /&gt;
:4.在PC端开启一个SSH终端软件，例如[https://mobaxterm.mobatek.net/ mobaxterm]或[https://www.putty.org/ putty]。&lt;br /&gt;
:5.以mobaxterm为例，将获得的IP地址，例如上文 192.168.3.10 ，填入IP地址栏，Port端口填入 22 。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6.打开SSH终端，输入登录用户名/密码：pi/bananapi 或 root/bananapi ，输入密码时无提示，请正常输入，完成后按Enter键即可。&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
====NoMachine 远程桌面====&lt;br /&gt;
:1.确保BPI-M4 Zero已连接互联网，使用以下命令在系统中下载nomachine DEB安装包。&lt;br /&gt;
&lt;br /&gt;
  wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2.或在PC浏览器打开[https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64下载页面]  下载DEB安装包，然后通过SSH或U盘拷贝到BPI-M4 Zero用户目录中。&lt;br /&gt;
&lt;br /&gt;
:3.下载完成后，通过以下命令安装，注意文件名以实际下载的文件名为准。&lt;br /&gt;
&lt;br /&gt;
  sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4.PC端也需下载安装NoMachine，[https://download.nomachine.com NoMachine下载页面]选择适合PC操作系统的安装包，下载到本地并完成安装。&lt;br /&gt;
&lt;br /&gt;
:5.注意保持PC与BPI-M4 Zero在同一个局域网中，可先尝试SSH连接确保局域网内通信正常。&lt;br /&gt;
&lt;br /&gt;
:6.在PC端打开NoMachine，点击 Add 按钮，在跳转后的窗口中的Host栏输入BPI-M4 Zero的IP地址，再点击 Add 按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7.点击识别到的端口图标，在弹出的新窗口中输入用户名/密码，然后点击OK按钮。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8.完后后续设置后，即可看到桌面。&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9.如果HDMI接口没有连接任何设备，NoMachine 远程桌面将显示黑屏，建议保持HDMI连接，或接入一个HDMI诱骗器。&lt;br /&gt;
&lt;br /&gt;
===重启，关机===&lt;br /&gt;
:1.按RST按钮进行硬件重启，或输入重启命令：&lt;br /&gt;
  reboot&lt;br /&gt;
:2.关机命令，关机后必须重新上电才可再次启动：&lt;br /&gt;
  poweroff&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
:使用 nmcli 命令可扫描WiFi热点，连接热点，创建AP热点。&lt;br /&gt;
&lt;br /&gt;
  nmcli device #列出设备&lt;br /&gt;
  nmcli device wifi list    # 列出可用的wifi接入点, list可以省略&lt;br /&gt;
  nmcli device wifi connect [SSID] password [PASSWORD]   # 连接热点mySSID, 连接成功后，就会自动生成配置文件，以后要再连接，就可以使用nmcli connection up [SSID]命令了&lt;br /&gt;
  nmcli device disconnect [device name]   # 断开wifi，使用nmcli device命令中显示的wifi设备名&lt;br /&gt;
  nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # 创建AP热点&lt;br /&gt;
&lt;br /&gt;
  nmcli connection show #列出网络连接的配置&lt;br /&gt;
  nmcli connection down [NAME]  # 停用一个连接&lt;br /&gt;
  nmcli connection up [NAME]  # 激活一个连接&lt;br /&gt;
  nmcli connection delete [SSID] #删除一个配置，不再保存信息和自动连接&lt;br /&gt;
&lt;br /&gt;
  nmcli radio wifi off  # 关闭wifi&lt;br /&gt;
  nmcli radio wifi on  # 开启wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli 命令参考文档] &lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli 命令参考用例]&lt;br /&gt;
&lt;br /&gt;
===设置静态IP，DNS===&lt;br /&gt;
:1.设置静态IP需先保持连接，如果想设置以太网静态IP，则先保持以太网连接；如果想设置无线网静态IP，则先保持与一个WIFI的连接。&lt;br /&gt;
:2.如果上级路由器已经将你所想设置的IP地址分配给了其他设备，请更换到空闲的IP，或使其他设备让出该IP。&lt;br /&gt;
:3.使用 nmcli connection show 命令显示所有连接，例如：&lt;br /&gt;
  pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
  NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
  TP-LINK_5G_7747     e4a49726-adf1-44d7-a621-0e3af96cc390  wifi      wlx2cc3e6acd5d7&lt;br /&gt;
  Wired connection 1  612eda94-55dc-3c85-b05e-f16c41775b4e  ethernet  --&lt;br /&gt;
:4.使用 nmcli connection show [NAME]命令显示具体某个连接的所有属性，列如：&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747  #如果想看以太网的则改为 Wired connection 1&lt;br /&gt;
&lt;br /&gt;
  #仅列举三个常用条目&lt;br /&gt;
  ipv4.dns:                               192.168.3.1 #默认为网关地址&lt;br /&gt;
  ipv4.addresses:                         192.168.3.10/24 #默认为路由器DHCP分配的IP地址&lt;br /&gt;
  ipv4.gateway:                           192.168.3.1 #网关地址，默认为路由器的IP地址&lt;br /&gt;
&lt;br /&gt;
:5.设置静态IP:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.设置DNS:&lt;br /&gt;
  nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.复位:&lt;br /&gt;
  reboot&lt;br /&gt;
:8.再次启动后检查是否修改成功:&lt;br /&gt;
  ifconfig&lt;br /&gt;
  nmcli connection show TP-LINK_5G_7747 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===网络时间同步===&lt;br /&gt;
:Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器（NTP）同步，因此让你的计算机保持精确的时间，Chrony也可以作为服务端软件为其他计算机提供时间同步服务。&lt;br /&gt;
&lt;br /&gt;
  timedatectl set-ntp false #禁用基于NTP的网络时间同步&lt;br /&gt;
&lt;br /&gt;
  sudo apt install chrony #安装chrony&lt;br /&gt;
  systemctl start  chrony #开启chrony&lt;br /&gt;
  systemctl enable chrony&lt;br /&gt;
  systemctl status chrony&lt;br /&gt;
  systemctl restart chrony #重启服务&lt;br /&gt;
&lt;br /&gt;
  timedatectl status #查看时间同步状态&lt;br /&gt;
  timedatectl list-timezones #查看时区列表&lt;br /&gt;
  timedatectl set-timezone Asia/Shanghai #修改时区&lt;br /&gt;
  timedatectl set-ntp true #开启NTP网络时间同步&lt;br /&gt;
&lt;br /&gt;
  date #查看时间&lt;br /&gt;
  sudo hwclock -r #查看硬件时钟&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony 参考文档]&lt;br /&gt;
&lt;br /&gt;
===查看硬件温度===&lt;br /&gt;
输入以下命令即可查看BPI-M4 Zero板上芯片内置传感器所回传的温度数据。&lt;br /&gt;
  sensors&lt;br /&gt;
&lt;br /&gt;
===修改HDMI输出分辨率===&lt;br /&gt;
:使用Ubuntu桌面版操作系统时，可以在Setting中找到Displays栏，修改分辨率。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===使用USB存储设备===&lt;br /&gt;
:1.准备一个已经正常分区的U盘，插入BPI-M4 Zero的USB接口中。&lt;br /&gt;
:2.在Ubuntu桌面版中可以看到U盘已经被识别到并且可以在文件管理器中打开，也可通过GParted工具进行分区管理。&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3.在终端挂载U盘到本地目录中：&lt;br /&gt;
  mkdir mnt #在~/用户目录中创建一个单独的目录用于挂载，便于管理&lt;br /&gt;
  cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #列出sd开头的分区&lt;br /&gt;
  sudo mount /dev/sda1 ~/mnt/ #将/dev/sda1挂载到~/mnt/&lt;br /&gt;
  ls ~/mnt/ #挂载后即可列出U盘中的文件&lt;br /&gt;
  sudo umount -v /dev/sda1 #卸载/dev/sda1，之后可移除U盘&lt;br /&gt;
&lt;br /&gt;
===使用音频设备===&lt;br /&gt;
:准备一个音频文件，通过U盘或SSH等方式，拷贝到BPI-M4 Zero Ubuntu桌面版系统中。&lt;br /&gt;
====HDMI音频====&lt;br /&gt;
:1.准备一个具备HDMI音频输入功能的显示器，在显示器设置中开启相关功能，使用HDMI线连接显示器。&lt;br /&gt;
:2.在设置的Sound栏中将输出设备设置为HDMI Audio。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.播放音频。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===使用蓝牙===&lt;br /&gt;
:1.在Ubuntu桌面中打开设置，在Bluetooth栏中连接蓝牙设备，例如蓝牙鼠标或键盘。&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2.在终端通过命令行连接蓝牙设备的方法如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #打开蓝牙设备管理工具&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #启动蓝牙功能，power off关闭&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #允许本设备被发现&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #允许设备配对&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #开始扫描&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #一个蓝牙鼠标的MAC地址与设备名&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #配对想要连接的蓝牙设备的MAC地址&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #配对成功&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #退出蓝牙设备管理工具&lt;br /&gt;
pi@bpi-m4zero:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth参考文档]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===传输文件===&lt;br /&gt;
====scp====&lt;br /&gt;
Linux系统中的scp（secure copy）命令用于以安全的方式在服务器之间复制文件。&lt;br /&gt;
&lt;br /&gt;
SCP命令或安全复制允许在本地主机和远程主机之间或两个远程主机之间安全传输文件。&lt;br /&gt;
&lt;br /&gt;
它使用与Secure Shell（SSH）协议相同的身份验证和安全性。&lt;br /&gt;
&lt;br /&gt;
可以在Windows终端中将文件拷贝至相同局域网中的Linux系统中，仅需确保已开启Open SSH客户端，在设置&amp;gt;应用&amp;gt;可选功能中可查看。&lt;br /&gt;
如果想在Linux系统中拷贝Windows系统中的文件，则还需开启Open SSH服务端。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
scp命令格式为:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optional] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optional]&amp;lt;/nowiki&amp;gt; 为可选参数，例如 -r ，使用它即可递归复制整个目录。&lt;br /&gt;
&lt;br /&gt;
::2.file_source 要拷贝的文件或目录。&lt;br /&gt;
&lt;br /&gt;
::3.file_target 将要拷贝过去的路径，如果最后输入了具体文件名则对其重命名。&lt;br /&gt;
&lt;br /&gt;
以在Windows系统中拷贝本地文件到Linux系统中为例，在Windows终端中输入：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
也可以在Windows终端中拷贝Linux系统中的文件到本地：&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: 其中 pi@192.168.3.12 为Linux系统中的用户名和BPI-M4 Zero在局域网中的IP地址。&lt;br /&gt;
:: 其中 &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; 为Linux系统中的文件路径。&lt;br /&gt;
:: 其中 &amp;quot;D:\temp\temp_4&amp;quot; 为Windows系统中的路径。&lt;br /&gt;
&lt;br /&gt;
[https://www.runoob.com/linux/linux-comm-scp.html scp 参考文档]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
使用 mobaxterm 或其他类似的软件，可通过图形化界面管理文件。&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm 下载]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux 预览版]&lt;br /&gt;
&lt;br /&gt;
如下图所示，在mobaxterm中建立SSH连接后，界面左侧就会出现文件管理窗口，支持以文件拖拽的方式进行复制粘贴。&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E9%A6%99%E8%95%89%E6%B4%BE_BPI-M4_Zero&amp;diff=16354</id>
		<title>香蕉派 BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E9%A6%99%E8%95%89%E6%B4%BE_BPI-M4_Zero&amp;diff=16354"/>
				<updated>2023-11-06T07:45:05Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Banana_Pi_BPI-M4_Zero]]&lt;br /&gt;
&lt;br /&gt;
= 产品介绍 =&lt;br /&gt;
&lt;br /&gt;
M4 Zero是M2 Zero的后续型号，在性能上有着巨大提升，SOC升级为H618, CPU频率提升25% 。内存升级为DDR4, 容量翻4倍，新增8G eMMC。支持5G WiFi, 另外USB接口也升级为type-C。&lt;br /&gt;
&lt;br /&gt;
它的外形大小和40-pin接头与Raspberry Pi Zero W相同，它将适合Zero W的大部分外壳和配件。&lt;br /&gt;
&lt;br /&gt;
=关键特性=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* 2.4G/5G WIFI &amp;amp; Bluetooth 4.2&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 1x USB2.0 Type-C&lt;br /&gt;
* 1x miniHDMI 2.0a&lt;br /&gt;
* 1x 24-pin FPC connector&lt;br /&gt;
** 1x USB2.0&lt;br /&gt;
** 1x 100Mbps Ethernet&lt;br /&gt;
&lt;br /&gt;
=快速上手=&lt;br /&gt;
*[[快速上手 BPI-M4 Zero]]&lt;br /&gt;
&lt;br /&gt;
=硬件=&lt;br /&gt;
==硬件接口==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==硬件规格==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Zero'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot, SDIO3.0&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x miniHDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| USB || 1x USB2.0 Type-C HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 24-pin FPC&lt;br /&gt;
| 0.5mm pitch FPC connector， 1x USB2.0, 1x IR, 1x 100Mbps Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| 9 pins GPIO, UART,TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 65mm × 30mm&lt;br /&gt;
|-&lt;br /&gt;
|Weight || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN 定义 ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
=== 24-pin FPC ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''24-pin FPC define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| EPHY_RXN&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| EPHY_RXP&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| EPHY_TXN&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| EPHY_TXP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PI9&lt;br /&gt;
| UART3_TX&lt;br /&gt;
| TWI2_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PI10&lt;br /&gt;
| UART3_RX&lt;br /&gt;
| TWI2_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PI12&lt;br /&gt;
| UART3_CTS&lt;br /&gt;
| PWM2&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PI11&lt;br /&gt;
| UART3_RTS&lt;br /&gt;
| PWM1 &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PI4&lt;br /&gt;
| H_I2S0_DIN0&lt;br /&gt;
| H_I2S0_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| PI3&lt;br /&gt;
| H_I2S0_DOUT0&lt;br /&gt;
| H_I2S0_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PI2&lt;br /&gt;
| H_I2S0_LRCK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PI1&lt;br /&gt;
| H_I2S0_BCLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| PI0&lt;br /&gt;
| H_I2S0_MCLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH10&lt;br /&gt;
| IR_RX&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| USB2_DP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| USB2_DM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=开发=&lt;br /&gt;
==源码==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
==资源==&lt;br /&gt;
*BPI-M4 Zero Allwinner H618 SBC burn Ubuntu desktop image&lt;br /&gt;
*BPI-M4 Zero DXF file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Zero SBC bench test: &lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=系统镜像=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=购买=&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16353</id>
		<title>Getting Started with BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16353"/>
				<updated>2023-11-06T06:14:56Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Use IR Receiver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Zero]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, but you should read the [Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface, an HDMI cable, and a mini HDMI to HDMI adapter.&lt;br /&gt;
:3. Use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor and BPI-M4 Zero, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Zero UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Zero, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Zero on the router management interface, or use the following command on the BPI-M4 Zero UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Zero is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Zero user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Zero in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Zero in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Zero board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Zero.If it is a USB disk with a type-A plug, you also need a type-A to type-C adapter.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Zero Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4zero:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Zero in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16352</id>
		<title>Getting Started with BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16352"/>
				<updated>2023-11-06T06:14:38Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 3.5mm audio jack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Zero]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, but you should read the [Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface, an HDMI cable, and a mini HDMI to HDMI adapter.&lt;br /&gt;
:3. Use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor and BPI-M4 Zero, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Zero UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Zero, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Zero on the router management interface, or use the following command on the BPI-M4 Zero UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Zero is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Zero user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Zero in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Zero in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Zero board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Zero.If it is a USB disk with a type-A plug, you also need a type-A to type-C adapter.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Zero Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4zero:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Zero in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16351</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16351"/>
				<updated>2023-11-06T06:14:17Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Use USB disk */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, but you should read the [Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-berry-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-berry-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-berry-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16350</id>
		<title>Getting Started with BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16350"/>
				<updated>2023-11-06T06:13:57Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* Use USB disk */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Zero]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, but you should read the [Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface, an HDMI cable, and a mini HDMI to HDMI adapter.&lt;br /&gt;
:3. Use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor and BPI-M4 Zero, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Zero UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Zero, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Zero on the router management interface, or use the following command on the BPI-M4 Zero UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Zero is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Zero user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Zero in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Zero in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Zero board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Zero.If it is a USB disk with a type-A plug, you also need a type-A to type-C adapter.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Zero Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Zero.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4zero:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Zero in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16348</id>
		<title>Getting Started with BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16348"/>
				<updated>2023-11-06T03:38:21Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* HDMI audio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Zero]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, but you should read the [Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface, an HDMI cable, and a mini HDMI to HDMI adapter.&lt;br /&gt;
:3. Use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor and BPI-M4 Zero, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Zero UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Zero, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Zero on the router management interface, or use the following command on the BPI-M4 Zero UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Zero is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Zero user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Zero in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Zero in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Zero board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Zero.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB flash drive has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Zero Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Zero.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4zero:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Zero in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16347</id>
		<title>Getting Started with BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Zero&amp;diff=16347"/>
				<updated>2023-11-06T03:31:48Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: Created page with &amp;quot;zh:快速上手_BPI-M4_Zero [[Banana Pi BPI-M4 Berry H618 design]] File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Zero]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, but you should read the [Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  sudo balena local flash path/to/xxx-bpi-m4-zero-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo unzip -p xxx-bpi-m4-zero-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  sudo apt-get install pv unzip&lt;br /&gt;
  sudo bpi-copy xxx-bpi-m4-zero-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface, an HDMI cable, and a mini HDMI to HDMI adapter.&lt;br /&gt;
:3. Use an HDMI cable and a mini HDMI to HDMI adapter to connect the monitor and BPI-M4 Zero, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Zero UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Zero, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Zero on the router management interface, or use the following command on the BPI-M4 Zero UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Zero is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Zero user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Zero in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Zero in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   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.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4zero:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Zero board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Zero.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB flash drive has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Zero Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Zero.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4zero:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4zero:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Zero in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Zero&amp;diff=16345</id>
		<title>Banana Pi BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Zero&amp;diff=16345"/>
				<updated>2023-11-06T02:47:37Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 24-pin FPC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Zero]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H3 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
M4 Zero is the successor model of M2 Zero. It has a huge improvement in performance. The SOC is upgraded to H618 and the CPU frequency is increased by 25%. The memory is upgraded to DDR4, the capacity is quadrupled, and 8G eMMC is added. It supports 5G WiFi, and the USB interface has also been upgraded to type-C.&lt;br /&gt;
&lt;br /&gt;
It has the same form factor and 40-pin connector as the Raspberry Pi Zero W, and it will fit most Zero W cases and accessories.&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* 2.4G/5G WIFI &amp;amp; Bluetooth 4.2&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 1x USB2.0 Type-C&lt;br /&gt;
* 1x miniHDMI 2.0a&lt;br /&gt;
* 1x 24-pin FPC connector&lt;br /&gt;
** 1x USB2.0&lt;br /&gt;
** 1x 100Mbps Ethernet&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Zero]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Zero'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot, SDIO3.0&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x miniHDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| USB || 1x USB2.0 Type-C HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 24-pin FPC&lt;br /&gt;
| 0.5mm pitch FPC connector， 1x USB2.0, 1x IR, 1x 100Mbps Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| 9 pins GPIO, UART,TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 65mm × 30mm&lt;br /&gt;
|-&lt;br /&gt;
|Weight || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
=== 24-pin FPC ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''24-pin FPC define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| EPHY_RXN&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| EPHY_RXP&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| EPHY_TXN&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| EPHY_TXP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PI9&lt;br /&gt;
| UART3_TX&lt;br /&gt;
| TWI2_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PI10&lt;br /&gt;
| UART3_RX&lt;br /&gt;
| TWI2_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PI12&lt;br /&gt;
| UART3_CTS&lt;br /&gt;
| PWM2&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PI11&lt;br /&gt;
| UART3_RTS&lt;br /&gt;
| PWM1 &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PI4&lt;br /&gt;
| H_I2S0_DIN0&lt;br /&gt;
| H_I2S0_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| PI3&lt;br /&gt;
| H_I2S0_DOUT0&lt;br /&gt;
| H_I2S0_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PI2&lt;br /&gt;
| H_I2S0_LRCK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PI1&lt;br /&gt;
| H_I2S0_BCLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| PI0&lt;br /&gt;
| H_I2S0_MCLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH10&lt;br /&gt;
| IR_RX&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| USB2_DP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| USB2_DM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Zero Allwinner H618 SBC burn Ubuntu desktop image&lt;br /&gt;
*BPI-M4 Zero DXF file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Zero SBC bench test: &lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Zero&amp;diff=16344</id>
		<title>Banana Pi BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Zero&amp;diff=16344"/>
				<updated>2023-11-06T02:45:26Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 24-pin FPC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Zero]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H3 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
M4 Zero is the successor model of M2 Zero. It has a huge improvement in performance. The SOC is upgraded to H618 and the CPU frequency is increased by 25%. The memory is upgraded to DDR4, the capacity is quadrupled, and 8G eMMC is added. It supports 5G WiFi, and the USB interface has also been upgraded to type-C.&lt;br /&gt;
&lt;br /&gt;
It has the same form factor and 40-pin connector as the Raspberry Pi Zero W, and it will fit most Zero W cases and accessories.&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* 2.4G/5G WIFI &amp;amp; Bluetooth 4.2&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 1x USB2.0 Type-C&lt;br /&gt;
* 1x miniHDMI 2.0a&lt;br /&gt;
* 1x 24-pin FPC connector&lt;br /&gt;
** 1x USB2.0&lt;br /&gt;
** 1x 100Mbps Ethernet&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Zero]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Zero'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot, SDIO3.0&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x miniHDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| USB || 1x USB2.0 Type-C HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 24-pin FPC&lt;br /&gt;
| 0.5mm pitch FPC connector， 1x USB2.0, 1x IR, 1x 100Mbps Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| 9 pins GPIO, UART,TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 65mm × 30mm&lt;br /&gt;
|-&lt;br /&gt;
|Weight || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
=== 24-pin FPC ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''24-pin FPC define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| EPHY_RXN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| EPHY_RXP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| EPHY_TXN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| EPHY_TXP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PI9&lt;br /&gt;
| UART3_TX&lt;br /&gt;
| TWI2_SCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PI10&lt;br /&gt;
| UART3_RX&lt;br /&gt;
| TWI2_SDA&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PI12&lt;br /&gt;
| UART3_CTS&lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PI11&lt;br /&gt;
| UART3_RTS&lt;br /&gt;
| PWM1 &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PI4&lt;br /&gt;
| H_I2S0_DIN0&lt;br /&gt;
| H_I2S0_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| PI3&lt;br /&gt;
| H_I2S0_DOUT0&lt;br /&gt;
| H_I2S0_DIN1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PI2&lt;br /&gt;
| H_I2S0_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PI1&lt;br /&gt;
| H_I2S0_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| PI0&lt;br /&gt;
| H_I2S0_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH10&lt;br /&gt;
| IR_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| USB2_DP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| USB2_DM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Zero Allwinner H618 SBC burn Ubuntu desktop image&lt;br /&gt;
*BPI-M4 Zero DXF file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Zero SBC bench test: &lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Zero&amp;diff=16342</id>
		<title>Banana Pi BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Zero&amp;diff=16342"/>
				<updated>2023-11-02T10:02:45Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* 24-pin FPC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Zero]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H3 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
M4 Zero is the successor model of M2 Zero. It has a huge improvement in performance. The SOC is upgraded to H618 and the CPU frequency is increased by 25%. The memory is upgraded to DDR4, the capacity is quadrupled, and 8G eMMC is added. It supports 5G WiFi, and the USB interface has also been upgraded to type-C.&lt;br /&gt;
&lt;br /&gt;
It has the same form factor and 40-pin connector as the Raspberry Pi Zero W, and it will fit most Zero W cases and accessories.&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* 2.4G/5G WIFI &amp;amp; Bluetooth 4.2&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 1x USB2.0 Type-C&lt;br /&gt;
* 1x miniHDMI 2.0a&lt;br /&gt;
* 1x 24-pin FPC connector&lt;br /&gt;
** 1x USB2.0&lt;br /&gt;
** 1x 100Mbps Ethernet&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Zero]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Zero'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot, SDIO3.0&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x miniHDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| USB || 1x USB2.0 Type-C HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 24-pin FPC&lt;br /&gt;
| 0.5mm pitch FPC connector， 1x USB2.0, 1x IR, 1x 100Mbps Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| 9 pins GPIO, UART,TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 65mm × 30mm&lt;br /&gt;
|-&lt;br /&gt;
|Weight || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
=== 24-pin FPC ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''24-pin FPC define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| EPHY_RXN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| EPHY_RXP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| EPHY_TXN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| EPHY_TXP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PI9&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PI10&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PI12&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PI11&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PI4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| PI3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PI2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PI1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| PI0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| IR_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| USB2_DP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| USB2_DM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Zero Allwinner H618 SBC burn Ubuntu desktop image&lt;br /&gt;
*BPI-M4 Zero DXF file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Zero SBC bench test: &lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Zero&amp;diff=16341</id>
		<title>Banana Pi BPI-M4 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Zero&amp;diff=16341"/>
				<updated>2023-11-02T10:02:27Z</updated>
		
		<summary type="html">&lt;p&gt;Wind: /* BPI-M4 Zero 40-pin header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Zero]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H3 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
M4 Zero is the successor model of M2 Zero. It has a huge improvement in performance. The SOC is upgraded to H618 and the CPU frequency is increased by 25%. The memory is upgraded to DDR4, the capacity is quadrupled, and 8G eMMC is added. It supports 5G WiFi, and the USB interface has also been upgraded to type-C.&lt;br /&gt;
&lt;br /&gt;
It has the same form factor and 40-pin connector as the Raspberry Pi Zero W, and it will fit most Zero W cases and accessories.&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* 2.4G/5G WIFI &amp;amp; Bluetooth 4.2&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 1x USB2.0 Type-C&lt;br /&gt;
* 1x miniHDMI 2.0a&lt;br /&gt;
* 1x 24-pin FPC connector&lt;br /&gt;
** 1x USB2.0&lt;br /&gt;
** 1x 100Mbps Ethernet&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Zero]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Zero'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot, SDIO3.0&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x miniHDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| USB || 1x USB2.0 Type-C HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 24-pin FPC&lt;br /&gt;
| 0.5mm pitch FPC connector， 1x USB2.0, 1x IR, 1x 100Mbps Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| 9 pins GPIO, UART,TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 65mm × 30mm&lt;br /&gt;
|-&lt;br /&gt;
|Weight || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
== 24-pin FPC ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''24-pin FPC define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| EPHY_RXN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| EPHY_RXP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| EPHY_TXN&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| EPHY_TXP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PI9&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PI10&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PI12&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PI11&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 3V3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PI4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| PI3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PI2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PI1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| PI0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| IR_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| USB2_DP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| USB2_DM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Zero Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Zero Allwinner H618 SBC burn Ubuntu desktop image&lt;br /&gt;
*BPI-M4 Zero DXF file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Zero SBC bench test: &lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;/div&gt;</summary>
		<author><name>Wind</name></author>	</entry>

	</feed>