<?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=Czj</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=Czj"/>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/Special:Contributions/Czj"/>
		<updated>2026-07-23T13:08:23Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-W2&amp;diff=14343</id>
		<title>Getting Started with BPI-W2</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-W2&amp;diff=14343"/>
				<updated>2023-03-31T09:52:06Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_香蕉派 BPI-W2]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Android_6.0_1.jpg|thumb|Overview: BPI-W2 Android 6.0]]&lt;br /&gt;
[[File:W2_debian.jpg|thumb|[http://forum.banana-pi.org/t/banana-pi-bpi-w2-new-image-debian-9-linux-image-release-2018-09-18/6797 Debian 9 Linux Image Release 2018-09-18]]]&lt;br /&gt;
[[File:W2_ubuntu.jpg|thumb|[http://forum.banana-pi.org/t/bananapi-w2-ubuntu-18-04-new-image-release-2018-09-17/6790 BananaPI-W2 Ubuntu 18.04 New Image Release 2018-09-17]]]&lt;br /&gt;
[[File:W2_rasbian.jpg|thumb|[http://forum.banana-pi.org/t/banana-pi-bpi-w2-new-image-raspbian-9-4-new-image-release-2018-09-17/6824 BananaPI-W2 Raspbian 9.4 New Image Release 2018-09-17]]]&lt;br /&gt;
[[File:Rpitc.jpg|thumb|[http://forum.banana-pi.org/t/bpi-w2-new-iamge-rpitcv3-1-12-demo-bpi-w2-beta-2018-09-03/6686 RPiTCv3_1.12-demo-bpi-w2-beta-2018-09-03]]]&lt;br /&gt;
&lt;br /&gt;
Read more: [[Banana Pi BPI-W2]]&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
Let's get start to develop on BPI-W2, see amazing things happen.&lt;br /&gt;
Old page：[[Getting Started with BPI-W2]]&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
* Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System&lt;br /&gt;
* Using your USB-Serial Connect debug console on W2&lt;br /&gt;
  &lt;br /&gt;
[[Image:Debug_console_wire.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:W2_debug_console.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Load your first image on W2===&lt;br /&gt;
  1.You could download latest image from our forum  &lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your system&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card.&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into W2, and press power button setup W2.&lt;br /&gt;
&lt;br /&gt;
===Build your own image on W2===&lt;br /&gt;
====How to make a SD card with bootloader====&lt;br /&gt;
&lt;br /&gt;
there are two ways to boot w2, controlled by SW4 &lt;br /&gt;
&lt;br /&gt;
[[File:Bootsw4.jpg]]&lt;br /&gt;
&lt;br /&gt;
*0 boot from emmc.&lt;br /&gt;
*1 boot from SPI + SD card.&lt;br /&gt;
&lt;br /&gt;
After power on, there are 3 steps must be done before loading kernel,(Normally they all are called bootloader):&lt;br /&gt;
&lt;br /&gt;
*step 1: CPU init - the code is inside CPU;&lt;br /&gt;
*step 2: init the flash device on which we boot from; (normally it’s called preloader)&lt;br /&gt;
*step 3: u-boot;&lt;br /&gt;
&lt;br /&gt;
RTD1296 supports booting from eMMC and SPI flash, so if we want to boot W2 from SD card, (that means we put u-boot on the SD card.) the second step code must be written to SPI flash, normally it’s done in factory before the board sending out, and the code is fixed and provided by RTK without source. We need not care about it, it does a simple job.&lt;br /&gt;
&lt;br /&gt;
In fact, if the board will boot from eMMC, the second code must be written to eMMC first too, remember that we introduced how to do it with u-boot together on other pages. Normally it’s also been done in factory.&lt;br /&gt;
&lt;br /&gt;
The u-boot for eMMC and SD card are different, normally eMMC u-boot 's name is '''dvrboot.exe.bin''', and u-boot for SD card name is '''u-boot.bin'''.&lt;br /&gt;
&lt;br /&gt;
Write u-boot to SD card&lt;br /&gt;
&lt;br /&gt;
The u-boot file for booting from SD card is here: https://drive.google.com/drive/folders/17ShSHLOvxeYA6tI9HQXOAb3O7RjqfD_6?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*step 1: build a SD card system according:&lt;br /&gt;
::2.1.3.2.1	How to make and run the 64-bit ubuntu 16.04 on SD card 2018-4-28&lt;br /&gt;
&lt;br /&gt;
*step 2: boot up the board with eMMC and press ‘Esc’ key to let board stays on u-boot prompt; &lt;br /&gt;
*step 3: using tftp to get u-boot.bin file from network;&lt;br /&gt;
       tftp 0x1500000 u-boot.bin&lt;br /&gt;
*step4: using sd command to write it to SD card:&lt;br /&gt;
       sd write 0x1500000 0x50 0x3f0&lt;br /&gt;
*forum pthread&lt;br /&gt;
::http://forum.banana-pi.org/t/how-to-make-a-sd-card-with-bootloader/5767&lt;br /&gt;
&lt;br /&gt;
====Ubuntu====&lt;br /&gt;
=====How to make and run the 64-bit ubuntu 16.04 on SD card 2018-4-28=====&lt;br /&gt;
&lt;br /&gt;
1.Requirement：&lt;br /&gt;
*1.A PC with ubuntu as the host;&lt;br /&gt;
*2.A banana Pi W2 board;&lt;br /&gt;
*3.A SD card;&lt;br /&gt;
*4.Downloaded latest ubuntu base tar file (ubuntu-base-16.04.4-base-arm64.tar.gz) from url:&lt;br /&gt;
::http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ 17&lt;br /&gt;
&lt;br /&gt;
*5.Hardware configuration file, u-boot binary file, kernel image file and audio file, which can be downloaded from: &lt;br /&gt;
::https://drive.google.com/file/d/1LX4FwXcSzkuI4BUPEVxbUyeG_UYwIkwY/view?usp=sharing 17&lt;br /&gt;
::::oRTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin – hardware config&lt;br /&gt;
::::odvrboot.exe.bin – u-boot binary&lt;br /&gt;
::::ouImage – kernel image&lt;br /&gt;
::::obluecore.audio – audio and video firmware for RTK1296&lt;br /&gt;
&lt;br /&gt;
2.Write the bootloader to the Banana Pi W2 flash:&lt;br /&gt;
&lt;br /&gt;
Banana Pi W2 board can boot from EMMC flash or SPI flash on the board, the difference is the location of the bootloader, so if you will not participate in the development of u-boot, this will not matter to you. So here is how to write bootloader to EMMC.&lt;br /&gt;
&lt;br /&gt;
Normally the W2 board you got had been programed in the factory, but if the version of the bootloader isn’t the latest one, I recommend you to program it by yourself again. The latest version of bootloader is available on the Banana Pi website.&lt;br /&gt;
&lt;br /&gt;
Requirement:&lt;br /&gt;
&lt;br /&gt;
*1.A windows PC runs serial terminal tool like hypertrm. (I recommend using “hypertrm”, because other tools sometimes fail to transmit data);&lt;br /&gt;
*2.Latest version u-boot binary file from Banana Pi website (dvrboot.exe.bin);&lt;br /&gt;
*3.A hardware configuration binary file for W2 （RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin);&lt;br /&gt;
&lt;br /&gt;
Steps:&lt;br /&gt;
&lt;br /&gt;
*1.Connect the serial port between the host and the board correctly, run the terminal software and set up the relevant parameters (115200, 8N1, none);&lt;br /&gt;
*2.press “ctrl+q” then to power on the board, and when the screen appears’ d/g/r ', it can be released;&lt;br /&gt;
*3.Input “h” and send hardware configuration binary files (RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin) in Y-modem mode on the terminal side.&lt;br /&gt;
*4.Wait for the transfer to complete, then input below in console:&lt;br /&gt;
 s98007058&lt;br /&gt;
 01500000&lt;br /&gt;
*5.Input “d” and send u-boot binary files (dvrboot.exe.bin) in Y-modem mode on the terminal side.&lt;br /&gt;
*6.Wait for the transmission to complete. Enter “g” then the u-boot will be programed to the EMMC automatically.&lt;br /&gt;
&lt;br /&gt;
3.Make a ubuntu root file system for W2 on a ubuntu PC.&lt;br /&gt;
&lt;br /&gt;
Ubuntu has the version for arm64 architecture, it’s suitable for the Banana Pi W2, most of packages built by ubuntu for arm64 can run on the W2 board.&lt;br /&gt;
&lt;br /&gt;
Requirement:&lt;br /&gt;
*1.A PC runs linux (recommend ubuntu)&lt;br /&gt;
*2.The latest version of ubuntu tar file for arm64 (ubuntu-base-16.04.4-base-arm64.tar.gz) is downloaded from ubuntu website: http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ 17&lt;br /&gt;
&lt;br /&gt;
Steps: (on the host)：&lt;br /&gt;
*1.mkdir rootfs&lt;br /&gt;
*2.su root&lt;br /&gt;
*3.tar zxvf ubuntu-base-16.04.4-base-arm64.tar.gz -C rootfs&lt;br /&gt;
*4.write a shell script file, please copy below contents to the file ch-mount.sh (vi ch-mount.sh and copy):&lt;br /&gt;
&lt;br /&gt;
 !/bin/bash&lt;br /&gt;
&lt;br /&gt;
 function mnt() {&lt;br /&gt;
     echo &amp;quot;MOUNTING&amp;quot;&lt;br /&gt;
     sudo mount -t proc /proc ${2}proc&lt;br /&gt;
     sudo mount -t sysfs /sys ${2}sys&lt;br /&gt;
     sudo mount -o bind /dev ${2}dev&lt;br /&gt;
     sudo mount -o bind /dev/pts ${2}dev/pts        &lt;br /&gt;
     sudo chroot ${2}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 function umnt() {&lt;br /&gt;
     echo &amp;quot;UNMOUNTING&amp;quot;&lt;br /&gt;
     sudo umount ${2}proc&lt;br /&gt;
     sudo umount ${2}sys&lt;br /&gt;
     sudo umount ${2}dev/pts&lt;br /&gt;
     sudo umount ${2}dev&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; == &amp;quot;-m&amp;quot; ] &amp;amp;&amp;amp; [ -n &amp;quot;$2&amp;quot; ] ;&lt;br /&gt;
 then&lt;br /&gt;
     mnt $1 $2&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; == &amp;quot;-u&amp;quot; ] &amp;amp;&amp;amp; [ -n &amp;quot;$2&amp;quot; ];&lt;br /&gt;
 then&lt;br /&gt;
     umnt $1 $2&lt;br /&gt;
 else&lt;br /&gt;
     echo &amp;quot;&amp;quot;&lt;br /&gt;
     echo &amp;quot;Either 1'st, 2'nd or both parameters were missing&amp;quot;&lt;br /&gt;
     echo &amp;quot;&amp;quot;&lt;br /&gt;
     echo &amp;quot;1'st parameter can be one of these: -m(mount) OR -u(umount)&amp;quot;&lt;br /&gt;
     echo &amp;quot;2'nd parameter is the full path of rootfs directory(with trailing '/')&amp;quot;&lt;br /&gt;
     echo &amp;quot;&amp;quot;&lt;br /&gt;
     echo &amp;quot;For example: ch-mount -m /media/sdcard/&amp;quot;&lt;br /&gt;
     echo &amp;quot;&amp;quot;&lt;br /&gt;
     echo 1st parameter : ${1}&lt;br /&gt;
     echo 2nd parameter : ${2}&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
*5.apt-get install qemu-user-static&lt;br /&gt;
*6.cp /usr/bin/qemu-aarch64-static rootfs/usr/bin&lt;br /&gt;
*7.cp -b /etc/resolv.conf rootfs/etc/&lt;br /&gt;
*8../ch-mount.sh -m rootfs/&lt;br /&gt;
*9.apt-get install iputils-ping&lt;br /&gt;
*10.apt-get install udev&lt;br /&gt;
*11.apt-get install net-tools&lt;br /&gt;
*12.Modify the root password by running: “passwd root”&lt;br /&gt;
*13.exit&lt;br /&gt;
*14../ch-mount.sh -u rootfs/&lt;br /&gt;
&lt;br /&gt;
Until now, the ubuntu file system have been built successfully on the host, next we will write it to the SD card.&lt;br /&gt;
&lt;br /&gt;
4.Write the system to the SD card (on the host)：&lt;br /&gt;
&lt;br /&gt;
Requirement:&lt;br /&gt;
*1.A SD card;&lt;br /&gt;
*2.Device tree binary file downloaded from Banana Pi website: bpi-w2.dtb;&lt;br /&gt;
*3.Kernel image file downloaded from Banana Pi website: uImage;&lt;br /&gt;
*4.Video and Audio firmware file downloaded from Banana Pi website: bluecore.audio;&lt;br /&gt;
&lt;br /&gt;
Steps:&lt;br /&gt;
&lt;br /&gt;
*1.Using fdisk tool to create two partitions in SD card: format the first partition as FAT32, and the second partition as ext4; It’s recommended that the first partition size should not be less than 100M;&lt;br /&gt;
*2.Copy the three files: bpi-w2.dtb, uImage, bluecore.audio to the first partition;&lt;br /&gt;
*3.Copy the all files in root filesystem which just built by us to the second partition using root privilege:&lt;br /&gt;
 cp -a rootfs/* /media/xxx/sdxx/&lt;br /&gt;
 sync&lt;br /&gt;
*4.Eject the SD card and insert it to the W2 board, after power on the board, you can see the ubuntu is running now.&lt;br /&gt;
*5.Set up network and get packages by using apt-get from ubuntu repository&lt;br /&gt;
&lt;br /&gt;
Steps:&lt;br /&gt;
&lt;br /&gt;
*1.Log in with root and the password was set by yourself;&lt;br /&gt;
*2.Ifconfig eth0 or eth1: ifconfig eth1 192.168.2.231&lt;br /&gt;
*3.Add default gateway to let the board can reach internet: route add default gw 192.168.2.1&lt;br /&gt;
*4.Add a DNS: echo ‘nameserver 8.8.8.8’ &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
*5.apt-get update&lt;br /&gt;
*6.then you can fetch and install any packages from ubuntu by using apt-get.&lt;br /&gt;
&lt;br /&gt;
6.Furthermore：&lt;br /&gt;
&lt;br /&gt;
Some functions are not available on the W2 now, because the kernel is not fully functional, we are working hard to make it more and more complete, please follow our official website update.&lt;br /&gt;
&lt;br /&gt;
PDF format file download&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/uploads/default/original/2X/c/c6dc409abc249c57a4cb2b7aedaddec6b80a9026.pdf&lt;br /&gt;
&lt;br /&gt;
===== Ubuntu 16.04 Install and run Node.js and http-server=====&lt;br /&gt;
&lt;br /&gt;
* insltall Node.js&lt;br /&gt;
&lt;br /&gt;
 After running Ubuntu 16.04, it's easy to install packages on the W2. Please follow below steps to install node.js:&lt;br /&gt;
&lt;br /&gt;
    1.  apt-get install nodejs&lt;br /&gt;
    2.  apt-get install npm&lt;br /&gt;
    3.  npm install -g http-server&lt;br /&gt;
    4. make a link to nodejs:  cd /usr/bin/; ln -sf nodejs node&lt;br /&gt;
&lt;br /&gt;
then Node.js is ready on your system.&lt;br /&gt;
&lt;br /&gt;
====OpenWrt====&lt;br /&gt;
&lt;br /&gt;
=====Burn OpenWRT with Linux kernel 4.4 =====&lt;br /&gt;
&lt;br /&gt;
1.About this release&lt;br /&gt;
&lt;br /&gt;
This release is for banana pi W2 board to run OpenWRT，you will know how to burn and run OpenWRT on W2.&lt;br /&gt;
&lt;br /&gt;
2.Burn OpenWRT on W2 steps：&lt;br /&gt;
&lt;br /&gt;
The Bootloader of OpenWRT is u-boot64, there are two ways to burn it on W2 EMMC.&lt;br /&gt;
&lt;br /&gt;
A. Use RTK MP_Tool burn uboot on W2：&lt;br /&gt;
&lt;br /&gt;
1）You need these files and tool：&lt;br /&gt;
* MP_Tool &lt;br /&gt;
* RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866.config（hardware configuration file）&lt;br /&gt;
* dvrboot.exe.bin（u-boot binary file）&lt;br /&gt;
&lt;br /&gt;
2）Connect W2 debug console to windows PC，and run MP_Tool：&lt;br /&gt;
&lt;br /&gt;
[[File:Burun_openwrt.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Set your console parameters&lt;br /&gt;
* Choose config file and uboot file&lt;br /&gt;
* Choose &amp;quot;LK option&amp;quot;&lt;br /&gt;
* Click Wirte button and then power on W2, and waiting for response &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
B. Use hypertrm burn uboot on W2：&lt;br /&gt;
&lt;br /&gt;
1）You need these files and tool：&lt;br /&gt;
* hypertrm &lt;br /&gt;
* RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin（hardware configuration binary file）&lt;br /&gt;
* dvrboot.exe.bin（u-boot binary file）&lt;br /&gt;
&lt;br /&gt;
2）Connect W2 debug console to windows PC：&lt;br /&gt;
* Run hypertrm ，config console parameters right&lt;br /&gt;
* Holding on press “ctrl + q” and power on board，after the screen show “d/g/r”，then loose “ctrl + q”&lt;br /&gt;
* Input “h”，use Y-modem way to send “RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin” to W2 board&lt;br /&gt;
* After finish transferred，input these parameters：&lt;br /&gt;
   &lt;br /&gt;
  ::s98007058  &lt;br /&gt;
  ::01500000&lt;br /&gt;
* Input “d”，and send u-boot binary file&lt;br /&gt;
* after finish transferred，input “g” to burn u-boot file on W2 EMMC&lt;br /&gt;
&lt;br /&gt;
After succeed to burn u-boot on W2, then install OpenWRT on W2.&lt;br /&gt;
&lt;br /&gt;
1）You need these tools and files：&lt;br /&gt;
* U disk&lt;br /&gt;
* install.img&lt;br /&gt;
&lt;br /&gt;
2）Burn OpenWRT on W2 steps：&lt;br /&gt;
* Format U disk as FAT32 filesystem&lt;br /&gt;
* Copy install.img to U disk root directory&lt;br /&gt;
* Decompress install.img to get four files：&lt;br /&gt;
&lt;br /&gt;
   emmc.uImage&lt;br /&gt;
&lt;br /&gt;
   rescue.root.emmc.cpio.gz_pad.img&lt;br /&gt;
&lt;br /&gt;
   bluecore.audio&lt;br /&gt;
&lt;br /&gt;
   rescue.emmc.dtb&lt;br /&gt;
&lt;br /&gt;
* Plug U disk to W2 USB3.0 interface，holding press “Esc” button to power on W2 board&lt;br /&gt;
* Then W2 board will go into u-boot console&lt;br /&gt;
* Input these commands step by step：&lt;br /&gt;
&lt;br /&gt;
   setenv bootargs &amp;quot;earlycon=uart8250,mmio32,0x98007800 console=ttyS0,115200 loglevel=7&lt;br /&gt;
   &lt;br /&gt;
   init=/etc/init root=/dev/mmcblk0p1 rootfstype=squashfs rootwait&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   save&lt;br /&gt;
&lt;br /&gt;
   go ru&lt;br /&gt;
&lt;br /&gt;
* Waiting for OpenWRT burning，after finished，W2 will reboot and go into OpenWRT system.&lt;br /&gt;
&lt;br /&gt;
[[File:Burun_openwrt_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
3.Image &amp;amp; Tools link：&lt;br /&gt;
&lt;br /&gt;
Baidu Drive： https://pan.baidu.com/s/1Rs9F46wNJibORaeCfVh4wg  PinCode：1w4w&lt;br /&gt;
&lt;br /&gt;
Google Drive：https://drive.google.com/file/d/10kfP142Jw0sA92uwaIYZt7CeXcDKelO1/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
4.BPI-W2 run OpenWRT video：&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/eTaRy8Jnfpk&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====PWM Control====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Develop 4G module with W2===&lt;br /&gt;
&lt;br /&gt;
===WiFi and Ap mode on W2===&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
&lt;br /&gt;
====AP mode====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Make your own image===&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-W2&amp;diff=14342</id>
		<title>Getting Started with BPI-W2</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-W2&amp;diff=14342"/>
				<updated>2023-03-31T09:31:57Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Load your first image on W2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_香蕉派 BPI-W2]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Android_6.0_1.jpg|thumb|Overview: BPI-W2 Android 6.0]]&lt;br /&gt;
[[File:W2_debian.jpg|thumb|[http://forum.banana-pi.org/t/banana-pi-bpi-w2-new-image-debian-9-linux-image-release-2018-09-18/6797 Debian 9 Linux Image Release 2018-09-18]]]&lt;br /&gt;
[[File:W2_ubuntu.jpg|thumb|[http://forum.banana-pi.org/t/bananapi-w2-ubuntu-18-04-new-image-release-2018-09-17/6790 BananaPI-W2 Ubuntu 18.04 New Image Release 2018-09-17]]]&lt;br /&gt;
[[File:W2_rasbian.jpg|thumb|[http://forum.banana-pi.org/t/banana-pi-bpi-w2-new-image-raspbian-9-4-new-image-release-2018-09-17/6824 BananaPI-W2 Raspbian 9.4 New Image Release 2018-09-17]]]&lt;br /&gt;
[[File:Rpitc.jpg|thumb|[http://forum.banana-pi.org/t/bpi-w2-new-iamge-rpitcv3-1-12-demo-bpi-w2-beta-2018-09-03/6686 RPiTCv3_1.12-demo-bpi-w2-beta-2018-09-03]]]&lt;br /&gt;
&lt;br /&gt;
Read more: [[Banana Pi BPI-W2]]&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
Let's get start to develop on BPI-W2, see amazing things happen.&lt;br /&gt;
Old page：[[Getting Started with BPI-W2]]&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
* Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System&lt;br /&gt;
* Using your USB-Serial Connect debug console on W2&lt;br /&gt;
  &lt;br /&gt;
[[Image:Debug_console_wire.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:W2_debug_console.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Load your first image on W2===&lt;br /&gt;
  1.You could download latest image from our forum  &lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your system&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card.&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into W2, and press power button setup W2.&lt;br /&gt;
&lt;br /&gt;
===Android===&lt;br /&gt;
To flash Android to BPI-W2, please refer: https://forum.banana-pi.org.cn/t/topic/2970&lt;br /&gt;
&lt;br /&gt;
===Build your own image on W2===&lt;br /&gt;
====How to make a SD card with bootloader====&lt;br /&gt;
&lt;br /&gt;
there are two ways to boot w2, controlled by SW4 &lt;br /&gt;
&lt;br /&gt;
[[File:Bootsw4.jpg]]&lt;br /&gt;
&lt;br /&gt;
*0 boot from emmc.&lt;br /&gt;
*1 boot from SPI + SD card.&lt;br /&gt;
&lt;br /&gt;
After power on, there are 3 steps must be done before loading kernel,(Normally they all are called bootloader):&lt;br /&gt;
&lt;br /&gt;
*step 1: CPU init - the code is inside CPU;&lt;br /&gt;
*step 2: init the flash device on which we boot from; (normally it’s called preloader)&lt;br /&gt;
*step 3: u-boot;&lt;br /&gt;
&lt;br /&gt;
RTD1296 supports booting from eMMC and SPI flash, so if we want to boot W2 from SD card, (that means we put u-boot on the SD card.) the second step code must be written to SPI flash, normally it’s done in factory before the board sending out, and the code is fixed and provided by RTK without source. We need not care about it, it does a simple job.&lt;br /&gt;
&lt;br /&gt;
In fact, if the board will boot from eMMC, the second code must be written to eMMC first too, remember that we introduced how to do it with u-boot together on other pages. Normally it’s also been done in factory.&lt;br /&gt;
&lt;br /&gt;
The u-boot for eMMC and SD card are different, normally eMMC u-boot 's name is '''dvrboot.exe.bin''', and u-boot for SD card name is '''u-boot.bin'''.&lt;br /&gt;
&lt;br /&gt;
Write u-boot to SD card&lt;br /&gt;
&lt;br /&gt;
The u-boot file for booting from SD card is here: https://drive.google.com/drive/folders/17ShSHLOvxeYA6tI9HQXOAb3O7RjqfD_6?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*step 1: build a SD card system according:&lt;br /&gt;
::2.1.3.2.1	How to make and run the 64-bit ubuntu 16.04 on SD card 2018-4-28&lt;br /&gt;
&lt;br /&gt;
*step 2: boot up the board with eMMC and press ‘Esc’ key to let board stays on u-boot prompt; &lt;br /&gt;
*step 3: using tftp to get u-boot.bin file from network;&lt;br /&gt;
       tftp 0x1500000 u-boot.bin&lt;br /&gt;
*step4: using sd command to write it to SD card:&lt;br /&gt;
       sd write 0x1500000 0x50 0x3f0&lt;br /&gt;
*forum pthread&lt;br /&gt;
::http://forum.banana-pi.org/t/how-to-make-a-sd-card-with-bootloader/5767&lt;br /&gt;
&lt;br /&gt;
====Ubuntu====&lt;br /&gt;
=====How to make and run the 64-bit ubuntu 16.04 on SD card 2018-4-28=====&lt;br /&gt;
&lt;br /&gt;
1.Requirement：&lt;br /&gt;
*1.A PC with ubuntu as the host;&lt;br /&gt;
*2.A banana Pi W2 board;&lt;br /&gt;
*3.A SD card;&lt;br /&gt;
*4.Downloaded latest ubuntu base tar file (ubuntu-base-16.04.4-base-arm64.tar.gz) from url:&lt;br /&gt;
::http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ 17&lt;br /&gt;
&lt;br /&gt;
*5.Hardware configuration file, u-boot binary file, kernel image file and audio file, which can be downloaded from: &lt;br /&gt;
::https://drive.google.com/file/d/1LX4FwXcSzkuI4BUPEVxbUyeG_UYwIkwY/view?usp=sharing 17&lt;br /&gt;
::::oRTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin – hardware config&lt;br /&gt;
::::odvrboot.exe.bin – u-boot binary&lt;br /&gt;
::::ouImage – kernel image&lt;br /&gt;
::::obluecore.audio – audio and video firmware for RTK1296&lt;br /&gt;
&lt;br /&gt;
2.Write the bootloader to the Banana Pi W2 flash:&lt;br /&gt;
&lt;br /&gt;
Banana Pi W2 board can boot from EMMC flash or SPI flash on the board, the difference is the location of the bootloader, so if you will not participate in the development of u-boot, this will not matter to you. So here is how to write bootloader to EMMC.&lt;br /&gt;
&lt;br /&gt;
Normally the W2 board you got had been programed in the factory, but if the version of the bootloader isn’t the latest one, I recommend you to program it by yourself again. The latest version of bootloader is available on the Banana Pi website.&lt;br /&gt;
&lt;br /&gt;
Requirement:&lt;br /&gt;
&lt;br /&gt;
*1.A windows PC runs serial terminal tool like hypertrm. (I recommend using “hypertrm”, because other tools sometimes fail to transmit data);&lt;br /&gt;
*2.Latest version u-boot binary file from Banana Pi website (dvrboot.exe.bin);&lt;br /&gt;
*3.A hardware configuration binary file for W2 （RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin);&lt;br /&gt;
&lt;br /&gt;
Steps:&lt;br /&gt;
&lt;br /&gt;
*1.Connect the serial port between the host and the board correctly, run the terminal software and set up the relevant parameters (115200, 8N1, none);&lt;br /&gt;
*2.press “ctrl+q” then to power on the board, and when the screen appears’ d/g/r ', it can be released;&lt;br /&gt;
*3.Input “h” and send hardware configuration binary files (RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin) in Y-modem mode on the terminal side.&lt;br /&gt;
*4.Wait for the transfer to complete, then input below in console:&lt;br /&gt;
 s98007058&lt;br /&gt;
 01500000&lt;br /&gt;
*5.Input “d” and send u-boot binary files (dvrboot.exe.bin) in Y-modem mode on the terminal side.&lt;br /&gt;
*6.Wait for the transmission to complete. Enter “g” then the u-boot will be programed to the EMMC automatically.&lt;br /&gt;
&lt;br /&gt;
3.Make a ubuntu root file system for W2 on a ubuntu PC.&lt;br /&gt;
&lt;br /&gt;
Ubuntu has the version for arm64 architecture, it’s suitable for the Banana Pi W2, most of packages built by ubuntu for arm64 can run on the W2 board.&lt;br /&gt;
&lt;br /&gt;
Requirement:&lt;br /&gt;
*1.A PC runs linux (recommend ubuntu)&lt;br /&gt;
*2.The latest version of ubuntu tar file for arm64 (ubuntu-base-16.04.4-base-arm64.tar.gz) is downloaded from ubuntu website: http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ 17&lt;br /&gt;
&lt;br /&gt;
Steps: (on the host)：&lt;br /&gt;
*1.mkdir rootfs&lt;br /&gt;
*2.su root&lt;br /&gt;
*3.tar zxvf ubuntu-base-16.04.4-base-arm64.tar.gz -C rootfs&lt;br /&gt;
*4.write a shell script file, please copy below contents to the file ch-mount.sh (vi ch-mount.sh and copy):&lt;br /&gt;
&lt;br /&gt;
 !/bin/bash&lt;br /&gt;
&lt;br /&gt;
 function mnt() {&lt;br /&gt;
     echo &amp;quot;MOUNTING&amp;quot;&lt;br /&gt;
     sudo mount -t proc /proc ${2}proc&lt;br /&gt;
     sudo mount -t sysfs /sys ${2}sys&lt;br /&gt;
     sudo mount -o bind /dev ${2}dev&lt;br /&gt;
     sudo mount -o bind /dev/pts ${2}dev/pts        &lt;br /&gt;
     sudo chroot ${2}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 function umnt() {&lt;br /&gt;
     echo &amp;quot;UNMOUNTING&amp;quot;&lt;br /&gt;
     sudo umount ${2}proc&lt;br /&gt;
     sudo umount ${2}sys&lt;br /&gt;
     sudo umount ${2}dev/pts&lt;br /&gt;
     sudo umount ${2}dev&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; == &amp;quot;-m&amp;quot; ] &amp;amp;&amp;amp; [ -n &amp;quot;$2&amp;quot; ] ;&lt;br /&gt;
 then&lt;br /&gt;
     mnt $1 $2&lt;br /&gt;
 elif [ &amp;quot;$1&amp;quot; == &amp;quot;-u&amp;quot; ] &amp;amp;&amp;amp; [ -n &amp;quot;$2&amp;quot; ];&lt;br /&gt;
 then&lt;br /&gt;
     umnt $1 $2&lt;br /&gt;
 else&lt;br /&gt;
     echo &amp;quot;&amp;quot;&lt;br /&gt;
     echo &amp;quot;Either 1'st, 2'nd or both parameters were missing&amp;quot;&lt;br /&gt;
     echo &amp;quot;&amp;quot;&lt;br /&gt;
     echo &amp;quot;1'st parameter can be one of these: -m(mount) OR -u(umount)&amp;quot;&lt;br /&gt;
     echo &amp;quot;2'nd parameter is the full path of rootfs directory(with trailing '/')&amp;quot;&lt;br /&gt;
     echo &amp;quot;&amp;quot;&lt;br /&gt;
     echo &amp;quot;For example: ch-mount -m /media/sdcard/&amp;quot;&lt;br /&gt;
     echo &amp;quot;&amp;quot;&lt;br /&gt;
     echo 1st parameter : ${1}&lt;br /&gt;
     echo 2nd parameter : ${2}&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
*5.apt-get install qemu-user-static&lt;br /&gt;
*6.cp /usr/bin/qemu-aarch64-static rootfs/usr/bin&lt;br /&gt;
*7.cp -b /etc/resolv.conf rootfs/etc/&lt;br /&gt;
*8../ch-mount.sh -m rootfs/&lt;br /&gt;
*9.apt-get install iputils-ping&lt;br /&gt;
*10.apt-get install udev&lt;br /&gt;
*11.apt-get install net-tools&lt;br /&gt;
*12.Modify the root password by running: “passwd root”&lt;br /&gt;
*13.exit&lt;br /&gt;
*14../ch-mount.sh -u rootfs/&lt;br /&gt;
&lt;br /&gt;
Until now, the ubuntu file system have been built successfully on the host, next we will write it to the SD card.&lt;br /&gt;
&lt;br /&gt;
4.Write the system to the SD card (on the host)：&lt;br /&gt;
&lt;br /&gt;
Requirement:&lt;br /&gt;
*1.A SD card;&lt;br /&gt;
*2.Device tree binary file downloaded from Banana Pi website: bpi-w2.dtb;&lt;br /&gt;
*3.Kernel image file downloaded from Banana Pi website: uImage;&lt;br /&gt;
*4.Video and Audio firmware file downloaded from Banana Pi website: bluecore.audio;&lt;br /&gt;
&lt;br /&gt;
Steps:&lt;br /&gt;
&lt;br /&gt;
*1.Using fdisk tool to create two partitions in SD card: format the first partition as FAT32, and the second partition as ext4; It’s recommended that the first partition size should not be less than 100M;&lt;br /&gt;
*2.Copy the three files: bpi-w2.dtb, uImage, bluecore.audio to the first partition;&lt;br /&gt;
*3.Copy the all files in root filesystem which just built by us to the second partition using root privilege:&lt;br /&gt;
 cp -a rootfs/* /media/xxx/sdxx/&lt;br /&gt;
 sync&lt;br /&gt;
*4.Eject the SD card and insert it to the W2 board, after power on the board, you can see the ubuntu is running now.&lt;br /&gt;
*5.Set up network and get packages by using apt-get from ubuntu repository&lt;br /&gt;
&lt;br /&gt;
Steps:&lt;br /&gt;
&lt;br /&gt;
*1.Log in with root and the password was set by yourself;&lt;br /&gt;
*2.Ifconfig eth0 or eth1: ifconfig eth1 192.168.2.231&lt;br /&gt;
*3.Add default gateway to let the board can reach internet: route add default gw 192.168.2.1&lt;br /&gt;
*4.Add a DNS: echo ‘nameserver 8.8.8.8’ &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
*5.apt-get update&lt;br /&gt;
*6.then you can fetch and install any packages from ubuntu by using apt-get.&lt;br /&gt;
&lt;br /&gt;
6.Furthermore：&lt;br /&gt;
&lt;br /&gt;
Some functions are not available on the W2 now, because the kernel is not fully functional, we are working hard to make it more and more complete, please follow our official website update.&lt;br /&gt;
&lt;br /&gt;
PDF format file download&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/uploads/default/original/2X/c/c6dc409abc249c57a4cb2b7aedaddec6b80a9026.pdf&lt;br /&gt;
&lt;br /&gt;
===== Ubuntu 16.04 Install and run Node.js and http-server=====&lt;br /&gt;
&lt;br /&gt;
* insltall Node.js&lt;br /&gt;
&lt;br /&gt;
 After running Ubuntu 16.04, it's easy to install packages on the W2. Please follow below steps to install node.js:&lt;br /&gt;
&lt;br /&gt;
    1.  apt-get install nodejs&lt;br /&gt;
    2.  apt-get install npm&lt;br /&gt;
    3.  npm install -g http-server&lt;br /&gt;
    4. make a link to nodejs:  cd /usr/bin/; ln -sf nodejs node&lt;br /&gt;
&lt;br /&gt;
then Node.js is ready on your system.&lt;br /&gt;
&lt;br /&gt;
====OpenWrt====&lt;br /&gt;
&lt;br /&gt;
=====Burn OpenWRT with Linux kernel 4.4 =====&lt;br /&gt;
&lt;br /&gt;
1.About this release&lt;br /&gt;
&lt;br /&gt;
This release is for banana pi W2 board to run OpenWRT，you will know how to burn and run OpenWRT on W2.&lt;br /&gt;
&lt;br /&gt;
2.Burn OpenWRT on W2 steps：&lt;br /&gt;
&lt;br /&gt;
The Bootloader of OpenWRT is u-boot64, there are two ways to burn it on W2 EMMC.&lt;br /&gt;
&lt;br /&gt;
A. Use RTK MP_Tool burn uboot on W2：&lt;br /&gt;
&lt;br /&gt;
1）You need these files and tool：&lt;br /&gt;
* MP_Tool &lt;br /&gt;
* RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866.config（hardware configuration file）&lt;br /&gt;
* dvrboot.exe.bin（u-boot binary file）&lt;br /&gt;
&lt;br /&gt;
2）Connect W2 debug console to windows PC，and run MP_Tool：&lt;br /&gt;
&lt;br /&gt;
[[File:Burun_openwrt.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Set your console parameters&lt;br /&gt;
* Choose config file and uboot file&lt;br /&gt;
* Choose &amp;quot;LK option&amp;quot;&lt;br /&gt;
* Click Wirte button and then power on W2, and waiting for response &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
B. Use hypertrm burn uboot on W2：&lt;br /&gt;
&lt;br /&gt;
1）You need these files and tool：&lt;br /&gt;
* hypertrm &lt;br /&gt;
* RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin（hardware configuration binary file）&lt;br /&gt;
* dvrboot.exe.bin（u-boot binary file）&lt;br /&gt;
&lt;br /&gt;
2）Connect W2 debug console to windows PC：&lt;br /&gt;
* Run hypertrm ，config console parameters right&lt;br /&gt;
* Holding on press “ctrl + q” and power on board，after the screen show “d/g/r”，then loose “ctrl + q”&lt;br /&gt;
* Input “h”，use Y-modem way to send “RTD1296_hwsetting_BOOT_4DDR4_4Gb_s1866_padding.bin” to W2 board&lt;br /&gt;
* After finish transferred，input these parameters：&lt;br /&gt;
   &lt;br /&gt;
  ::s98007058  &lt;br /&gt;
  ::01500000&lt;br /&gt;
* Input “d”，and send u-boot binary file&lt;br /&gt;
* after finish transferred，input “g” to burn u-boot file on W2 EMMC&lt;br /&gt;
&lt;br /&gt;
After succeed to burn u-boot on W2, then install OpenWRT on W2.&lt;br /&gt;
&lt;br /&gt;
1）You need these tools and files：&lt;br /&gt;
* U disk&lt;br /&gt;
* install.img&lt;br /&gt;
&lt;br /&gt;
2）Burn OpenWRT on W2 steps：&lt;br /&gt;
* Format U disk as FAT32 filesystem&lt;br /&gt;
* Copy install.img to U disk root directory&lt;br /&gt;
* Decompress install.img to get four files：&lt;br /&gt;
&lt;br /&gt;
   emmc.uImage&lt;br /&gt;
&lt;br /&gt;
   rescue.root.emmc.cpio.gz_pad.img&lt;br /&gt;
&lt;br /&gt;
   bluecore.audio&lt;br /&gt;
&lt;br /&gt;
   rescue.emmc.dtb&lt;br /&gt;
&lt;br /&gt;
* Plug U disk to W2 USB3.0 interface，holding press “Esc” button to power on W2 board&lt;br /&gt;
* Then W2 board will go into u-boot console&lt;br /&gt;
* Input these commands step by step：&lt;br /&gt;
&lt;br /&gt;
   setenv bootargs &amp;quot;earlycon=uart8250,mmio32,0x98007800 console=ttyS0,115200 loglevel=7&lt;br /&gt;
   &lt;br /&gt;
   init=/etc/init root=/dev/mmcblk0p1 rootfstype=squashfs rootwait&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   save&lt;br /&gt;
&lt;br /&gt;
   go ru&lt;br /&gt;
&lt;br /&gt;
* Waiting for OpenWRT burning，after finished，W2 will reboot and go into OpenWRT system.&lt;br /&gt;
&lt;br /&gt;
[[File:Burun_openwrt_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
3.Image &amp;amp; Tools link：&lt;br /&gt;
&lt;br /&gt;
Baidu Drive： https://pan.baidu.com/s/1Rs9F46wNJibORaeCfVh4wg  PinCode：1w4w&lt;br /&gt;
&lt;br /&gt;
Google Drive：https://drive.google.com/file/d/10kfP142Jw0sA92uwaIYZt7CeXcDKelO1/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
4.BPI-W2 run OpenWRT video：&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/eTaRy8Jnfpk&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====PWM Control====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Develop 4G module with W2===&lt;br /&gt;
&lt;br /&gt;
===WiFi and Ap mode on W2===&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
&lt;br /&gt;
====AP mode====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Make your own image===&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Ultra_%26_Berry&amp;diff=14341</id>
		<title>Getting Started with M2 Ultra &amp; Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Ultra_%26_Berry&amp;diff=14341"/>
				<updated>2023-03-30T00:36:29Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
==BPI-M2U==&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Ultra_4.JPG|thumb|Overview [[Banana Pi BPI-M2U ]]]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|Overview [[Banana Pi BPI-M2 Berry]]]]&lt;br /&gt;
[[File:M2p_respbian.png|thumb|Overview: BPI-M2U respbian linux]]&lt;br /&gt;
&lt;br /&gt;
   Banana Pi BPI-M2 Ultra is a quad-core mini single board computer built with Allwinner R40 SoC. It features 2GB of RAM and 8GB eMMC. It also has onboard WiFi and BT. On the ports side, the BPI-M2 Ultra has 2 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, a DC power port, and last but not least, a SATA port.. &lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M2U]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad Core ARM Cortex A7 CPU R40&lt;br /&gt;
* 2GB DDR3 SDRAM&lt;br /&gt;
* 8 GB eMMC storage&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard&lt;br /&gt;
* SATA Interface&lt;br /&gt;
&lt;br /&gt;
==BPI-M2 Berry==&lt;br /&gt;
   Banana Pi BPI-M2 Berry is a quad-core mini single board computer built with Allwinner V40 SoC. It features 1GB of RAM . It also has onboard WiFi and BT. On the ports side, the BPI-M2 Ultra has 4 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, a DC power port, and last but not least, a SATA port..&lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M2 Berry]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad Core ARM Cortex A7 CPU V40.&lt;br /&gt;
* 1GB DDR3 SDRAM.&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard.&lt;br /&gt;
* SATA Interface&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
Let's get start to develop on BPI-M2U, see amazing things happen.&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Linux===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Windows System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M2P&lt;br /&gt;
 &lt;br /&gt;
  1.You could download the latest image from our wiki.&lt;br /&gt;
  * BPI-M2U: https://wiki.banana-pi.org/Banana_Pi_BPI-M2U#Image_Release&lt;br /&gt;
  * BPI-M2 Berry: https://wiki.banana-pi.org/Banana_Pi_BPI-M2_Berry#Image_Release&lt;br /&gt;
    &lt;br /&gt;
  2.Put the TF card into a TF-USB adapter and plug it to your PC USB interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Download the flashing tools &amp;quot;BalenaEtcher&amp;quot; and start it.&lt;br /&gt;
  &lt;br /&gt;
  4.Click &amp;quot;Flash from file&amp;quot; to select your image file.(.img or .zip)&lt;br /&gt;
  &lt;br /&gt;
  5.Click &amp;quot;Select target&amp;quot; to choose your USB device.&lt;br /&gt;
  &lt;br /&gt;
  6.Start to flash and wait for burning completely.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:Etcher.jpg | 600px]]&lt;br /&gt;
&lt;br /&gt;
===Android===&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M2U EMMC===&lt;br /&gt;
  1.Bootup your M2U with Micro SD card&lt;br /&gt;
  2.Copy &amp;quot;xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to your USB disk&lt;br /&gt;
  3.Plug your USB disk in M2U&lt;br /&gt;
  4.Mount the USB disk and flash the image file to eMMC&lt;br /&gt;
&lt;br /&gt;
  * bpi-tools&lt;br /&gt;
  curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools|sudo -E bash&lt;br /&gt;
  mount /dev/sda1 /mnt&lt;br /&gt;
  cd /mnt&lt;br /&gt;
  bpi-copy xxx-sd-emmc-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  * dd command&lt;br /&gt;
  mount /dev/sda1 /mnt&lt;br /&gt;
  cd /mnt&lt;br /&gt;
  unzip -p xxx-sd-emmc-xxx.img.zip |pv| dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
  5.Then power off M2U, take TF card out, power on M2U&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===How to build uboot &amp;amp; kernel===&lt;br /&gt;
====Install tools====&lt;br /&gt;
* apt-get udpate&lt;br /&gt;
* apt-get install gcc-arm-linux-gnueabihf u-boot-tools&lt;br /&gt;
* apt-get install pv&lt;br /&gt;
* curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
====Clone code====&lt;br /&gt;
* git clone: https://github.com/BPI-SINOVOIP/BPI-M2U-bsp.git&lt;br /&gt;
* ./build.sh&lt;br /&gt;
===SATA===&lt;br /&gt;
1. Mount SATA on M2U&lt;br /&gt;
&lt;br /&gt;
  [[Image:M2U_Sata.png]]&lt;br /&gt;
&lt;br /&gt;
* After insert sata interface, execute &amp;quot;fdisk -l&amp;quot;&lt;br /&gt;
  [[Image:M2U_Sata_fdisk_l.png]]&lt;br /&gt;
&lt;br /&gt;
* Then &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If you meet some errors when you mount SATA, try these following commands:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;fdisk /dev/sdx&amp;quot; to create new partition , set your partition numbers and size, after created partitions, input &amp;quot;wq&amp;quot; to save and quit.&lt;br /&gt;
* &amp;quot;mkfs.ext2 /dev/sdx&amp;quot; to format the SATA&lt;br /&gt;
* &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. After you success to insert SATA, we could input following commands to test SATA interface:&lt;br /&gt;
* &amp;quot;time dd if=/dev/xxx of=/dev/null bs=1M count=1000&amp;quot; to test read speed&lt;br /&gt;
* &amp;quot;time dd if=/dev/zero of=/dev/sdx bs=1M count=1000&amp;quot; to test write speed&lt;br /&gt;
  [[Image:Sata_test.png]]&lt;br /&gt;
&lt;br /&gt;
===OTG===&lt;br /&gt;
1. On M2U console:&lt;br /&gt;
* Execute &amp;quot;./adbd.sh&amp;quot;, then execute &amp;quot;ps -ax | grep adbd&amp;quot; to see if adbd is set up&lt;br /&gt;
  [[Image:M2P_ADBD.png]]&lt;br /&gt;
&lt;br /&gt;
2. On PC terminal:&lt;br /&gt;
* If adbd was succeed to set up, insert OTG-USB interface to M2U and PC(with Ubuntu system)&lt;br /&gt;
* Execute &amp;quot;adb devices&amp;quot; to see if PC has recognised M2U OTG&lt;br /&gt;
* If yes, we could execute &amp;quot;adb shell&amp;quot; to connect M2U by adb now&lt;br /&gt;
  [[Image:M2P_ADBD_Shell.png]]&lt;br /&gt;
&lt;br /&gt;
===LCD 5&amp;quot; &amp;amp; LCD 7&amp;quot;===&lt;br /&gt;
* Execute &amp;quot;bpi-bootsel&amp;quot;, you'll see a list of boot files&lt;br /&gt;
* Find &amp;quot;BPI_M2U_LCD7.img.gz&amp;quot;&lt;br /&gt;
* Then execute &amp;quot;bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m2u/BPI_M2U_LCD7.img.gz&amp;quot;&lt;br /&gt;
  [[Image:M2U_bootsel_lcd7.png]]&lt;br /&gt;
&lt;br /&gt;
===Touch screen===&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
1. On PC Terminal:&lt;br /&gt;
* Execute &amp;quot;iperf3 -s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. On M2U console:&lt;br /&gt;
* TCP test: &amp;quot;iperf3 -c serverIP&amp;quot;&lt;br /&gt;
* UDP test: &amp;quot;iperf3 -u -c serverIP&amp;quot;&lt;br /&gt;
[[Image:M2U_Gmac_test.png]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands:&lt;br /&gt;
&lt;br /&gt;
[[Image:M2U_bluetooth.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi on M2U===&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpasupplicant/wpa_supplicant.conf &lt;br /&gt;
  network={    &lt;br /&gt;
  ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
  psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
  priority=1 &lt;br /&gt;
  }&lt;br /&gt;
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640 camara.&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
====Shell====&lt;br /&gt;
* We also have built-in command in &amp;quot;/usr/local/bin&amp;quot; to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
===IR function===&lt;br /&gt;
* Execute &amp;quot;getevent&amp;quot;&lt;br /&gt;
* Use your IR device to send information to M2U&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi,GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
* read only system change to read &amp;amp; write mode: &amp;quot;mount -o remount,rw /&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Install Qt5.7 &amp;amp; Qtcreator===&lt;br /&gt;
1.Prepare a 32Gb TF card&lt;br /&gt;
&lt;br /&gt;
2.Use GParted to resize root point '/' as 32Gb&lt;br /&gt;
&lt;br /&gt;
3.apt-get install libxcb*&lt;br /&gt;
&lt;br /&gt;
4.download qt5.7&lt;br /&gt;
&lt;br /&gt;
5.make &amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
6.apt-get install qtcreator&lt;br /&gt;
&lt;br /&gt;
7.Config qtcreator&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
=Reference Link=&lt;br /&gt;
&lt;br /&gt;
http://www.banana-pi.org/m2plus.html&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Ultra_%26_Berry&amp;diff=14340</id>
		<title>Getting Started with M2 Ultra &amp; Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Ultra_%26_Berry&amp;diff=14340"/>
				<updated>2023-03-30T00:36:06Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
==BPI-M2U==&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Ultra_4.JPG|thumb|Overview [[Banana Pi BPI-M2U ]]]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|Overview [[Banana Pi BPI-M2 Berry]]]]&lt;br /&gt;
[[File:M2p_respbian.png|thumb|Overview: BPI-M2U respbian linux]]&lt;br /&gt;
&lt;br /&gt;
   Banana Pi BPI-M2 Ultra is a quad-core mini single board computer built with Allwinner R40 SoC. It features 2GB of RAM and 8GB eMMC. It also has onboard WiFi and BT. On the ports side, the BPI-M2 Ultra has 2 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, a DC power port, and last but not least, a SATA port.. &lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M2U]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad Core ARM Cortex A7 CPU R40&lt;br /&gt;
* 2GB DDR3 SDRAM&lt;br /&gt;
* 8 GB eMMC storage&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard&lt;br /&gt;
* SATA Interface&lt;br /&gt;
&lt;br /&gt;
==BPI-M2 Berry==&lt;br /&gt;
   Banana Pi BPI-M2 Berry is a quad-core mini single board computer built with Allwinner V40 SoC. It features 1GB of RAM . It also has onboard WiFi and BT. On the ports side, the BPI-M2 Ultra has 4 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, a DC power port, and last but not least, a SATA port..&lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M2 Berry]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad Core ARM Cortex A7 CPU V40.&lt;br /&gt;
* 1GB DDR3 SDRAM.&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard.&lt;br /&gt;
* SATA Interface&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
Let's get start to develop on BPI-M2U, see amazing things happen.&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Linux===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Windows System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M2P&lt;br /&gt;
 &lt;br /&gt;
  1.You could download the latest image from our wiki.&lt;br /&gt;
  * BPI-M2U: https://wiki.banana-pi.org/Banana_Pi_BPI-M2U#Image_Release&lt;br /&gt;
  * BPI-M2 Berry: https://wiki.banana-pi.org/Banana_Pi_BPI-M2_Berry&lt;br /&gt;
    &lt;br /&gt;
  2.Put the TF card into a TF-USB adapter and plug it to your PC USB interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Download the flashing tools &amp;quot;BalenaEtcher&amp;quot; and start it.&lt;br /&gt;
  &lt;br /&gt;
  4.Click &amp;quot;Flash from file&amp;quot; to select your image file.(.img or .zip)&lt;br /&gt;
  &lt;br /&gt;
  5.Click &amp;quot;Select target&amp;quot; to choose your USB device.&lt;br /&gt;
  &lt;br /&gt;
  6.Start to flash and wait for burning completely.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:Etcher.jpg | 600px]]&lt;br /&gt;
&lt;br /&gt;
===Android===&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M2U EMMC===&lt;br /&gt;
  1.Bootup your M2U with Micro SD card&lt;br /&gt;
  2.Copy &amp;quot;xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to your USB disk&lt;br /&gt;
  3.Plug your USB disk in M2U&lt;br /&gt;
  4.Mount the USB disk and flash the image file to eMMC&lt;br /&gt;
&lt;br /&gt;
  * bpi-tools&lt;br /&gt;
  curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools|sudo -E bash&lt;br /&gt;
  mount /dev/sda1 /mnt&lt;br /&gt;
  cd /mnt&lt;br /&gt;
  bpi-copy xxx-sd-emmc-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  * dd command&lt;br /&gt;
  mount /dev/sda1 /mnt&lt;br /&gt;
  cd /mnt&lt;br /&gt;
  unzip -p xxx-sd-emmc-xxx.img.zip |pv| dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
  5.Then power off M2U, take TF card out, power on M2U&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===How to build uboot &amp;amp; kernel===&lt;br /&gt;
====Install tools====&lt;br /&gt;
* apt-get udpate&lt;br /&gt;
* apt-get install gcc-arm-linux-gnueabihf u-boot-tools&lt;br /&gt;
* apt-get install pv&lt;br /&gt;
* curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
====Clone code====&lt;br /&gt;
* git clone: https://github.com/BPI-SINOVOIP/BPI-M2U-bsp.git&lt;br /&gt;
* ./build.sh&lt;br /&gt;
===SATA===&lt;br /&gt;
1. Mount SATA on M2U&lt;br /&gt;
&lt;br /&gt;
  [[Image:M2U_Sata.png]]&lt;br /&gt;
&lt;br /&gt;
* After insert sata interface, execute &amp;quot;fdisk -l&amp;quot;&lt;br /&gt;
  [[Image:M2U_Sata_fdisk_l.png]]&lt;br /&gt;
&lt;br /&gt;
* Then &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If you meet some errors when you mount SATA, try these following commands:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;fdisk /dev/sdx&amp;quot; to create new partition , set your partition numbers and size, after created partitions, input &amp;quot;wq&amp;quot; to save and quit.&lt;br /&gt;
* &amp;quot;mkfs.ext2 /dev/sdx&amp;quot; to format the SATA&lt;br /&gt;
* &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. After you success to insert SATA, we could input following commands to test SATA interface:&lt;br /&gt;
* &amp;quot;time dd if=/dev/xxx of=/dev/null bs=1M count=1000&amp;quot; to test read speed&lt;br /&gt;
* &amp;quot;time dd if=/dev/zero of=/dev/sdx bs=1M count=1000&amp;quot; to test write speed&lt;br /&gt;
  [[Image:Sata_test.png]]&lt;br /&gt;
&lt;br /&gt;
===OTG===&lt;br /&gt;
1. On M2U console:&lt;br /&gt;
* Execute &amp;quot;./adbd.sh&amp;quot;, then execute &amp;quot;ps -ax | grep adbd&amp;quot; to see if adbd is set up&lt;br /&gt;
  [[Image:M2P_ADBD.png]]&lt;br /&gt;
&lt;br /&gt;
2. On PC terminal:&lt;br /&gt;
* If adbd was succeed to set up, insert OTG-USB interface to M2U and PC(with Ubuntu system)&lt;br /&gt;
* Execute &amp;quot;adb devices&amp;quot; to see if PC has recognised M2U OTG&lt;br /&gt;
* If yes, we could execute &amp;quot;adb shell&amp;quot; to connect M2U by adb now&lt;br /&gt;
  [[Image:M2P_ADBD_Shell.png]]&lt;br /&gt;
&lt;br /&gt;
===LCD 5&amp;quot; &amp;amp; LCD 7&amp;quot;===&lt;br /&gt;
* Execute &amp;quot;bpi-bootsel&amp;quot;, you'll see a list of boot files&lt;br /&gt;
* Find &amp;quot;BPI_M2U_LCD7.img.gz&amp;quot;&lt;br /&gt;
* Then execute &amp;quot;bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m2u/BPI_M2U_LCD7.img.gz&amp;quot;&lt;br /&gt;
  [[Image:M2U_bootsel_lcd7.png]]&lt;br /&gt;
&lt;br /&gt;
===Touch screen===&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
1. On PC Terminal:&lt;br /&gt;
* Execute &amp;quot;iperf3 -s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. On M2U console:&lt;br /&gt;
* TCP test: &amp;quot;iperf3 -c serverIP&amp;quot;&lt;br /&gt;
* UDP test: &amp;quot;iperf3 -u -c serverIP&amp;quot;&lt;br /&gt;
[[Image:M2U_Gmac_test.png]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands:&lt;br /&gt;
&lt;br /&gt;
[[Image:M2U_bluetooth.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi on M2U===&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpasupplicant/wpa_supplicant.conf &lt;br /&gt;
  network={    &lt;br /&gt;
  ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
  psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
  priority=1 &lt;br /&gt;
  }&lt;br /&gt;
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640 camara.&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
====Shell====&lt;br /&gt;
* We also have built-in command in &amp;quot;/usr/local/bin&amp;quot; to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
===IR function===&lt;br /&gt;
* Execute &amp;quot;getevent&amp;quot;&lt;br /&gt;
* Use your IR device to send information to M2U&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi,GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
* read only system change to read &amp;amp; write mode: &amp;quot;mount -o remount,rw /&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Install Qt5.7 &amp;amp; Qtcreator===&lt;br /&gt;
1.Prepare a 32Gb TF card&lt;br /&gt;
&lt;br /&gt;
2.Use GParted to resize root point '/' as 32Gb&lt;br /&gt;
&lt;br /&gt;
3.apt-get install libxcb*&lt;br /&gt;
&lt;br /&gt;
4.download qt5.7&lt;br /&gt;
&lt;br /&gt;
5.make &amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
6.apt-get install qtcreator&lt;br /&gt;
&lt;br /&gt;
7.Config qtcreator&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
=Reference Link=&lt;br /&gt;
&lt;br /&gt;
http://www.banana-pi.org/m2plus.html&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M5&amp;diff=14325</id>
		<title>Banana Pi BPI-M5</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M5&amp;diff=14325"/>
				<updated>2023-03-27T09:03:18Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M5]]&lt;br /&gt;
=BPI-M5 Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_4.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 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|Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_2.jpg|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M5_case_1.jpg|thumb|BPI-M5 case design]]&lt;br /&gt;
[[File:Wifibt_module_1.jpeg|thumb|WiFi&amp;amp;BT board, 802.11 a/b/g/n/ac 2T2R WiFi and Bluectooch 5.0]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M5 is the next generation single board computer from Banana Pi in 2020. It is powered by Amlogic S905X3 quad-core Cortex-A55 (2.0 XXGHz) processor.Onboard 4GB LPDDR4 memory and 16GB EMMC storage, and supports 4 USB 3.0 interface, a gigabit network port.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-M5.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Amlogic S905X3 quad core Cortex-A55 (2.0xxGHz)&lt;br /&gt;
* Mali-G31 GPU &lt;br /&gt;
* 4GB LPDDR4&lt;br /&gt;
* 16GB eMMC flash&lt;br /&gt;
* 4 USB 3.0 &lt;br /&gt;
* 1 GbE ethernet&lt;br /&gt;
* HDMI output&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Getting Started with M5/M2Pro]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_interface1.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;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M5'''&lt;br /&gt;
|-&lt;br /&gt;
|CPU|| Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz) &lt;br /&gt;
|-&lt;br /&gt;
| GPU||Mali-G31 MP2 GPU with 4 x Execution Engines (650Mhz)&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 4 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage|| MicroSD slot with support for up to 256GB expansion and 16G eMMC flash with support for up to 64GB&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Mbit/s Ethernet ,Optional WiFi USB dongle&lt;br /&gt;
|-&lt;br /&gt;
|Video Output(s)|| 1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID)&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output(s)|| 3.5mm jack and 1 x HDMI digital output&lt;br /&gt;
|-&lt;br /&gt;
| USB ports|| USB 3.0 PORT (x4)&lt;br /&gt;
|-&lt;br /&gt;
|GPIO|| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). GPIO pins can be used for UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
|Switches|| Reset, Power and U-boot &lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volt @3A via Micro USB (TYPE C) &lt;br /&gt;
|-&lt;br /&gt;
|Size &amp;amp; Weight|| 92x60mm, 48g&lt;br /&gt;
|-&lt;br /&gt;
|OS|| Android and Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Wifi &amp;amp; BT support via expansion board==&lt;br /&gt;
&lt;br /&gt;
===SDIO interface Wifi&amp;amp;BT===&lt;br /&gt;
&lt;br /&gt;
* WiFi&amp;amp;BT board, 802.11 a/b/g/n/ac 2T2R WiFi and Bluetooth 5.0 , support BPI-M5 and BPI-F2P&lt;br /&gt;
&lt;br /&gt;
[[File:Wifibt_module1_.jpeg]]&lt;br /&gt;
&lt;br /&gt;
*how to use : https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Wifi.2FBT_support&lt;br /&gt;
*discuss on forum : http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846&lt;br /&gt;
*RT8822CS Bluetooth and WiFi adapter for Banana Pi BPI-M5：https://www.magazinmehatronika.com/en/rt8822cs-bluetooth-and-wifi-adapter-for-banana-pi-m5/?fbclid=IwAR0Oqm4TCa2SAXBTMJgRmWMJI-VQREqFxLh1-LnT_XzA5MAvYh_BL9-L7Xk&lt;br /&gt;
*easy to buy sample : https://www.aliexpress.com/item/1005002550783568.html?spm=5261.ProductManageOnline.0.0.34ed4edfgdV59j&lt;br /&gt;
&lt;br /&gt;
===standard USB interface Wifi&amp;amp;BT===&lt;br /&gt;
&lt;br /&gt;
*Banana Pi Wifi&amp;amp;BT 4.2 expansion Board, standard USB interface, so support all open source boards via USB port.IEEE 802.11b/g/n/ac(1T1R) USB WLANAnd BT Module&lt;br /&gt;
&lt;br /&gt;
[[File:Usb_wifi_bt_board_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*how to use : https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Wifi.2FBT_support&lt;br /&gt;
*discuss on forum : http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162&lt;br /&gt;
&lt;br /&gt;
==BPI-M2 Pro VS BPI-M5 VS Odroid C4 VS RPI 4 ==&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;4&amp;quot;| '''BPI-M2 Pro VS BPI-M5 VS Odroid C4 VS RPI 4'''&lt;br /&gt;
|-&lt;br /&gt;
|||[[Banana Pi BPI-M2 Pro]]||[[Banana Pi BPI-M5]]|| Odroid C4|| Raspberry Pi 4||&lt;br /&gt;
|-&lt;br /&gt;
|Processor||Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz	 ||Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz ||	Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz || 	Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
|GPU	||Mali-G31 MP2 GPU ||Mali-G31 MP2 GPU ||	Mali-G31 MP2 GPU ||	Broadcom VideoCore VI&lt;br /&gt;
|-&lt;br /&gt;
|RAM	||2GB LPDDR4	 ||4GB LPDDR4	 ||DDR4 4GiB with 32-bit bus width ||2GB, 4GB or 8GB LPDDR4-3200 SDRAM&lt;br /&gt;
|-&lt;br /&gt;
|Storage ||	micro SD card slot &amp;amp; 16GB eMMC flash on board||	micro SD card slot &amp;amp; 16GB eMMC flash on board	 ||micro SD card slot , eMMC connector for option ||micro SD card slot, non EMMC &lt;br /&gt;
|-&lt;br /&gt;
|Network ||1 GbE ,WiFi&amp;amp;BT5.0 onbard||	GbE ,Optional WiFi USB dongle ||	GbE	 ||GbE, 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE&lt;br /&gt;
|-&lt;br /&gt;
|Video Output ||	1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID)||	1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID) ||	1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID) ||	2 × micro-HDMI 2.0&lt;br /&gt;
|-&lt;br /&gt;
|Audio Output	|| 1 x HDMI digital output ||3.5mm jack and 1 x HDMI digital output ||	Optional SPDIF optical output || 3.5 mm analogue audio-video jack&lt;br /&gt;
|-&lt;br /&gt;
|DSI	 ||N/A	||N/A	 ||N/A ||	2-lane MIPI DSI display port&lt;br /&gt;
|-&lt;br /&gt;
|CSI	 ||N/A	||N/A	 ||N/A	 ||2-lane MIPI CSI camera port&lt;br /&gt;
|-&lt;br /&gt;
|USB	 ||USB 3.0 x 2	1 Micro USB 2.0||USB 3.0 x 4	TYPE C ||USB 3.0 x 4, 1 x Micro USB 2.0 port (OTG) ||	2 USB 3.0 ports; 2 USB 2.0 ports;&lt;br /&gt;
|-&lt;br /&gt;
|Power	 ||5 volt @3A via DC power	||5 volt @3A via Micro USB (TYPE C)	 ||1 x DC power jack (Outer diameter : 5.5mm, inner diameter : 2.1mm) ||	5V DC via USB-C connector (minimum 3A*)&lt;br /&gt;
|-&lt;br /&gt;
|IR	 ||Yes||Yes	 ||Yes	 ||N/A&lt;br /&gt;
|-&lt;br /&gt;
|GPIO	 ||40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND).||40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). ||	40 x GPIO pins	 ||40-pin GPIO header, populated&lt;br /&gt;
|-&lt;br /&gt;
|Button	 ||Reset, user and U-boot ||Reset, user and U-boot ||	N/A ||	N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|LED	 || Power Status and Activity status|| Power Status and Activity status ||	 Power Status and Activity status ||	 Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
|Dimensions &amp;amp; weight||65mm x 65mm,58g	 ||85mm x 56mm, 48g	 ||85mm x 56mm 59g	 ||88 mm × 58 mm, 46 g&lt;br /&gt;
|-&lt;br /&gt;
|System Support||	Linux &amp;amp; Android	 ||	Linux &amp;amp; Android	 ||Linux &amp;amp; Android ||Linux &amp;amp; Android&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M5 40PIN GPIO (CON2)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-		&lt;br /&gt;
|GPIO Pin Name	||Default Function	||Function2||	Function3&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P01	||VCC-3V3||	||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P02||	VCC5V	||	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P03||	GPIOX_17	||I2C_M2_SDA||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P04||	VCC5V	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P05||	GPIOX_18||	I2C_M2_SCL	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P06||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P07||	GPIOX_5	SDIO_CMD||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P08||	GPIOX_12||	UART_A_TX	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P09||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P10||	GPIOX_13	||UART_A_RX	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P11||	GPIOX_3	SDIO_D3	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P12||	GPIOAO_8||	TDMB_SCLK	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P13||	GPIOX_4	SDIO_CLK||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P14||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P15||	GPIOX_7	PWM_F	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P16||	GPIOX_0	SDIO_D0	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P17||	VCC-3V3		||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P18||	GPIOX_1	SDIO_D1	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P19||	GPIOX_8	PCM_DIN	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P20||	GND		||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P21||	GPIOX_9	PCM_DOUT||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P22||	GPIOX_2	SDIO_D2	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P23||	GPIOX_11||	PCM_CLK	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P24||	GPIOX_10	||PCM_SYNC	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P25||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P26||	GPIOX_16	||PWM_E	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P27||	GPIOA_14||	I2C_M3_SDA	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P28||	GPIOA_15||	I2C_M3_SCL||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P29||	GPIOX_14||	UART_A_CTS	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P30||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P31||	GPIOX_15	||UART_A_RTS	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P32||	GPIOX_19||	PWM_B	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P33||	GPIOX_6	PWM_A	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P34||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P35||	GPIOAO_7||	TDMB_FS	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P36||	GPIOH_5	SPDIF_IN||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P37||	GPIOAO_9||	I2S_MCLK||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P38||	GPIOAO_10||	TDMB_DIN||	SPDIF_OUT&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P39||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P40||	GPIOAO_4||	TDMB_DOUT||	&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M5 Debug UART(CON1)	===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P1||	GND&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P2||	UART0-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P3||	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;
=== BPI-M5 runs wiringpi gpio===&lt;br /&gt;
*https://github.com/BPI-SINOVOIP/amlogic-wiringPi&lt;br /&gt;
===Android===&lt;br /&gt;
android 9 source code: https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9&lt;br /&gt;
&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Build_Android_Source_Code How to build the Android Source Code]&lt;br /&gt;
&lt;br /&gt;
*BPI-M5/M2 PRO Android9 source code: &lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1TmmR_075b49lPSt1Phq0ag?pwd=8888 (pincode: 8888)&lt;br /&gt;
:Google Drive:&lt;br /&gt;
&lt;br /&gt;
===Linux BSP source code===&lt;br /&gt;
Linux BSP source code: https://github.com/BPI-SINOVOIP/BPI-M5-bsp&lt;br /&gt;
&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Build_Linux_Source_Code How to build the Linux BSP Source Code]&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
*[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FDocuments%2FBPI-M5%2FBPI-M5-SCH-V10-Release.pdf BPI-M5 schematic diagram]&lt;br /&gt;
*[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FDocuments%2FBPI-M5%2FBPI-M5-PCB-V10-DXF.rar BPI-M5 PCB DXF file]&lt;br /&gt;
*[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FDocuments%2FBPI-M5%2FS905X3_Public_Datasheet_Hardkernel.pdf Amlogic S905x3 datasheet]&lt;br /&gt;
*[http://wiki.banana-pi.org/Product_certification Banana Pi BPI-M5 CE,FCC,RoHS Certification]&lt;br /&gt;
*Install OpenGapps on Bananapi BPI-M5 Android 9.0:https://www.youtube.com/watch?v=fXOKmWfpqF8&lt;br /&gt;
*BANANA PI BPI-M5 REVIEW &amp;amp; BENCHMARKS：https://bret.dk/banana-pi-m5-review/&lt;br /&gt;
*BANANA PI M5 VS RASPBERRY PI 4 – BENCHMARKS ： https://bret.dk/banana-pi-m5-vs-raspberry-pi-4/&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
:[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Android How to flash Android Image]&lt;br /&gt;
&lt;br /&gt;
* '''2023-03-01-bpi-m5-m2pro-tablet-android9.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1cjzNgiE0-XJhvZgY0tQuHg?pwd=8888 （pincode: 8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/144OU7NMTxLUqxNN2tXESgAoE3VXYgA_F?usp=share_link&lt;br /&gt;
&lt;br /&gt;
*'''2023-03-01-bpi-m5-m2pro-mbox-android9.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1SAfGM0WxOHW0vYCkjQUfbQ?pwd=8888  (pincode: 8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/1Ipg8vZvKN_0xX0Fu24BW5UcDAHGhP7oH?usp=share_link&lt;br /&gt;
&lt;br /&gt;
* '''2022-09-07 release, BPI-M2 PRO/M5-Mbox-Android9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1vqFGBDzY0gdqIIkX8ap5GA?pwd=uex1 (pincode: uex1)&lt;br /&gt;
:Google Drive:https://drive.google.com/file/d/1qmVfN-ocQJ2WqTdFw3vk1f5_kDnRGZeM/view?usp=sharing&lt;br /&gt;
:MD5: ac9ac49c3b37b9cd85de65bd64f9552f&lt;br /&gt;
&lt;br /&gt;
* '''2022-09-07 release, BPI-M2 PRO/M5-Tablet-Android9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1vrmPlyPttoKU-FkPZZE-Jg?pwd=ds7a (pincode: ds7a)&lt;br /&gt;
:Google Drive:https://drive.google.com/file/d/1m-b5wYWazMM_QgnQ5iQZiPRRD6AmF-Ao/view?usp=sharing&lt;br /&gt;
:MD5: 84d60f44761a4d4958a50e47eee7a62a&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
:[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux How to flash Linux Image]&lt;br /&gt;
&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* '''2023-03-01-ubuntu-20.04-mate-desktop-bpi-m5-m2pro-aarch64-sd-emmc.img'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1aFY5XEN-dsEESX39-Bxa5g?pwd=8888  (pincode: 8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/1yJSBk6AOJaRoF01-pqoVhB3eqqxqKEIL?usp=share_link&lt;br /&gt;
&lt;br /&gt;
*'''2023-03-01-ubuntu-20.04-server-bpi-m5-m2pro-aarch64-sd-emmc.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1eiPnqFUdbxa7_kfHrJP4gw?pwd=888  (pincode:8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/1gEbIXcaUzGQa0MPB1NwfnWlYJnFW-NbP?usp=share_link&lt;br /&gt;
&lt;br /&gt;
* '''2022-09-06 release Ubuntu Mate Desktop 20.04 with Kernel 4.9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1XE2K_KlVwP0hvjv_AChVgg?pwd=38vx (pincode: 38vx) &lt;br /&gt;
:Google drive: https://drive.google.com/file/d/1OGNaEylMR-VlfY6ynRkGQNuljLcvxoqe/view?usp=sharing&lt;br /&gt;
:MD5: 4b0528065ddcf634e9a43b6b7a6363b1&lt;br /&gt;
&lt;br /&gt;
*'''2022-09-06 release, Ubuntu server 20.04 with Kernel 4.9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/15g52JerxZejcwywH7zZOlg?pwd=jtv5 (pincode: jtv5)&lt;br /&gt;
:Google drive:https://drive.google.com/file/d/15Y80CDT07HfEgo2YVjTkLSeIUGk8GQUo/view?usp=sharing&lt;br /&gt;
:MD5: f377dc5246f9ed7133db95c9d34b5201&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
*'''2023-03-01-debian-10-buster-bpi-m5-m2pro-aarch64-sd-emmc.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1pEdZUVE70IzZJamdam_W3g?pwd=8888  (pincode:8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/159Xyb7gWFlTnDAnnBL-jGn_p8s6ECFw2?usp=share_link&lt;br /&gt;
&lt;br /&gt;
*'''2023-03-01-debian-10-buster-xfce-bpi-m5-m2pro-aarch64-sd-emmc.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1Ys6c64JRnO1CLpgNhHE-tg?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/1JNbMay5W257bPBX7PBjzab6ISAmBe5XD?usp=share_link&lt;br /&gt;
&lt;br /&gt;
*'''2022-09-06 release, Debian-10-buster with Kernel 4.9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1BEdv5AWEYgkMcUX_ju4DPQ?pwd=2cw4 (pincode: 2cw4)&lt;br /&gt;
:Google Drive:https://drive.google.com/file/d/1IZ7IEFeb21ZnaAuknz9lr00jo95UX6ml/view?usp=sharing&lt;br /&gt;
:MD5: f6cbe3518e8a02267224a0aa0256ce11&lt;br /&gt;
&lt;br /&gt;
==Third part image==&lt;br /&gt;
&lt;br /&gt;
===Raspbian===&lt;br /&gt;
*'''BPI-M5 BPI-M2 Pro new image:Raspbian image, 2022-4-09 update, Raspbian image for linux kernel 4.9 and 5.17. support 32bit and 64 bit,please choose the right image'''&lt;br /&gt;
:Google driver: https://drive.google.com/drive/folders/1oqamIMl5Kmb3LVYMPFw-1tilvwKQI6n-&lt;br /&gt;
:discuss on forum : https://forum.banana-pi.org/t/bpi-m5-bpi-m2-pro-new-image-rasbian-image-2022-4-09-update/13246&lt;br /&gt;
&lt;br /&gt;
===Armbian===&lt;br /&gt;
:'''Image From Armbian Official website:'''&lt;br /&gt;
::https://www.armbian.com/bananapi-m5/&lt;br /&gt;
&lt;br /&gt;
:'''Image From Bananapi Released on 2023-03''', build from Armbian main branch source code, fix some bugs and support i2c, uart, spi and rtl8822cs overlays, you can enable the overlay in /boot/armbianEnv.txt&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1Wgg_0Z7Db6DSKqoIjf16PQ?pwd=8888  (pincode: 8888)&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1Yds8Rru_26S0wN2B-pIM6XkyxUXiceNl?usp=share_link&lt;br /&gt;
&lt;br /&gt;
===EmuELEC===&lt;br /&gt;
*This is a porting of EmuELEC v4.5 for BPI-M5. I ported from odroid c4 official EmuELEC image. PS3 a XBOX ONE S gamepad controllers were tested and work fine.&lt;br /&gt;
*https://forum.banana-pi.org/t/emuelec-for-bpi-m5/12095&lt;br /&gt;
===CoreELEC===&lt;br /&gt;
:[https://coreelec.org/ CoreELEC] official support Bananapi M5 and M2Pro since 19.2-Matrix_rc1&lt;br /&gt;
::Download: https://coreelec.org/#download&lt;br /&gt;
::Install Guide: https://coreelec.org/#install&lt;br /&gt;
::Source Code: https://github.com/CoreELEC/CoreELEC&lt;br /&gt;
::how to install: https://wiki.coreelec.org/coreelec:bpim2pro&lt;br /&gt;
&lt;br /&gt;
===Volumio===&lt;br /&gt;
:Download:&lt;br /&gt;
::Google drive: https://drive.google.com/drive/folders/1B7nsy4Jxt2lBgXoA6XEnaamEQvZyHI8f&lt;br /&gt;
::Baidu cloud : https://pan.baidu.com/s/1mj9OC8P2VSI5GAMnIKGBqA PinCode: mrrb &lt;br /&gt;
:User Guide: https://cdn.volumio.org/wp-content/uploads/2019/01/Quick-Start-Guide-Volumio.pdf&lt;br /&gt;
:Source code: https://github.com/Dangku/volumio-build&lt;br /&gt;
:Platform prebuild package: https://github.com/Dangku/volumio-platform-bananapi&lt;br /&gt;
:Development guilde: https://volumio.github.io/docs/User_Manual/Quick_Start_Guide.html&lt;br /&gt;
&lt;br /&gt;
===Odroid Android image===&lt;br /&gt;
*Base on Odroid android source code and build for bananapi m5/m2pro&lt;br /&gt;
:Download: &lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1u_CddlHvpAMu2VZJfIfUKTsFFyigCWig&lt;br /&gt;
:Install Guide: https://forum.odroid.com/viewtopic.php?f=204&amp;amp;t=38579&lt;br /&gt;
&lt;br /&gt;
*Odroid ubuntu IMG for BPI-M5：&lt;br /&gt;
::https://forum.banana-pi.org/t/odroid-ubuntu-img-for-bpi-m5/12169&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Core 20===&lt;br /&gt;
:Ubuntu Core 20 demo image for bananapi m5/m2pro.&lt;br /&gt;
:Download:&lt;br /&gt;
::Google drive: https://drive.google.com/drive/folders/1TdAQ-HdggKrOPmWi0chpHDJY0SMWlUaC&lt;br /&gt;
::Baidu cloud :&lt;br /&gt;
:Install Guide: https://ubuntu.com/core/docs/uc20/install&lt;br /&gt;
&lt;br /&gt;
===Archlinux===&lt;br /&gt;
*Archlinux xfce and minimal demo image, kernel 4.9, image build refer to [https://archdroid.org/ Archdroid]&lt;br /&gt;
:login: alarm/alarm, or root/root&lt;br /&gt;
:Download:&lt;br /&gt;
::Google drive:https://drive.google.com/drive/folders/1rSSNgbseY2mwTMIauGR1yrXN8RPKzuk6&lt;br /&gt;
::Baidu link :  https://pan.baidu.com/s/1Ck_H51jPUyAv98o73I8oAw Pincode: rbv2&lt;br /&gt;
::discuss on forum : https://forum.banana-pi.org/t/bpi-m5-bpi-m2-pro-new-image-archlinux-2021-9-14/12595&lt;br /&gt;
&lt;br /&gt;
===HuaWei OpenEuler===&lt;br /&gt;
*OpenEuler demo image, bpi kernel 4.9&lt;br /&gt;
:Download:&lt;br /&gt;
::Baidu link ：https://pan.baidu.com/s/12b7q3y-m3YRyD7GwhKE0QA Pincode：lv50 &lt;br /&gt;
:SIG gitee link :  https://gitee.com/openeuler/raspberrypi&lt;br /&gt;
:Discuss on fourm : http://forum.banana-pi.org/&lt;br /&gt;
&lt;br /&gt;
===Manjaro for BPI-M5===&lt;br /&gt;
&lt;br /&gt;
Manjaro porting for BPI-M5 from Official Image for Odroid C4, the ported image use kernel 5.10. If anyone is interested on give it a try, the download link is below.&lt;br /&gt;
*Download Link: https://mega.nz/folder/BuZWkLhC#phC9KSsassB4bmkAegYykA&lt;br /&gt;
*discuss on forum : https://forum.banana-pi.org/t/manjaro-for-bpi-m5/12726&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
&lt;br /&gt;
*[https://pt.aliexpress.com/item/1005001871842695.html?spm=a2g0o.productlist.0.0.59976fff0GL35q&amp;amp;algo_pvid=24dfc96b-f6c1-4850-9ff4-fd177ee36648&amp;amp;algo_expid=24dfc96b-f6c1-4850-9ff4-fd177ee36648-0&amp;amp;btsid=0bb47a2216147586025791703e886c&amp;amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_ buy it form aliexpress ]&lt;br /&gt;
&lt;br /&gt;
*easy to buy RTL8822 wifi module sample : https://www.aliexpress.com/item/1005002550783568.html?spm=5261.ProductManageOnline.0.0.34ed4edfgdV59j&lt;br /&gt;
&lt;br /&gt;
* Mass order,please contact : judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M5&amp;diff=14323</id>
		<title>Banana Pi BPI-M5</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M5&amp;diff=14323"/>
				<updated>2023-03-27T09:02:50Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Easy to buy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M5]]&lt;br /&gt;
=BPI-M5 Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_4.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 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|Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_2.jpg|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M5_case_1.jpg|thumb|BPI-M5 case design]]&lt;br /&gt;
[[File:Wifibt_module_1.jpeg|thumb|WiFi&amp;amp;BT board, 802.11 a/b/g/n/ac 2T2R WiFi and Bluectooch 5.0]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M5 is the next generation single board computer from Banana Pi in 2020. It is powered by Amlogic S905X3 quad-core Cortex-A55 (2.0 XXGHz) processor.Onboard 4GB LPDDR4 memory and 16GB EMMC storage, and supports 4 USB 3.0 interface, a gigabit network port.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-M5.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Amlogic S905X3 quad core Cortex-A55 (2.0xxGHz)&lt;br /&gt;
* Mali-G31 GPU &lt;br /&gt;
* 4GB LPDDR4&lt;br /&gt;
* 16GB eMMC flash&lt;br /&gt;
* 4 USB 3.0 &lt;br /&gt;
* 1 GbE ethernet&lt;br /&gt;
* HDMI output&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Getting Started with M5/M2Pro]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_interface1.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;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M5'''&lt;br /&gt;
|-&lt;br /&gt;
|CPU|| Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz) &lt;br /&gt;
|-&lt;br /&gt;
| GPU||Mali-G31 MP2 GPU with 4 x Execution Engines (650Mhz)&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 4 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage|| MicroSD slot with support for up to 256GB expansion and 16G eMMC flash with support for up to 64GB&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Mbit/s Ethernet ,Optional WiFi USB dongle&lt;br /&gt;
|-&lt;br /&gt;
|Video Output(s)|| 1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID)&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output(s)|| 3.5mm jack and 1 x HDMI digital output&lt;br /&gt;
|-&lt;br /&gt;
| USB ports|| USB 3.0 PORT (x4)&lt;br /&gt;
|-&lt;br /&gt;
|GPIO|| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). GPIO pins can be used for UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
|Switches|| Reset, Power and U-boot &lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volt @3A via Micro USB (TYPE C) &lt;br /&gt;
|-&lt;br /&gt;
|Size &amp;amp; Weight|| 92x60mm, 48g&lt;br /&gt;
|-&lt;br /&gt;
|OS|| Android and Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Wifi &amp;amp; BT support via expansion board==&lt;br /&gt;
&lt;br /&gt;
===SDIO interface Wifi&amp;amp;BT===&lt;br /&gt;
&lt;br /&gt;
* WiFi&amp;amp;BT board, 802.11 a/b/g/n/ac 2T2R WiFi and Bluetooth 5.0 , support BPI-M5 and BPI-F2P&lt;br /&gt;
&lt;br /&gt;
[[File:Wifibt_module1_.jpeg]]&lt;br /&gt;
&lt;br /&gt;
*how to use : https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Wifi.2FBT_support&lt;br /&gt;
*discuss on forum : http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846&lt;br /&gt;
*RT8822CS Bluetooth and WiFi adapter for Banana Pi BPI-M5：https://www.magazinmehatronika.com/en/rt8822cs-bluetooth-and-wifi-adapter-for-banana-pi-m5/?fbclid=IwAR0Oqm4TCa2SAXBTMJgRmWMJI-VQREqFxLh1-LnT_XzA5MAvYh_BL9-L7Xk&lt;br /&gt;
*easy to buy sample : https://www.aliexpress.com/item/1005002550783568.html?spm=5261.ProductManageOnline.0.0.34ed4edfgdV59j&lt;br /&gt;
&lt;br /&gt;
===standard USB interface Wifi&amp;amp;BT===&lt;br /&gt;
&lt;br /&gt;
*Banana Pi Wifi&amp;amp;BT 4.2 expansion Board, standard USB interface, so support all open source boards via USB port.IEEE 802.11b/g/n/ac(1T1R) USB WLANAnd BT Module&lt;br /&gt;
&lt;br /&gt;
[[File:Usb_wifi_bt_board_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*how to use : https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Wifi.2FBT_support&lt;br /&gt;
*discuss on forum : http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162&lt;br /&gt;
&lt;br /&gt;
==BPI-M2 Pro VS BPI-M5 VS Odroid C4 VS RPI 4 ==&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;4&amp;quot;| '''BPI-M2 Pro VS BPI-M5 VS Odroid C4 VS RPI 4'''&lt;br /&gt;
|-&lt;br /&gt;
|||[[Banana Pi BPI-M2 Pro]]||[[Banana Pi BPI-M5]]|| Odroid C4|| Raspberry Pi 4||&lt;br /&gt;
|-&lt;br /&gt;
|Processor||Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz	 ||Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz ||	Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz || 	Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
|GPU	||Mali-G31 MP2 GPU ||Mali-G31 MP2 GPU ||	Mali-G31 MP2 GPU ||	Broadcom VideoCore VI&lt;br /&gt;
|-&lt;br /&gt;
|RAM	||2GB LPDDR4	 ||4GB LPDDR4	 ||DDR4 4GiB with 32-bit bus width ||2GB, 4GB or 8GB LPDDR4-3200 SDRAM&lt;br /&gt;
|-&lt;br /&gt;
|Storage ||	micro SD card slot &amp;amp; 16GB eMMC flash on board||	micro SD card slot &amp;amp; 16GB eMMC flash on board	 ||micro SD card slot , eMMC connector for option ||micro SD card slot, non EMMC &lt;br /&gt;
|-&lt;br /&gt;
|Network ||1 GbE ,WiFi&amp;amp;BT5.0 onbard||	GbE ,Optional WiFi USB dongle ||	GbE	 ||GbE, 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE&lt;br /&gt;
|-&lt;br /&gt;
|Video Output ||	1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID)||	1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID) ||	1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID) ||	2 × micro-HDMI 2.0&lt;br /&gt;
|-&lt;br /&gt;
|Audio Output	|| 1 x HDMI digital output ||3.5mm jack and 1 x HDMI digital output ||	Optional SPDIF optical output || 3.5 mm analogue audio-video jack&lt;br /&gt;
|-&lt;br /&gt;
|DSI	 ||N/A	||N/A	 ||N/A ||	2-lane MIPI DSI display port&lt;br /&gt;
|-&lt;br /&gt;
|CSI	 ||N/A	||N/A	 ||N/A	 ||2-lane MIPI CSI camera port&lt;br /&gt;
|-&lt;br /&gt;
|USB	 ||USB 3.0 x 2	1 Micro USB 2.0||USB 3.0 x 4	TYPE C ||USB 3.0 x 4, 1 x Micro USB 2.0 port (OTG) ||	2 USB 3.0 ports; 2 USB 2.0 ports;&lt;br /&gt;
|-&lt;br /&gt;
|Power	 ||5 volt @3A via DC power	||5 volt @3A via Micro USB (TYPE C)	 ||1 x DC power jack (Outer diameter : 5.5mm, inner diameter : 2.1mm) ||	5V DC via USB-C connector (minimum 3A*)&lt;br /&gt;
|-&lt;br /&gt;
|IR	 ||Yes||Yes	 ||Yes	 ||N/A&lt;br /&gt;
|-&lt;br /&gt;
|GPIO	 ||40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND).||40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). ||	40 x GPIO pins	 ||40-pin GPIO header, populated&lt;br /&gt;
|-&lt;br /&gt;
|Button	 ||Reset, user and U-boot ||Reset, user and U-boot ||	N/A ||	N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|LED	 || Power Status and Activity status|| Power Status and Activity status ||	 Power Status and Activity status ||	 Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
|Dimensions &amp;amp; weight||65mm x 65mm,58g	 ||85mm x 56mm, 48g	 ||85mm x 56mm 59g	 ||88 mm × 58 mm, 46 g&lt;br /&gt;
|-&lt;br /&gt;
|System Support||	Linux &amp;amp; Android	 ||	Linux &amp;amp; Android	 ||Linux &amp;amp; Android ||Linux &amp;amp; Android&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M5 40PIN GPIO (CON2)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-		&lt;br /&gt;
|GPIO Pin Name	||Default Function	||Function2||	Function3&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P01	||VCC-3V3||	||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P02||	VCC5V	||	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P03||	GPIOX_17	||I2C_M2_SDA||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P04||	VCC5V	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P05||	GPIOX_18||	I2C_M2_SCL	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P06||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P07||	GPIOX_5	SDIO_CMD||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P08||	GPIOX_12||	UART_A_TX	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P09||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P10||	GPIOX_13	||UART_A_RX	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P11||	GPIOX_3	SDIO_D3	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P12||	GPIOAO_8||	TDMB_SCLK	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P13||	GPIOX_4	SDIO_CLK||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P14||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P15||	GPIOX_7	PWM_F	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P16||	GPIOX_0	SDIO_D0	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P17||	VCC-3V3		||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P18||	GPIOX_1	SDIO_D1	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P19||	GPIOX_8	PCM_DIN	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P20||	GND		||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P21||	GPIOX_9	PCM_DOUT||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P22||	GPIOX_2	SDIO_D2	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P23||	GPIOX_11||	PCM_CLK	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P24||	GPIOX_10	||PCM_SYNC	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P25||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P26||	GPIOX_16	||PWM_E	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P27||	GPIOA_14||	I2C_M3_SDA	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P28||	GPIOA_15||	I2C_M3_SCL||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P29||	GPIOX_14||	UART_A_CTS	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P30||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P31||	GPIOX_15	||UART_A_RTS	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P32||	GPIOX_19||	PWM_B	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P33||	GPIOX_6	PWM_A	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P34||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P35||	GPIOAO_7||	TDMB_FS	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P36||	GPIOH_5	SPDIF_IN||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P37||	GPIOAO_9||	I2S_MCLK||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P38||	GPIOAO_10||	TDMB_DIN||	SPDIF_OUT&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P39||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P40||	GPIOAO_4||	TDMB_DOUT||	&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M5 Debug UART(CON1)	===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P1||	GND&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P2||	UART0-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P3||	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;
=== BPI-M5 runs wiringpi gpio===&lt;br /&gt;
*https://github.com/BPI-SINOVOIP/amlogic-wiringPi&lt;br /&gt;
===Android===&lt;br /&gt;
android 9 source code: https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9&lt;br /&gt;
&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Build_Android_Source_Code How to build the Android Source Code]&lt;br /&gt;
&lt;br /&gt;
*BPI-M5/M2 PRO Android9 source code: &lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1TmmR_075b49lPSt1Phq0ag?pwd=8888 (pincode: 8888)&lt;br /&gt;
:Google Drive:&lt;br /&gt;
&lt;br /&gt;
===Linux BSP source code===&lt;br /&gt;
Linux BSP source code: https://github.com/BPI-SINOVOIP/BPI-M5-bsp&lt;br /&gt;
&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Build_Linux_Source_Code How to build the Linux BSP Source Code]&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
*[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FDocuments%2FBPI-M5%2FBPI-M5-SCH-V10-Release.pdf BPI-M5 schematic diagram]&lt;br /&gt;
*[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FDocuments%2FBPI-M5%2FBPI-M5-PCB-V10-DXF.rar BPI-M5 PCB DXF file]&lt;br /&gt;
*[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FDocuments%2FBPI-M5%2FS905X3_Public_Datasheet_Hardkernel.pdf Amlogic S905x3 datasheet]&lt;br /&gt;
*[http://wiki.banana-pi.org/Product_certification Banana Pi BPI-M5 CE,FCC,RoHS Certification]&lt;br /&gt;
*Install OpenGapps on Bananapi BPI-M5 Android 9.0:https://www.youtube.com/watch?v=fXOKmWfpqF8&lt;br /&gt;
*BANANA PI BPI-M5 REVIEW &amp;amp; BENCHMARKS：https://bret.dk/banana-pi-m5-review/&lt;br /&gt;
*BANANA PI M5 VS RASPBERRY PI 4 – BENCHMARKS ： https://bret.dk/banana-pi-m5-vs-raspberry-pi-4/&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
:[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Android How to flash Android Image]&lt;br /&gt;
&lt;br /&gt;
* '''2023-03-01-bpi-m5-m2pro-tablet-android9.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1cjzNgiE0-XJhvZgY0tQuHg?pwd=8888 （pincode: 8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/144OU7NMTxLUqxNN2tXESgAoE3VXYgA_F?usp=share_link&lt;br /&gt;
&lt;br /&gt;
*'''2023-03-01-bpi-m5-m2pro-mbox-android9.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1SAfGM0WxOHW0vYCkjQUfbQ?pwd=8888  (pincode: 8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/1Ipg8vZvKN_0xX0Fu24BW5UcDAHGhP7oH?usp=share_link&lt;br /&gt;
&lt;br /&gt;
* '''2022-09-07 release, BPI-M2 PRO/M5-Mbox-Android9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1vqFGBDzY0gdqIIkX8ap5GA?pwd=uex1 (pincode: uex1)&lt;br /&gt;
:Google Drive:https://drive.google.com/file/d/1qmVfN-ocQJ2WqTdFw3vk1f5_kDnRGZeM/view?usp=sharing&lt;br /&gt;
:MD5: ac9ac49c3b37b9cd85de65bd64f9552f&lt;br /&gt;
&lt;br /&gt;
* '''2022-09-07 release, BPI-M2 PRO/M5-Tablet-Android9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1vrmPlyPttoKU-FkPZZE-Jg?pwd=ds7a (pincode: ds7a)&lt;br /&gt;
:Google Drive:https://drive.google.com/file/d/1m-b5wYWazMM_QgnQ5iQZiPRRD6AmF-Ao/view?usp=sharing&lt;br /&gt;
:MD5: 84d60f44761a4d4958a50e47eee7a62a&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
:[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux How to flash Linux Image]&lt;br /&gt;
&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* '''2023-03-01-ubuntu-20.04-mate-desktop-bpi-m5-m2pro-aarch64-sd-emmc.img'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1aFY5XEN-dsEESX39-Bxa5g?pwd=8888  (pincode: 8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/1yJSBk6AOJaRoF01-pqoVhB3eqqxqKEIL?usp=share_link&lt;br /&gt;
&lt;br /&gt;
*'''2023-03-01-ubuntu-20.04-server-bpi-m5-m2pro-aarch64-sd-emmc.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1eiPnqFUdbxa7_kfHrJP4gw?pwd=888  (pincode:8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/1gEbIXcaUzGQa0MPB1NwfnWlYJnFW-NbP?usp=share_link&lt;br /&gt;
&lt;br /&gt;
* '''2022-09-06 release Ubuntu Mate Desktop 20.04 with Kernel 4.9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1XE2K_KlVwP0hvjv_AChVgg?pwd=38vx (pincode: 38vx) &lt;br /&gt;
:Google drive: https://drive.google.com/file/d/1OGNaEylMR-VlfY6ynRkGQNuljLcvxoqe/view?usp=sharing&lt;br /&gt;
:MD5: 4b0528065ddcf634e9a43b6b7a6363b1&lt;br /&gt;
&lt;br /&gt;
*'''2022-09-06 release, Ubuntu server 20.04 with Kernel 4.9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/15g52JerxZejcwywH7zZOlg?pwd=jtv5 (pincode: jtv5)&lt;br /&gt;
:Google drive:https://drive.google.com/file/d/15Y80CDT07HfEgo2YVjTkLSeIUGk8GQUo/view?usp=sharing&lt;br /&gt;
:MD5: f377dc5246f9ed7133db95c9d34b5201&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
*'''2023-03-01-debian-10-buster-bpi-m5-m2pro-aarch64-sd-emmc.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1pEdZUVE70IzZJamdam_W3g?pwd=8888  (pincode:8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/159Xyb7gWFlTnDAnnBL-jGn_p8s6ECFw2?usp=share_link&lt;br /&gt;
&lt;br /&gt;
*'''2023-03-01-debian-10-buster-xfce-bpi-m5-m2pro-aarch64-sd-emmc.img'''&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1Ys6c64JRnO1CLpgNhHE-tg?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/1JNbMay5W257bPBX7PBjzab6ISAmBe5XD?usp=share_link&lt;br /&gt;
&lt;br /&gt;
*'''2022-09-06 release, Debian-10-buster with Kernel 4.9'''&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1BEdv5AWEYgkMcUX_ju4DPQ?pwd=2cw4 (pincode: 2cw4)&lt;br /&gt;
:Google Drive:https://drive.google.com/file/d/1IZ7IEFeb21ZnaAuknz9lr00jo95UX6ml/view?usp=sharing&lt;br /&gt;
:MD5: f6cbe3518e8a02267224a0aa0256ce11&lt;br /&gt;
&lt;br /&gt;
==Third part image==&lt;br /&gt;
&lt;br /&gt;
===Raspbian===&lt;br /&gt;
*'''BPI-M5 BPI-M2 Pro new image:Raspbian image, 2022-4-09 update, Raspbian image for linux kernel 4.9 and 5.17. support 32bit and 64 bit,please choose the right image'''&lt;br /&gt;
:Google driver: https://drive.google.com/drive/folders/1oqamIMl5Kmb3LVYMPFw-1tilvwKQI6n-&lt;br /&gt;
:discuss on forum : https://forum.banana-pi.org/t/bpi-m5-bpi-m2-pro-new-image-rasbian-image-2022-4-09-update/13246&lt;br /&gt;
&lt;br /&gt;
===Armbian===&lt;br /&gt;
:'''Image From Armbian Official website:'''&lt;br /&gt;
::https://www.armbian.com/bananapi-m5/&lt;br /&gt;
&lt;br /&gt;
:'''Image From Bananapi Released on 2023-03''', build from Armbian main branch source code, fix some bugs and support i2c, uart, spi and rtl8822cs overlays, you can enable the overlay in /boot/armbianEnv.txt&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1Wgg_0Z7Db6DSKqoIjf16PQ?pwd=8888  (pincode: 8888)&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1Yds8Rru_26S0wN2B-pIM6XkyxUXiceNl?usp=share_link&lt;br /&gt;
&lt;br /&gt;
===EmuELEC===&lt;br /&gt;
*This is a porting of EmuELEC v4.5 for BPI-M5. I ported from odroid c4 official EmuELEC image. PS3 a XBOX ONE S gamepad controllers were tested and work fine.&lt;br /&gt;
*https://forum.banana-pi.org/t/emuelec-for-bpi-m5/12095&lt;br /&gt;
===CoreELEC===&lt;br /&gt;
:[https://coreelec.org/ CoreELEC] official support Bananapi M5 and M2Pro since 19.2-Matrix_rc1&lt;br /&gt;
::Download: https://coreelec.org/#download&lt;br /&gt;
::Install Guide: https://coreelec.org/#install&lt;br /&gt;
::Source Code: https://github.com/CoreELEC/CoreELEC&lt;br /&gt;
::how to install: https://wiki.coreelec.org/coreelec:bpim2pro&lt;br /&gt;
&lt;br /&gt;
===Volumio===&lt;br /&gt;
:Download:&lt;br /&gt;
::Google drive: https://drive.google.com/drive/folders/1B7nsy4Jxt2lBgXoA6XEnaamEQvZyHI8f&lt;br /&gt;
::Baidu cloud : https://pan.baidu.com/s/1mj9OC8P2VSI5GAMnIKGBqA PinCode: mrrb &lt;br /&gt;
:User Guide: https://cdn.volumio.org/wp-content/uploads/2019/01/Quick-Start-Guide-Volumio.pdf&lt;br /&gt;
:Source code: https://github.com/Dangku/volumio-build&lt;br /&gt;
:Platform prebuild package: https://github.com/Dangku/volumio-platform-bananapi&lt;br /&gt;
:Development guilde: https://volumio.github.io/docs/User_Manual/Quick_Start_Guide.html&lt;br /&gt;
&lt;br /&gt;
===Odroid Android image===&lt;br /&gt;
*Base on Odroid android source code and build for bananapi m5/m2pro&lt;br /&gt;
:Download: &lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1u_CddlHvpAMu2VZJfIfUKTsFFyigCWig&lt;br /&gt;
:Install Guide: https://forum.odroid.com/viewtopic.php?f=204&amp;amp;t=38579&lt;br /&gt;
&lt;br /&gt;
*Odroid ubuntu IMG for BPI-M5：&lt;br /&gt;
::https://forum.banana-pi.org/t/odroid-ubuntu-img-for-bpi-m5/12169&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Core 20===&lt;br /&gt;
:Ubuntu Core 20 demo image for bananapi m5/m2pro.&lt;br /&gt;
:Download:&lt;br /&gt;
::Google drive: https://drive.google.com/drive/folders/1TdAQ-HdggKrOPmWi0chpHDJY0SMWlUaC&lt;br /&gt;
::Baidu cloud :&lt;br /&gt;
:Install Guide: https://ubuntu.com/core/docs/uc20/install&lt;br /&gt;
&lt;br /&gt;
===Archlinux===&lt;br /&gt;
*Archlinux xfce and minimal demo image, kernel 4.9, image build refer to [https://archdroid.org/ Archdroid]&lt;br /&gt;
:login: alarm/alarm, or root/root&lt;br /&gt;
:Download:&lt;br /&gt;
::Google drive:https://drive.google.com/drive/folders/1rSSNgbseY2mwTMIauGR1yrXN8RPKzuk6&lt;br /&gt;
::Baidu link :  https://pan.baidu.com/s/1Ck_H51jPUyAv98o73I8oAw Pincode: rbv2&lt;br /&gt;
::discuss on forum : https://forum.banana-pi.org/t/bpi-m5-bpi-m2-pro-new-image-archlinux-2021-9-14/12595&lt;br /&gt;
&lt;br /&gt;
===HuaWei OpenEuler===&lt;br /&gt;
*OpenEuler demo image, bpi kernel 4.9&lt;br /&gt;
:Download:&lt;br /&gt;
::Baidu link ：https://pan.baidu.com/s/12b7q3y-m3YRyD7GwhKE0QA Pincode：lv50 &lt;br /&gt;
:SIG gitee link :  https://gitee.com/openeuler/raspberrypi&lt;br /&gt;
:Discuss on fourm : http://forum.banana-pi.org/&lt;br /&gt;
&lt;br /&gt;
===Manjaro for BPI-M5===&lt;br /&gt;
&lt;br /&gt;
Manjaro porting for BPI-M5 from Official Image for Odroid C4, the ported image use kernel 5.10. If anyone is interested on give it a try, the download link is below.&lt;br /&gt;
*Download Link: https://mega.nz/folder/BuZWkLhC#phC9KSsassB4bmkAegYykA&lt;br /&gt;
*discuss on forum : https://forum.banana-pi.org/t/manjaro-for-bpi-m5/12726&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
&lt;br /&gt;
*[https://pt.aliexpress.com/item/1005001871842695.html?spm=a2g0o.productlist.0.0.59976fff0GL35q&amp;amp;algo_pvid=24dfc96b-f6c1-4850-9ff4-fd177ee36648&amp;amp;algo_expid=24dfc96b-f6c1-4850-9ff4-fd177ee36648-0&amp;amp;btsid=0bb47a2216147586025791703e886c&amp;amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_ buy it form aliexpress ]&lt;br /&gt;
&lt;br /&gt;
*easy to buy RTL8822 wifi module sample : https://www.aliexpress.com/item/1005002550783568.html?spm=5261.ProductManageOnline.0.0.34ed4edfgdV59j&lt;br /&gt;
&lt;br /&gt;
* Mass order,please contact : judyhuang@banana-pi.com&lt;br /&gt;
&lt;br /&gt;
=Content=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M64&amp;diff=14218</id>
		<title>Banana Pi BPI-M64</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M64&amp;diff=14218"/>
				<updated>2023-03-22T08:42:06Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M64]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M64_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M64_2.jpg|thumb|Overview:Allwinner A64]]&lt;br /&gt;
[[File:BPI-M3_M2_ultra_Case.jpg|thumb|Premium Aluminum Enclosure]]&lt;br /&gt;
[[File:Bpi-m2_ultar_case_1.jpg|thumb|BPI-M64 acrylic case]]&lt;br /&gt;
[[File:BPI_iot_design.JPG|thumb|BPI-M64 for BPI 4.0 [[Successful case]] : A64 for smart home design]]&lt;br /&gt;
[[File:A64_for_IoT_gateway.JPG|thumb|BPI-M64 for BPI 4.0 [[Successful case]] :A64 for IoT gateway design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 is a 64-bit quad-core mini single board computer. It features 2GB of RAM and 8GB eMMC. It also has onboard WiFi and BT. On the ports side, the BPI-M64 has 2 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, and lastly a DC power port. The processor is pin-to-pin comptialbe with R18, so it comes with two versions:M64 and M64-R18. &lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M64_960x360.jpg]]&lt;br /&gt;
&lt;br /&gt;
Also being a member of the Banana Pi family, the M64 is a big jump from the octa-core BPI-M3. This is because this Banana Pi BPI is named after its 64-bit SoC. BPI-M64 will be reserved for an upcoming board&lt;br /&gt;
&lt;br /&gt;
BPI-M64 is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
* Allwinner A64 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor.&lt;br /&gt;
* 2 GB DDR3 SDRAM&lt;br /&gt;
* 8G EMMC&lt;br /&gt;
* 10/100/1000Mbps Ethernet&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth&lt;br /&gt;
* MIPI LCD interface&lt;br /&gt;
* Camera interface&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*How to burn image : [[Quick Start Banana pi SBC]]&lt;br /&gt;
*how to development: [[Getting Started with M64]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M64_interface.jpg]]&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;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CPU|| Allwinner 64 Bit Quad Core ARM Cortex A53 1.2&amp;amp;nbsp;GHz CPU&lt;br /&gt;
|-&lt;br /&gt;
| GPU|| Dual core Mali 400 MP2 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 2GB LPDDR3 (shared with GPU)&lt;br /&gt;
|-&lt;br /&gt;
| Storage|| MicroSD slot with support for up to 256GB expansion and 8G eMMC flash with support for up to 64GB&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Mbit/s Ethernet + Wi-Fi 802.11 b/g/n  + Bluetooth 4.0&lt;br /&gt;
|-&lt;br /&gt;
|Video Input(s)|| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
|Video Output(s)|| 1080p capable HDMI port and multi-channel audio output (NO H./X.265 capabilities)&lt;br /&gt;
|-&lt;br /&gt;
| Audio Input(s)|| On board microphone&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output(s)|| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| USB ports|| USB 2.0 PORT (x2), USB OTG (x1)&lt;br /&gt;
|-&lt;br /&gt;
| Remote|| IR Receiver&lt;br /&gt;
|-&lt;br /&gt;
|GPIO|| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). GPIO pins can be used for UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
|Switches|| Reset, Power and U-boot &lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Status and 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volt @2A via DC Power and/or Micro USB (OTG)&lt;br /&gt;
|-&lt;br /&gt;
|Size &amp;amp; Weight|| 92x60mm, 48g&lt;br /&gt;
|-&lt;br /&gt;
|OS|| Android and Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 has a 40-pin GPIO header . Following is the Banana Pi GPIO Pinout:&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name||Default Function||Function2：GPIO||Function3&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P01||	VCC-3V3	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P02||	VCC-5V||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P03||	TWI1-SDA||	PH3||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P04||	VCC-5V||	||　	|　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P05||	TWI1-SCK||	PH2||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P06||	GND||	　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P07||	PH6||	PH6||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P08||	UART2-TX||	PB0||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P09||	GND||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P10||	UART2-RX||	PB1||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P11||	PH7||	PH7||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P12||	UART2-CTS||	PB3	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P13||	DMIC-CLK||	PH10||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P14||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P15||	DMIC-DIN||	PH11||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P16||	UART2-RTS||	PB2||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P17||	VCC-3V3||  ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P18||	PD4||	PD4	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P19||	SPI1-MOSI||	PD2||	UART4-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P20||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P21||	SPI1-MISO||	PD3||	UART4-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P22||	PC0||	PC0||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P23||	SPI1-CLK||	PD1||	UART3-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P24||	SPI1-CS	||PD0||	UART3-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P25||	GND||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P26||	PC2||	PC2	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P27||	PC4||	PC4	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P28||	PC3||	PC3	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P29||	PC7||	PC7	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P30||	GND	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P31||	PCM0-BCLK||	PB5	||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P32||	PCM0-DIN||	PB7	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P33||	PCM0-SYNC||	PB4	||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P34||	GND	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P35||	PCM0-DOUT|| 	PB6	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P36||	PL9||	PL9	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P37||	PL12||	PL12||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P38||	PL7||	PL7	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P39||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P40||	PL8||	PL8||　&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings.  The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “Camera”.&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;4&amp;quot;| '''CSI camer PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P01||	NC||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P02||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P03||	CSI0-SDA||	PE13&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P04||	CSI0-AVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P05||	CSI0-SCK||	PE12&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P06||	CSI0-Reset||	PE16&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P07||	CSI0-VSYNC||	PE3|&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P08||	CSI0-PWDN||	PE17&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P09||	CSI0-HSYNC||	PE2&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P10||	CSI0-DVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P11||	CSI0-DOVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P12||	CSI0-D7||	PE11&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P13||	CSI0-MCLK||	PE1&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P14||	CSI0-D6||	PE10&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P15||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P16||	CSI0-D5||	PE9&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P17||	CSI0-PCLK||	PE0&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P18||	CSI0-D4||	PE8&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P19||	CSI0-D0||	PE4&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P20||	CSI0-D3||	PE7&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P21||	CSI0-D1||	PE5&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P22||	CSI0-D2||	PE6&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P23||	GND	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P24||	CSI0-AFVCC||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''MIPI DSI (Display Serial Interface)'''&lt;br /&gt;
&lt;br /&gt;
The display Connector is a 40-pin FPC connector which can connect external LCD panel (MIPI DSI) and touch screen (I2C) module as well.  The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “DSI”.&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;4&amp;quot;| '''MIPI DSI display PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|DSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P01||	VCC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P02||	IPSOUT||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P03||	VCC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P04||	IPSOUT||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P05||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P06||	IPSOUT	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P07||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P08||	IPSOUT	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P09||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P10||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P11||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P12||	DSI-D0N	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P13||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P14||	DSI-D0P	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P15||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P16||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P17||	TWI0-SDA||	PH1&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P18||	DSI-D1N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P19||	TWI0-SCK||	PH0&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P20||	DSI-D1P	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P21||	CTP-INT||	PH4&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P22||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P23||	CTP-RST||	PH8&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P24||	DSI-CKN	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P25||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P26||	DSI-CKP	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P27||	LCD-BL-EN||	PD5&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P28||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P29||	LCD-RST	||PD6&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P30||	DSI-D2N	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P31||	LCD-PWR-EN	||PD7&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P32||	DSI-D2P	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P33||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P34||	GND	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P35||	LCD-PWM||	PL10&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P36||	DSI-D3N	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P37||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P38||	DSI-D3P	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P39||	NC	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P40||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The header CON2 is the UART interface.  For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Uart PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CON2 Pin Name||	Default Function||	GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P03||UART0-TXD||	PB8&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P02||	UART0-RXD||	PB9&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P01||	GND	||　&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
===Win 10 IoT ===&lt;br /&gt;
banana pi BPI-M64 IOT certifying pass by Microsoft:windows 10 iot core&lt;br /&gt;
&lt;br /&gt;
BPI-M64 for Win10 IoT : https://catalog.azureiotsolutions.com/details?title=Allwinner_Banana_Pi_BPI_M64&amp;amp;source=all-devices-page&lt;br /&gt;
&lt;br /&gt;
[[File:Win10_1.png]]&lt;br /&gt;
&lt;br /&gt;
link: https://azure.microsoft.com/en-us/documentation/articles/iot-hub-tested-configurations/&lt;br /&gt;
&lt;br /&gt;
get start:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Azure/azure-iot-sdks/blob/master/doc/get_started/windows10-iot-core-banana-pi-bpi-m64-csharp.md&lt;br /&gt;
&lt;br /&gt;
test on BPI-M64&lt;br /&gt;
&lt;br /&gt;
[[File:Win10_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
discuss on forum: http://forum.banana-pi.org/t/banana-pi-bpi-m64-iot-certifying-pass-by-microsoft-windows-10-iot-core/2090&lt;br /&gt;
&lt;br /&gt;
'''Windows 10 IoT Core for BPI-M64 Release Note'''&lt;br /&gt;
&lt;br /&gt;
The Unified Extensible Firmware Interface (UEFI]) is a specification that defines a software interface between an operating system and platform firmware. UEFI replaces the Basic Input/Output System (BIOS) firmware interface originally present in all IBM PC-compatible personal computers&lt;br /&gt;
AllWinner UEFI Firmware Release Notes&lt;br /&gt;
&lt;br /&gt;
This document describes how to build AllWinner UEFI Firmware and bring a AllWinner dev board up with it. The AllWinner UEFI Firmware, as the major boot system for AllWinner-Windows platform, is based on the EDK2 framework which is open-source and with some AllWinner platform software packages injected.&lt;br /&gt;
&lt;br /&gt;
Some updates:&lt;br /&gt;
::1. Update the OS version to build v.10.0.15063.0 \(Creators Update\)&lt;br /&gt;
::2. New page style of Device Portal, visit [https://deviceipaddr:8080](https://deviceipaddr:8080) to check it&lt;br /&gt;
::3. Built-in Cortana assistant, need to be enabled in settings page in default app and Device Portal&lt;br /&gt;
::4. Support on-screen keyboard, need to be enabled in Device Portal&lt;br /&gt;
::5. Enable 100M Ethernet and fix some bugs&lt;br /&gt;
::6. Support built-in UART bus in A64 SoC\(not built in the ffu, later provide driver binary and deployment helper\)&lt;br /&gt;
::7. Support built-in IR module in A64 SoC\(not built in the ffu, later provide source code and dev doc for developers in community\)&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
::Kernel debug is enabled by default. This will slow the bring-up process. If a kernel debug is not necessary for you, visit Device Portal and navigate to Processes-&amp;amp;gt;Run Command page, run this command to disable : Bcdedit /store C:\EFIESP\EFI\Microsoft\boot\BCD /set {default} debug off&lt;br /&gt;
::An PnP bug in audio device may cause a blue screen when acting software shutdown&lt;br /&gt;
::Ethernet device may not start with problem code 12 at the first time to bring up&lt;br /&gt;
&lt;br /&gt;
And another bomb! I uploaded core driver binaries and packaging toolchains on GitHub!&lt;br /&gt;
&lt;br /&gt;
Here is the repo address: https://github.com/Leeway213/BSP-aw1689&lt;br /&gt;
&lt;br /&gt;
And also some driver source code here with A64 datasheet in readme: https://github.com/Leeway213/driver-samples&lt;br /&gt;
&lt;br /&gt;
Welcome makers developers and anyone-elsers to post your feedback.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Azure IoT===&lt;br /&gt;
* we have test BPI-M64 with Microsoft Azure IoT with aarch64 Ubuntu 18.04 Linux &lt;br /&gt;
::Microsoft Azure IoT Edge using DPS with TPM 2.0 SLB9670 : https://www.youtube.com/watch?v=k9_GSQgKlqk&amp;amp;feature=youtu.be&lt;br /&gt;
::Microsoft Azure IoT Edge using DPS with TPM 2.0 ST33 i2c : https://www.youtube.com/watch?v=2MrO1-esjwI&amp;amp;feature=youtu.be&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
*BPI-M64 Android 7 source code&lt;br /&gt;
:: download link : https://github.com/BPI-SINOVOIP/BPI-A64-Android7&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Android 6.0.1 source code&lt;br /&gt;
:: download link : https://drive.google.com/open?id=0B_YnvHgh2rwjdTRVRVFaSHd2cnc&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 (allwnner A64) Linux 4.4 source code&lt;br /&gt;
::https://github.com/BPI-SINOVOIP/BPI-M64-bsp-4.4&lt;br /&gt;
::Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-allwnner-a64-linux-4-4-source-code-public-on-github/6706&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Linux kernel 3.4 BSP code:&lt;br /&gt;
:: github link : https://github.com/BPI-SINOVOIP/BPI-M64-bsp&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Win10 IoT source code&lt;br /&gt;
::https://bananapi.gitbooks.io/bpi-m64/content/en/sourcecodeongithub.html&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Robot Operating System (ROS):&lt;br /&gt;
::github: https://github.com/techping/BPI-robot-1&lt;br /&gt;
::discuss on forum: http://forum.banana-pi.org/t/discuss-robot-operating-system-ros-on-banana-pi/10967&lt;br /&gt;
&lt;br /&gt;
== documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
* schematic diagram: &lt;br /&gt;
::google driver :[https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing  google driver]&lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1kVRpcYb&lt;br /&gt;
* DXF file google download link :https://drive.google.com/file/d/0B4PAo2nW2KfnajlEY0xsdjNxY3c/view?usp=sharing&lt;br /&gt;
*Allwinner A64 chip datasheet:https://drive.google.com/file/d/0B4PAo2nW2KfnSW9lQnZ0d1RoVW8/view?usp=sharing&lt;br /&gt;
*Allwinner A64 user’s manual (720 pages):https://drive.google.com/file/d/0B4PAo2nW2KfnNHk4dkFJZEdqYXc/view?usp=sharing&lt;br /&gt;
*AXP803 Datasheet V1.0.pdf :https://drive.google.com/file/d/1nRbP1T02KlNZBbTJx4BHW5wVWvQPmDxC/view?usp=sharing&lt;br /&gt;
*A64 chip linux-sunxi wiki:http://linux-sunxi.org/A64&lt;br /&gt;
*BPI-M64 linux-sunxi wiki: https://linux-sunxi.org/Banana_Pi_M64&lt;br /&gt;
*other document about allwinner A64 chip:http://bundie.neterra.net:8080/a64/&lt;br /&gt;
*battery interface spec ： https://drive.google.com/file/d/0B4PAo2nW2KfnSmVuVDhQc0NLdG8/view?usp=sharing&lt;br /&gt;
*BPI-M64 quality guarantee&lt;br /&gt;
::BPI-M64 BT Lab test :https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m64bt40labtest.html&lt;br /&gt;
::BPI-M64 WIFI Lab test :https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m264wifilabtest.html&lt;br /&gt;
::BPI-M64 Validation test : https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m64validationtestreport.html&lt;br /&gt;
::CE FCC RoHS : http://forum.banana-pi.org/t/bpi-m64-ce-fcc-rohs-certification/2747&lt;br /&gt;
&lt;br /&gt;
== Amazon AWS Greengrass==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 passed Amazon AWS Greengrass:https://devices.amazonaws.com/detail/a3G0h000000OvPoEAK/Banana-Pi-BPI-M64&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android ==&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_M64#Install_Android_Image How to install the Android image]&lt;br /&gt;
&lt;br /&gt;
*2020-07-10 update, Android 7.1, base on kernel 3.10&lt;br /&gt;
::[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M64%2FAndroid7.1&amp;amp;mode=list Download Android 7.1 image]&lt;br /&gt;
&lt;br /&gt;
*2018-10-24 update Android 6.0 &amp;amp; 7.0 &amp;amp; 8.1, based on kernel 3.10.&lt;br /&gt;
&lt;br /&gt;
:M64 Android 6.0 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Android_6.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1Em7ZXVvbJI7wMXy_TM4VNwHo6Oa-vVBc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1ZginIvO3LVakqokIZAX1Xw&lt;br /&gt;
&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
:::: Google Drive :   https://drive.google.com/open?id=1Tts1krZyzwz9mL90j1ilTzVrJm6hh_J4 &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1oKMx_Ml5K1Jv7-qeS-NMsQ&lt;br /&gt;
&lt;br /&gt;
:M64 Android 7.0 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_7.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive :    https://drive.google.com/open?id=1mvKyK6KuPixs-jLD0FocIaV465bJ1Eig &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/15b32TXdh6752c-GBnR-Zeg&lt;br /&gt;
&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=16Ffc5xiZgD7JYgrMtCGaOYLCuZdQGcnY&lt;br /&gt;
::::Baidu Drive :  https://pan.baidu.com/s/1a9RYKSTRhCO-UzFfIoGCtQ &lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Android 8.1 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_8.1&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive :   https://drive.google.com/open?id=1UBaH9CNbmC9-n3jGImrFIAPZ8aZhqMJz &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1lz57HrqNHx6f_Q6nk0oZvA&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive :   https://drive.google.com/open?id=1wktuCcvolfozMFkLmugfZtGziHDj-1EM &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1MteYqyBp8LeECjcDteCTZQ&lt;br /&gt;
*Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-android-6-0-7-0-8-1-release-2018-10-24/7107&lt;br /&gt;
&lt;br /&gt;
*2018-9-17 update android 6.0&lt;br /&gt;
::Features Map :http://wiki.banana-pi.org/M64_Image_Map#Android_6.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=19ExJ9Ztfy3UgK9NZ4SiaVZAMozgyCJl7&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1s_orgiEI7JU_hUgjnpd25w&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1gWD_IT0P4NvdeqtK5I4MnJjwzsP7SXJc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1K0HYPiQe6nGvAS5bAAFHow&lt;br /&gt;
::Forum pthread :　http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-release-2018-09-18/6796&lt;br /&gt;
*2018-08-17 update,android 8.1&lt;br /&gt;
::This release is for banana pi M64 board which is based on Allwinner A64, We have two images release，Android 8.1 is based on kernel 4.9&lt;br /&gt;
::BPI-M64 Android 8.1 Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_8.1&lt;br /&gt;
::HDMI-LCD-Version:&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=11XjvTAbPw57R6H5kL27GVXry4xu18dVs&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1PQgJCUo6cY3wWxJ7rZrk-A&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-a64-new-image-android-8-1-ubuntu-release-2018-08-17/6531&lt;br /&gt;
&lt;br /&gt;
* 2018-05-20 update ,android 7.0&lt;br /&gt;
::hdmi-Version and Lcd 5.0 version&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1O3PsI73WmFFvhxMmzEscIQ&lt;br /&gt;
&lt;br /&gt;
* 2017-05-11 update ,android 6.0&lt;br /&gt;
::HDMI-Version&lt;br /&gt;
::Google Drive:https://drive.google.com/open?id=0B_YnvHgh2rwjcF9USm1MWWtxSXc&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1bHWhlW&lt;br /&gt;
::MD5: f85281213b9c5b88008a487dd1b6963c&lt;br /&gt;
::LCD-Version&lt;br /&gt;
::Google Drive:https://drive.google.com/open?id=0B_YnvHgh2rwjdHpFbHJMQWtsbFk&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1kVJVPGV&lt;br /&gt;
::MD5:be27e4eced96d3de81d46e512fd978eb &lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-android-6-0-version-v3/3240/4&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_M64#Install_Linux_Image How to install BPI Linux Image]&lt;br /&gt;
&lt;br /&gt;
* 2020-08-26 update,  Ubuntu Mate 18.04, Ubuntu Server 16.04, Raspbian Stretch, base on kernel 4.4&lt;br /&gt;
::[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M64%2Flinux&amp;amp;mode=list Download Image]&lt;br /&gt;
&lt;br /&gt;
* 2020-04-21 update, Rasbian Stretch, Ubuntu 16.06 Mate Desktop, Ubuntu 16.06 Server and Ubuntu 18.04 Mate Desktop, base on kernel 4.4&lt;br /&gt;
::google drive:https://drive.google.com/drive/folders/0B_YnvHgh2rwja3I4SllZN2VkYm8&lt;br /&gt;
::baidu cloud:https://pan.baidu.com/s/18XH8_uusUGBusbp4xw4txQ  Pincode：36R0&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* 2018-11-02 update, based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 Desktp&lt;br /&gt;
::::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_16.04&lt;br /&gt;
::::Google Drive : https://drive.google.com/file/d/1YzdkY8i-IsXzXLkbPCPNbAuhYbHmUwgv/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1XhOJBQtPkhvidjgipFNdzg&lt;br /&gt;
::::md5sum : 3564f0d3de9936aa26b93eaf027703a0&lt;br /&gt;
&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 AARCH64 Kernel 3.10&lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_aarch64_16.04&lt;br /&gt;
::::Google Drive : Chttps://drive.google.com/file/d/1MglySZLvquRPu1Wj8oLwdKBkFnRzLUL-/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1_ZTDCuL9QZf6qrqaE4gbgQ&lt;br /&gt;
::::md5sum : 7422e02daa01bff6de808490e89b436e&lt;br /&gt;
&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 AARCH64 Kernel 4.4 &lt;br /&gt;
::::features Map:http://wiki.banana-pi.org/M64_Image_Map#Kernel_4.4.89&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1g_m1NLn1-wUQ8jjPKEAwQcSj4d4P9vRP/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1JmKQGRKvJ9DwL_ij0K79FA&lt;br /&gt;
::::md5sum : ea9bba6ab7fc78f7b8478bfd013a9b50&lt;br /&gt;
&lt;br /&gt;
:: forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-ubuntu16-04-desktop-aarch64-release-2018-11-1/7159/1&lt;br /&gt;
&lt;br /&gt;
::Debian 9.5 AARCH64 Kernel 3.10&lt;br /&gt;
&lt;br /&gt;
::::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Image Links: Google Drive : Coming soon&lt;br /&gt;
::::Baidu Drive: https://pan.baidu.com/s/1DJd7CGAT0NiijKfOBq9J4Q&lt;br /&gt;
::::md5sum: 71fe25c1922c7f9ef81bb88e0f544de6&lt;br /&gt;
&lt;br /&gt;
*2018-4-17 update Ubuntu 16.04.4 with linux kernel 4.4.89 &lt;br /&gt;
::image name:2018-04-17-ubuntu-16.04-mate-desktop-demo3-k4.4.89-vdpau-3-mic-docker-bpi-r18-avs-aarch64-sd-emmc.img.zip&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1dlfo9LGNcrc-_cpKd1uJnrNx0PdonBnK&lt;br /&gt;
::MD5: 4b7e163d260e58a39ba8905e7ed39943&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-r18-avs-new-image-ubuntu-16-04-4-with-linux-kernel-4-4-89-2018-4-17/5435&lt;br /&gt;
&lt;br /&gt;
*2018-09-18 This release is for banana pi M64 board which is based on Allwinner A64, We release three Images, Ubuntu 16.04 Desktop &amp;amp; Android is based on kernel 3.10.&lt;br /&gt;
::Features Map ：http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_16.04&lt;br /&gt;
::Google Drive : &lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1wANJ4SwfNwKtBcd02WcbWA&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-release-2018-09-18/6796&lt;br /&gt;
&lt;br /&gt;
*2018-08-17 update Ubuntu 16.04 Server kernel 3.10.105&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1K-B4u8jGcv17s3I9v-Pr0xv5u5txvfok&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1HcrR8NsL9_1RwbZNa7uwmg&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-a64-new-image-android-8-1-ubuntu-release-2018-08-17/6531&lt;br /&gt;
&lt;br /&gt;
*2017-08-14 update based on ubuntu 16.04.3 LTS Mate Desktop (64-bit),support BPI-M64 kernel 3.10.105&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/0B_YnvHgh2rwjN1h1U0xDYUxET00/view?usp=sharing &lt;br /&gt;
::baidu cloud: http://pan.baidu.com/s/1pLkbdTT&lt;br /&gt;
::MD5: ae34baa840874276858d936a7ca85c4f&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-2017-08-14-ubuntu-16-04-mate-desktop-beta-aarch64-bpi-m64-sd-emmc/3695&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim64_bullseye_edge_5.19.7_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1UUbn24l3q_OsVP4XWT6eVQN531tHPzX0/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1vFR9sUR0FhWgS1pemk9lTg?pwd=ina6 (pincode: ina6)&lt;br /&gt;
&lt;br /&gt;
*2018-11-2 update , This release is for banana pi M64 board which is based on Allwinner A64, We release two Images, Debian 9.5 AARCH64 is based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
&lt;br /&gt;
::M64 Debian 9.5 AARCH64 Kernel 3.10&lt;br /&gt;
::::Features Map : * http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Google driver : https://drive.google.com/file/d/10qGv2gVrSgwXMBLDsCF0nQFc9EJnnkeS/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1DJd7CGAT0NiijKfOBq9J4Q&lt;br /&gt;
::::md5sum : 71fe25c1922c7f9ef81bb88e0f544de6&lt;br /&gt;
&lt;br /&gt;
::M64 Debian 9.5 AARCH64 Kernel 4.4 &lt;br /&gt;
::::Features Map:  *  http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/17fh3YY6cwOzHMsqwnRQRTu9cXjKU4_tV/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1sOR6WFz2U9MT0ltq6zYnJA&lt;br /&gt;
::::md5sum : f3c2391b0232178018fda7ebfd64b14c&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-debian-9-5-aarch64-release-2018-11-02/7166&lt;br /&gt;
&lt;br /&gt;
*2017-08-13 debian 8.9 jessie Mate Desktop (64-bit),support BPI-M64 kernel 3.10.105&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjazlNRTRHei1NbmM/view?usp=sharing&lt;br /&gt;
::baidu cloud:http://pan.baidu.com/s/1eSeTQeA&lt;br /&gt;
::MD5: 9ddf067457ebaf193de63c5c7141446a&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-2017-08-13-debian-8-jessie-mate-desktop-preview-aarch64-bpi-m64-sd-emmc/3694&lt;br /&gt;
&lt;br /&gt;
===Armbian===&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim64_jammy_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim64_jammy_edge_6.1.11_xfce_desktop.img.xz&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m64-new-armbian-image/15161&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim64_jammy_edge_5.19.7_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1_BaSpSdIaxJYy-QjaXLsOrJ25Ja7vA78/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1uOex7pm2tPhfJ47hoXIuGA?pwd=7hms (pincode: 7hms)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[https://www.armbian.com/bananapi-m64/ Armbian Image] is base on Linux Mainline kernel&lt;br /&gt;
&lt;br /&gt;
=== Raspbian===&lt;br /&gt;
&lt;br /&gt;
*2018-11-06 update : This release is for banana pi M64 board which is based on Allwinner A64, We release two Images, Raspbian 9.4 is based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
::BPI-M64 Raspbian 9.4 Kernel 3.10&lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Raspbian_9.4_AARCH64&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1qoKCVDgiuEj0IVEzuPgzuFLjFR9hTLH8/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1MlIzQRpjs_soBDXOKf8NAw&lt;br /&gt;
::::md5sum : e321c6dbb096a0348fceb9d4a0b6c210&lt;br /&gt;
::BPI-M64 Raspbian 9.4 Kernel 4.4 &lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Kernel_4.4.89_4&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1WnsHKnbI_FWQVkHQmbCcJ3yJ38oWaHGy/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1Bu-xiqiYsnau_xZp8-QEkw&lt;br /&gt;
::::md5sum : 1d4f00680e6869e2c4e66e205e61d93d&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-raspbian-9-4-kernel-3-10-4-4-release-2018-11-06/7195&lt;br /&gt;
&lt;br /&gt;
===Fedora Linux===&lt;br /&gt;
*BPI-M64 fedora image download(not support desktop): fedora 31 with grub (u-boot-2019.07 + kernel 5.3.0) &lt;br /&gt;
::https://drive.google.com/file/d/1dIr943Ke28lEtCDpy8cI3q1dBUtHymJP/view?usp=drivesdk&lt;br /&gt;
::https://drive.google.com/file/d/1F3nYOw9AiLLaz8be0umz_9nlnhDP3t0s/view?usp=drivesdk&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-new-image-fedora-31-with-grub-u-boot-2019-07-kernel-5-3-0/9938&lt;br /&gt;
&lt;br /&gt;
===Manjaro===&lt;br /&gt;
*2019-01-15 update,BananaPi BPI-M64 Support Run Manjaro AArch64 System&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/18drwPBFKAzf4lFe6IPjaPA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1Lu8xw4sAVyiHJT4eYcolNTAIKG154gm6&lt;br /&gt;
::Bpi Ftp Server: https://dev.banana-pi.org.cn/Image/BPI-M64/Manjaro/&lt;br /&gt;
::md5sum : 8c9964fbd80836228c72fa205eb62f78&lt;br /&gt;
::username: manjaro/root&lt;br /&gt;
::password: bananapi&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-new-image-manjaro-aarch64-system-2019-01-16/7696&lt;br /&gt;
&lt;br /&gt;
===FreeBSD===&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
===Clonezilla===&lt;br /&gt;
&lt;br /&gt;
*Clonezilla support arm64 (Banana Pi BPI-M64),Thanks to Steven Shiau (NCHC Free Software Labs in Taiwan) &amp;amp; https://clonezilla.org/ 1, this image just for test .&lt;br /&gt;
*image download:https://drive.google.com/file/d/15oj0RjoU1TPC-jOXJ2bfhLb3vAiMf7p2/view&lt;br /&gt;
*discuss on forum: http://forum.banana-pi.org/t/bpi-m64-new-image-clonezilla-support-arm64-on-bpi-m64/10789&lt;br /&gt;
&lt;br /&gt;
===Others===&lt;br /&gt;
* others image ,you can download at forum ： http://forum.banana-pi.org/c/BPI-M64/M63image&lt;br /&gt;
&lt;br /&gt;
==Win 10 IoT==&lt;br /&gt;
&lt;br /&gt;
* 2017-1-13 updae Win10 IoT Core beta0.2&lt;br /&gt;
::baidu cloud :http://pan.baidu.com/s/1c2ce100&lt;br /&gt;
&lt;br /&gt;
*Win10 IoT Core 10586 beta0.1&lt;br /&gt;
::download link : https://drive.google.com/open?id=0B_YnvHgh2rwjODJOSS1TdkRvcEk&lt;br /&gt;
::baidu link : http://pan.baidu.com/s/1dEQyGgD&lt;br /&gt;
::MD5: 1c09118cd45bf0c3b61d1846710a3649&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 win10 IoT: https://catalog.azureiotsolutions.com/details?title=Allwinner_Banana_Pi_BPI_M64&amp;amp;source=all-devices-page&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
*1,How-to use ubuntu system to support lcd7**?&lt;br /&gt;
::1.&amp;quot;vi  /media/pi/BPI-BOOT/bananapi/bpi-m64/linux/lcd7/uEnv.txt&amp;quot;&lt;br /&gt;
::2.If you use HC070TG lcd7 screen, change &amp;quot;touch=gt9xxnew_ts&amp;quot; But if you use S070WV20 lcd7 screen, you don't need to change.&lt;br /&gt;
::3. &amp;quot;bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m64/u-boot-with-dtb-bpi-m64-lcd7-8k.img.gz&amp;quot;&lt;br /&gt;
::4.reboot&lt;br /&gt;
::[[File:BPI-M64_LCD7.png]]&lt;br /&gt;
::For more operation details please see Wiki: http://wiki.banana-pi.org/Getting_Started_with_M64&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M64&amp;diff=14217</id>
		<title>Banana Pi BPI-M64</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M64&amp;diff=14217"/>
				<updated>2023-03-22T08:41:55Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M64]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M64_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M64_2.jpg|thumb|Overview:Allwinner A64]]&lt;br /&gt;
[[File:BPI-M3_M2_ultra_Case.jpg|thumb|Premium Aluminum Enclosure]]&lt;br /&gt;
[[File:Bpi-m2_ultar_case_1.jpg|thumb|BPI-M64 acrylic case]]&lt;br /&gt;
[[File:BPI_iot_design.JPG|thumb|BPI-M64 for BPI 4.0 [[Successful case]] : A64 for smart home design]]&lt;br /&gt;
[[File:A64_for_IoT_gateway.JPG|thumb|BPI-M64 for BPI 4.0 [[Successful case]] :A64 for IoT gateway design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 is a 64-bit quad-core mini single board computer. It features 2GB of RAM and 8GB eMMC. It also has onboard WiFi and BT. On the ports side, the BPI-M64 has 2 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, and lastly a DC power port. The processor is pin-to-pin comptialbe with R18, so it comes with two versions:M64 and M64-R18. &lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M64_960x360.jpg]]&lt;br /&gt;
&lt;br /&gt;
Also being a member of the Banana Pi family, the M64 is a big jump from the octa-core BPI-M3. This is because this Banana Pi BPI is named after its 64-bit SoC. BPI-M64 will be reserved for an upcoming board&lt;br /&gt;
&lt;br /&gt;
BPI-M64 is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
* Allwinner A64 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor.&lt;br /&gt;
* 2 GB DDR3 SDRAM&lt;br /&gt;
* 8G EMMC&lt;br /&gt;
* 10/100/1000Mbps Ethernet&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth&lt;br /&gt;
* MIPI LCD interface&lt;br /&gt;
* Camera interface&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*How to burn image : [[Quick Start Banana pi SBC]]&lt;br /&gt;
*how to development: [[Getting Started with M64]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M64_interface.jpg]]&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;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CPU|| Allwinner 64 Bit Quad Core ARM Cortex A53 1.2&amp;amp;nbsp;GHz CPU&lt;br /&gt;
|-&lt;br /&gt;
| GPU|| Dual core Mali 400 MP2 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 2GB LPDDR3 (shared with GPU)&lt;br /&gt;
|-&lt;br /&gt;
| Storage|| MicroSD slot with support for up to 256GB expansion and 8G eMMC flash with support for up to 64GB&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Mbit/s Ethernet + Wi-Fi 802.11 b/g/n  + Bluetooth 4.0&lt;br /&gt;
|-&lt;br /&gt;
|Video Input(s)|| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
|Video Output(s)|| 1080p capable HDMI port and multi-channel audio output (NO H./X.265 capabilities)&lt;br /&gt;
|-&lt;br /&gt;
| Audio Input(s)|| On board microphone&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output(s)|| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| USB ports|| USB 2.0 PORT (x2), USB OTG (x1)&lt;br /&gt;
|-&lt;br /&gt;
| Remote|| IR Receiver&lt;br /&gt;
|-&lt;br /&gt;
|GPIO|| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). GPIO pins can be used for UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
|Switches|| Reset, Power and U-boot &lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Status and 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volt @2A via DC Power and/or Micro USB (OTG)&lt;br /&gt;
|-&lt;br /&gt;
|Size &amp;amp; Weight|| 92x60mm, 48g&lt;br /&gt;
|-&lt;br /&gt;
|OS|| Android and Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 has a 40-pin GPIO header . Following is the Banana Pi GPIO Pinout:&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name||Default Function||Function2：GPIO||Function3&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P01||	VCC-3V3	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P02||	VCC-5V||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P03||	TWI1-SDA||	PH3||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P04||	VCC-5V||	||　	|　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P05||	TWI1-SCK||	PH2||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P06||	GND||	　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P07||	PH6||	PH6||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P08||	UART2-TX||	PB0||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P09||	GND||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P10||	UART2-RX||	PB1||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P11||	PH7||	PH7||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P12||	UART2-CTS||	PB3	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P13||	DMIC-CLK||	PH10||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P14||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P15||	DMIC-DIN||	PH11||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P16||	UART2-RTS||	PB2||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P17||	VCC-3V3||  ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P18||	PD4||	PD4	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P19||	SPI1-MOSI||	PD2||	UART4-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P20||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P21||	SPI1-MISO||	PD3||	UART4-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P22||	PC0||	PC0||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P23||	SPI1-CLK||	PD1||	UART3-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P24||	SPI1-CS	||PD0||	UART3-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P25||	GND||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P26||	PC2||	PC2	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P27||	PC4||	PC4	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P28||	PC3||	PC3	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P29||	PC7||	PC7	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P30||	GND	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P31||	PCM0-BCLK||	PB5	||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P32||	PCM0-DIN||	PB7	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P33||	PCM0-SYNC||	PB4	||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P34||	GND	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P35||	PCM0-DOUT|| 	PB6	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P36||	PL9||	PL9	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P37||	PL12||	PL12||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P38||	PL7||	PL7	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P39||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P40||	PL8||	PL8||　&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings.  The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “Camera”.&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;4&amp;quot;| '''CSI camer PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P01||	NC||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P02||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P03||	CSI0-SDA||	PE13&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P04||	CSI0-AVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P05||	CSI0-SCK||	PE12&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P06||	CSI0-Reset||	PE16&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P07||	CSI0-VSYNC||	PE3|&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P08||	CSI0-PWDN||	PE17&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P09||	CSI0-HSYNC||	PE2&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P10||	CSI0-DVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P11||	CSI0-DOVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P12||	CSI0-D7||	PE11&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P13||	CSI0-MCLK||	PE1&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P14||	CSI0-D6||	PE10&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P15||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P16||	CSI0-D5||	PE9&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P17||	CSI0-PCLK||	PE0&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P18||	CSI0-D4||	PE8&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P19||	CSI0-D0||	PE4&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P20||	CSI0-D3||	PE7&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P21||	CSI0-D1||	PE5&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P22||	CSI0-D2||	PE6&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P23||	GND	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P24||	CSI0-AFVCC||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''MIPI DSI (Display Serial Interface)'''&lt;br /&gt;
&lt;br /&gt;
The display Connector is a 40-pin FPC connector which can connect external LCD panel (MIPI DSI) and touch screen (I2C) module as well.  The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “DSI”.&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;4&amp;quot;| '''MIPI DSI display PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|DSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P01||	VCC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P02||	IPSOUT||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P03||	VCC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P04||	IPSOUT||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P05||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P06||	IPSOUT	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P07||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P08||	IPSOUT	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P09||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P10||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P11||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P12||	DSI-D0N	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P13||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P14||	DSI-D0P	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P15||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P16||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P17||	TWI0-SDA||	PH1&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P18||	DSI-D1N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P19||	TWI0-SCK||	PH0&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P20||	DSI-D1P	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P21||	CTP-INT||	PH4&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P22||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P23||	CTP-RST||	PH8&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P24||	DSI-CKN	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P25||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P26||	DSI-CKP	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P27||	LCD-BL-EN||	PD5&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P28||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P29||	LCD-RST	||PD6&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P30||	DSI-D2N	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P31||	LCD-PWR-EN	||PD7&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P32||	DSI-D2P	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P33||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P34||	GND	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P35||	LCD-PWM||	PL10&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P36||	DSI-D3N	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P37||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P38||	DSI-D3P	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P39||	NC	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P40||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The header CON2 is the UART interface.  For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Uart PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CON2 Pin Name||	Default Function||	GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P03||UART0-TXD||	PB8&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P02||	UART0-RXD||	PB9&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P01||	GND	||　&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
===Win 10 IoT ===&lt;br /&gt;
banana pi BPI-M64 IOT certifying pass by Microsoft:windows 10 iot core&lt;br /&gt;
&lt;br /&gt;
BPI-M64 for Win10 IoT : https://catalog.azureiotsolutions.com/details?title=Allwinner_Banana_Pi_BPI_M64&amp;amp;source=all-devices-page&lt;br /&gt;
&lt;br /&gt;
[[File:Win10_1.png]]&lt;br /&gt;
&lt;br /&gt;
link: https://azure.microsoft.com/en-us/documentation/articles/iot-hub-tested-configurations/&lt;br /&gt;
&lt;br /&gt;
get start:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Azure/azure-iot-sdks/blob/master/doc/get_started/windows10-iot-core-banana-pi-bpi-m64-csharp.md&lt;br /&gt;
&lt;br /&gt;
test on BPI-M64&lt;br /&gt;
&lt;br /&gt;
[[File:Win10_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
discuss on forum: http://forum.banana-pi.org/t/banana-pi-bpi-m64-iot-certifying-pass-by-microsoft-windows-10-iot-core/2090&lt;br /&gt;
&lt;br /&gt;
'''Windows 10 IoT Core for BPI-M64 Release Note'''&lt;br /&gt;
&lt;br /&gt;
The Unified Extensible Firmware Interface (UEFI]) is a specification that defines a software interface between an operating system and platform firmware. UEFI replaces the Basic Input/Output System (BIOS) firmware interface originally present in all IBM PC-compatible personal computers&lt;br /&gt;
AllWinner UEFI Firmware Release Notes&lt;br /&gt;
&lt;br /&gt;
This document describes how to build AllWinner UEFI Firmware and bring a AllWinner dev board up with it. The AllWinner UEFI Firmware, as the major boot system for AllWinner-Windows platform, is based on the EDK2 framework which is open-source and with some AllWinner platform software packages injected.&lt;br /&gt;
&lt;br /&gt;
Some updates:&lt;br /&gt;
::1. Update the OS version to build v.10.0.15063.0 \(Creators Update\)&lt;br /&gt;
::2. New page style of Device Portal, visit [https://deviceipaddr:8080](https://deviceipaddr:8080) to check it&lt;br /&gt;
::3. Built-in Cortana assistant, need to be enabled in settings page in default app and Device Portal&lt;br /&gt;
::4. Support on-screen keyboard, need to be enabled in Device Portal&lt;br /&gt;
::5. Enable 100M Ethernet and fix some bugs&lt;br /&gt;
::6. Support built-in UART bus in A64 SoC\(not built in the ffu, later provide driver binary and deployment helper\)&lt;br /&gt;
::7. Support built-in IR module in A64 SoC\(not built in the ffu, later provide source code and dev doc for developers in community\)&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
::Kernel debug is enabled by default. This will slow the bring-up process. If a kernel debug is not necessary for you, visit Device Portal and navigate to Processes-&amp;amp;gt;Run Command page, run this command to disable : Bcdedit /store C:\EFIESP\EFI\Microsoft\boot\BCD /set {default} debug off&lt;br /&gt;
::An PnP bug in audio device may cause a blue screen when acting software shutdown&lt;br /&gt;
::Ethernet device may not start with problem code 12 at the first time to bring up&lt;br /&gt;
&lt;br /&gt;
And another bomb! I uploaded core driver binaries and packaging toolchains on GitHub!&lt;br /&gt;
&lt;br /&gt;
Here is the repo address: https://github.com/Leeway213/BSP-aw1689&lt;br /&gt;
&lt;br /&gt;
And also some driver source code here with A64 datasheet in readme: https://github.com/Leeway213/driver-samples&lt;br /&gt;
&lt;br /&gt;
Welcome makers developers and anyone-elsers to post your feedback.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Azure IoT===&lt;br /&gt;
* we have test BPI-M64 with Microsoft Azure IoT with aarch64 Ubuntu 18.04 Linux &lt;br /&gt;
::Microsoft Azure IoT Edge using DPS with TPM 2.0 SLB9670 : https://www.youtube.com/watch?v=k9_GSQgKlqk&amp;amp;feature=youtu.be&lt;br /&gt;
::Microsoft Azure IoT Edge using DPS with TPM 2.0 ST33 i2c : https://www.youtube.com/watch?v=2MrO1-esjwI&amp;amp;feature=youtu.be&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
*BPI-M64 Android 7 source code&lt;br /&gt;
:: download link : https://github.com/BPI-SINOVOIP/BPI-A64-Android7&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Android 6.0.1 source code&lt;br /&gt;
:: download link : https://drive.google.com/open?id=0B_YnvHgh2rwjdTRVRVFaSHd2cnc&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 (allwnner A64) Linux 4.4 source code&lt;br /&gt;
::https://github.com/BPI-SINOVOIP/BPI-M64-bsp-4.4&lt;br /&gt;
::Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-allwnner-a64-linux-4-4-source-code-public-on-github/6706&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Linux kernel 3.4 BSP code:&lt;br /&gt;
:: github link : https://github.com/BPI-SINOVOIP/BPI-M64-bsp&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Win10 IoT source code&lt;br /&gt;
::https://bananapi.gitbooks.io/bpi-m64/content/en/sourcecodeongithub.html&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Robot Operating System (ROS):&lt;br /&gt;
::github: https://github.com/techping/BPI-robot-1&lt;br /&gt;
::discuss on forum: http://forum.banana-pi.org/t/discuss-robot-operating-system-ros-on-banana-pi/10967&lt;br /&gt;
&lt;br /&gt;
== documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
* schematic diagram: &lt;br /&gt;
::google driver :[https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing  google driver]&lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1kVRpcYb&lt;br /&gt;
* DXF file google download link :https://drive.google.com/file/d/0B4PAo2nW2KfnajlEY0xsdjNxY3c/view?usp=sharing&lt;br /&gt;
*Allwinner A64 chip datasheet:https://drive.google.com/file/d/0B4PAo2nW2KfnSW9lQnZ0d1RoVW8/view?usp=sharing&lt;br /&gt;
*Allwinner A64 user’s manual (720 pages):https://drive.google.com/file/d/0B4PAo2nW2KfnNHk4dkFJZEdqYXc/view?usp=sharing&lt;br /&gt;
*AXP803 Datasheet V1.0.pdf :https://drive.google.com/file/d/1nRbP1T02KlNZBbTJx4BHW5wVWvQPmDxC/view?usp=sharing&lt;br /&gt;
*A64 chip linux-sunxi wiki:http://linux-sunxi.org/A64&lt;br /&gt;
*BPI-M64 linux-sunxi wiki: https://linux-sunxi.org/Banana_Pi_M64&lt;br /&gt;
*other document about allwinner A64 chip:http://bundie.neterra.net:8080/a64/&lt;br /&gt;
*battery interface spec ： https://drive.google.com/file/d/0B4PAo2nW2KfnSmVuVDhQc0NLdG8/view?usp=sharing&lt;br /&gt;
*BPI-M64 quality guarantee&lt;br /&gt;
::BPI-M64 BT Lab test :https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m64bt40labtest.html&lt;br /&gt;
::BPI-M64 WIFI Lab test :https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m264wifilabtest.html&lt;br /&gt;
::BPI-M64 Validation test : https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m64validationtestreport.html&lt;br /&gt;
::CE FCC RoHS : http://forum.banana-pi.org/t/bpi-m64-ce-fcc-rohs-certification/2747&lt;br /&gt;
&lt;br /&gt;
== Amazon AWS Greengrass==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 passed Amazon AWS Greengrass:https://devices.amazonaws.com/detail/a3G0h000000OvPoEAK/Banana-Pi-BPI-M64&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android ==&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_M64#Install_Android_Image How to install the Android image]&lt;br /&gt;
&lt;br /&gt;
*2020-07-10 update, Android 7.1, base on kernel 3.10&lt;br /&gt;
::[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M64%2FAndroid7.1&amp;amp;mode=list Download Android 7.1 image]&lt;br /&gt;
&lt;br /&gt;
*2018-10-24 update Android 6.0 &amp;amp; 7.0 &amp;amp; 8.1, based on kernel 3.10.&lt;br /&gt;
&lt;br /&gt;
:M64 Android 6.0 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Android_6.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1Em7ZXVvbJI7wMXy_TM4VNwHo6Oa-vVBc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1ZginIvO3LVakqokIZAX1Xw&lt;br /&gt;
&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
:::: Google Drive :   https://drive.google.com/open?id=1Tts1krZyzwz9mL90j1ilTzVrJm6hh_J4 &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1oKMx_Ml5K1Jv7-qeS-NMsQ&lt;br /&gt;
&lt;br /&gt;
:M64 Android 7.0 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_7.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive :    https://drive.google.com/open?id=1mvKyK6KuPixs-jLD0FocIaV465bJ1Eig &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/15b32TXdh6752c-GBnR-Zeg&lt;br /&gt;
&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=16Ffc5xiZgD7JYgrMtCGaOYLCuZdQGcnY&lt;br /&gt;
::::Baidu Drive :  https://pan.baidu.com/s/1a9RYKSTRhCO-UzFfIoGCtQ &lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Android 8.1 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_8.1&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive :   https://drive.google.com/open?id=1UBaH9CNbmC9-n3jGImrFIAPZ8aZhqMJz &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1lz57HrqNHx6f_Q6nk0oZvA&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive :   https://drive.google.com/open?id=1wktuCcvolfozMFkLmugfZtGziHDj-1EM &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1MteYqyBp8LeECjcDteCTZQ&lt;br /&gt;
*Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-android-6-0-7-0-8-1-release-2018-10-24/7107&lt;br /&gt;
&lt;br /&gt;
*2018-9-17 update android 6.0&lt;br /&gt;
::Features Map :http://wiki.banana-pi.org/M64_Image_Map#Android_6.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=19ExJ9Ztfy3UgK9NZ4SiaVZAMozgyCJl7&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1s_orgiEI7JU_hUgjnpd25w&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1gWD_IT0P4NvdeqtK5I4MnJjwzsP7SXJc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1K0HYPiQe6nGvAS5bAAFHow&lt;br /&gt;
::Forum pthread :　http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-release-2018-09-18/6796&lt;br /&gt;
*2018-08-17 update,android 8.1&lt;br /&gt;
::This release is for banana pi M64 board which is based on Allwinner A64, We have two images release，Android 8.1 is based on kernel 4.9&lt;br /&gt;
::BPI-M64 Android 8.1 Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_8.1&lt;br /&gt;
::HDMI-LCD-Version:&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=11XjvTAbPw57R6H5kL27GVXry4xu18dVs&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1PQgJCUo6cY3wWxJ7rZrk-A&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-a64-new-image-android-8-1-ubuntu-release-2018-08-17/6531&lt;br /&gt;
&lt;br /&gt;
* 2018-05-20 update ,android 7.0&lt;br /&gt;
::hdmi-Version and Lcd 5.0 version&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1O3PsI73WmFFvhxMmzEscIQ&lt;br /&gt;
&lt;br /&gt;
* 2017-05-11 update ,android 6.0&lt;br /&gt;
::HDMI-Version&lt;br /&gt;
::Google Drive:https://drive.google.com/open?id=0B_YnvHgh2rwjcF9USm1MWWtxSXc&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1bHWhlW&lt;br /&gt;
::MD5: f85281213b9c5b88008a487dd1b6963c&lt;br /&gt;
::LCD-Version&lt;br /&gt;
::Google Drive:https://drive.google.com/open?id=0B_YnvHgh2rwjdHpFbHJMQWtsbFk&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1kVJVPGV&lt;br /&gt;
::MD5:be27e4eced96d3de81d46e512fd978eb &lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-android-6-0-version-v3/3240/4&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_M64#Install_Linux_Image How to install BPI Linux Image]&lt;br /&gt;
&lt;br /&gt;
* 2020-08-26 update,  Ubuntu Mate 18.04, Ubuntu Server 16.04, Raspbian Stretch, base on kernel 4.4&lt;br /&gt;
::[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M64%2Flinux&amp;amp;mode=list Download Image]&lt;br /&gt;
&lt;br /&gt;
* 2020-04-21 update, Rasbian Stretch, Ubuntu 16.06 Mate Desktop, Ubuntu 16.06 Server and Ubuntu 18.04 Mate Desktop, base on kernel 4.4&lt;br /&gt;
::google drive:https://drive.google.com/drive/folders/0B_YnvHgh2rwja3I4SllZN2VkYm8&lt;br /&gt;
::baidu cloud:https://pan.baidu.com/s/18XH8_uusUGBusbp4xw4txQ  Pincode：36R0&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* 2018-11-02 update, based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 Desktp&lt;br /&gt;
::::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_16.04&lt;br /&gt;
::::Google Drive : https://drive.google.com/file/d/1YzdkY8i-IsXzXLkbPCPNbAuhYbHmUwgv/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1XhOJBQtPkhvidjgipFNdzg&lt;br /&gt;
::::md5sum : 3564f0d3de9936aa26b93eaf027703a0&lt;br /&gt;
&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 AARCH64 Kernel 3.10&lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_aarch64_16.04&lt;br /&gt;
::::Google Drive : Chttps://drive.google.com/file/d/1MglySZLvquRPu1Wj8oLwdKBkFnRzLUL-/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1_ZTDCuL9QZf6qrqaE4gbgQ&lt;br /&gt;
::::md5sum : 7422e02daa01bff6de808490e89b436e&lt;br /&gt;
&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 AARCH64 Kernel 4.4 &lt;br /&gt;
::::features Map:http://wiki.banana-pi.org/M64_Image_Map#Kernel_4.4.89&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1g_m1NLn1-wUQ8jjPKEAwQcSj4d4P9vRP/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1JmKQGRKvJ9DwL_ij0K79FA&lt;br /&gt;
::::md5sum : ea9bba6ab7fc78f7b8478bfd013a9b50&lt;br /&gt;
&lt;br /&gt;
:: forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-ubuntu16-04-desktop-aarch64-release-2018-11-1/7159/1&lt;br /&gt;
&lt;br /&gt;
::Debian 9.5 AARCH64 Kernel 3.10&lt;br /&gt;
&lt;br /&gt;
::::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Image Links: Google Drive : Coming soon&lt;br /&gt;
::::Baidu Drive: https://pan.baidu.com/s/1DJd7CGAT0NiijKfOBq9J4Q&lt;br /&gt;
::::md5sum: 71fe25c1922c7f9ef81bb88e0f544de6&lt;br /&gt;
&lt;br /&gt;
*2018-4-17 update Ubuntu 16.04.4 with linux kernel 4.4.89 &lt;br /&gt;
::image name:2018-04-17-ubuntu-16.04-mate-desktop-demo3-k4.4.89-vdpau-3-mic-docker-bpi-r18-avs-aarch64-sd-emmc.img.zip&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1dlfo9LGNcrc-_cpKd1uJnrNx0PdonBnK&lt;br /&gt;
::MD5: 4b7e163d260e58a39ba8905e7ed39943&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-r18-avs-new-image-ubuntu-16-04-4-with-linux-kernel-4-4-89-2018-4-17/5435&lt;br /&gt;
&lt;br /&gt;
*2018-09-18 This release is for banana pi M64 board which is based on Allwinner A64, We release three Images, Ubuntu 16.04 Desktop &amp;amp; Android is based on kernel 3.10.&lt;br /&gt;
::Features Map ：http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_16.04&lt;br /&gt;
::Google Drive : &lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1wANJ4SwfNwKtBcd02WcbWA&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-release-2018-09-18/6796&lt;br /&gt;
&lt;br /&gt;
*2018-08-17 update Ubuntu 16.04 Server kernel 3.10.105&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1K-B4u8jGcv17s3I9v-Pr0xv5u5txvfok&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1HcrR8NsL9_1RwbZNa7uwmg&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-a64-new-image-android-8-1-ubuntu-release-2018-08-17/6531&lt;br /&gt;
&lt;br /&gt;
*2017-08-14 update based on ubuntu 16.04.3 LTS Mate Desktop (64-bit),support BPI-M64 kernel 3.10.105&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/0B_YnvHgh2rwjN1h1U0xDYUxET00/view?usp=sharing &lt;br /&gt;
::baidu cloud: http://pan.baidu.com/s/1pLkbdTT&lt;br /&gt;
::MD5: ae34baa840874276858d936a7ca85c4f&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-2017-08-14-ubuntu-16-04-mate-desktop-beta-aarch64-bpi-m64-sd-emmc/3695&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim64_bullseye_edge_5.19.7_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1UUbn24l3q_OsVP4XWT6eVQN531tHPzX0/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1vFR9sUR0FhWgS1pemk9lTg?pwd=ina6 (pincode: ina6)&lt;br /&gt;
&lt;br /&gt;
*2018-11-2 update , This release is for banana pi M64 board which is based on Allwinner A64, We release two Images, Debian 9.5 AARCH64 is based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
&lt;br /&gt;
::M64 Debian 9.5 AARCH64 Kernel 3.10&lt;br /&gt;
::::Features Map : * http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Google driver : https://drive.google.com/file/d/10qGv2gVrSgwXMBLDsCF0nQFc9EJnnkeS/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1DJd7CGAT0NiijKfOBq9J4Q&lt;br /&gt;
::::md5sum : 71fe25c1922c7f9ef81bb88e0f544de6&lt;br /&gt;
&lt;br /&gt;
::M64 Debian 9.5 AARCH64 Kernel 4.4 &lt;br /&gt;
::::Features Map:  *  http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/17fh3YY6cwOzHMsqwnRQRTu9cXjKU4_tV/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1sOR6WFz2U9MT0ltq6zYnJA&lt;br /&gt;
::::md5sum : f3c2391b0232178018fda7ebfd64b14c&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-debian-9-5-aarch64-release-2018-11-02/7166&lt;br /&gt;
&lt;br /&gt;
*2017-08-13 debian 8.9 jessie Mate Desktop (64-bit),support BPI-M64 kernel 3.10.105&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjazlNRTRHei1NbmM/view?usp=sharing&lt;br /&gt;
::baidu cloud:http://pan.baidu.com/s/1eSeTQeA&lt;br /&gt;
::MD5: 9ddf067457ebaf193de63c5c7141446a&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-2017-08-13-debian-8-jessie-mate-desktop-preview-aarch64-bpi-m64-sd-emmc/3694&lt;br /&gt;
&lt;br /&gt;
===Armbian===&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim64_jammy_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim64_jammy_edge_6.1.11_xfce_desktop.img.xz&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m64-new-armbian-image/15161&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim64_jammy_edge_5.19.7_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1_BaSpSdIaxJYy-QjaXLsOrJ25Ja7vA78/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1uOex7pm2tPhfJ47hoXIuGA?pwd=7hms (pincode: 7hms)&lt;br /&gt;
&lt;br /&gt;
*[https://www.armbian.com/bananapi-m64/ Armbian Image] is base on Linux Mainline kernel&lt;br /&gt;
&lt;br /&gt;
=== Raspbian===&lt;br /&gt;
&lt;br /&gt;
*2018-11-06 update : This release is for banana pi M64 board which is based on Allwinner A64, We release two Images, Raspbian 9.4 is based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
::BPI-M64 Raspbian 9.4 Kernel 3.10&lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Raspbian_9.4_AARCH64&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1qoKCVDgiuEj0IVEzuPgzuFLjFR9hTLH8/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1MlIzQRpjs_soBDXOKf8NAw&lt;br /&gt;
::::md5sum : e321c6dbb096a0348fceb9d4a0b6c210&lt;br /&gt;
::BPI-M64 Raspbian 9.4 Kernel 4.4 &lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Kernel_4.4.89_4&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1WnsHKnbI_FWQVkHQmbCcJ3yJ38oWaHGy/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1Bu-xiqiYsnau_xZp8-QEkw&lt;br /&gt;
::::md5sum : 1d4f00680e6869e2c4e66e205e61d93d&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-raspbian-9-4-kernel-3-10-4-4-release-2018-11-06/7195&lt;br /&gt;
&lt;br /&gt;
===Fedora Linux===&lt;br /&gt;
*BPI-M64 fedora image download(not support desktop): fedora 31 with grub (u-boot-2019.07 + kernel 5.3.0) &lt;br /&gt;
::https://drive.google.com/file/d/1dIr943Ke28lEtCDpy8cI3q1dBUtHymJP/view?usp=drivesdk&lt;br /&gt;
::https://drive.google.com/file/d/1F3nYOw9AiLLaz8be0umz_9nlnhDP3t0s/view?usp=drivesdk&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-new-image-fedora-31-with-grub-u-boot-2019-07-kernel-5-3-0/9938&lt;br /&gt;
&lt;br /&gt;
===Manjaro===&lt;br /&gt;
*2019-01-15 update,BananaPi BPI-M64 Support Run Manjaro AArch64 System&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/18drwPBFKAzf4lFe6IPjaPA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1Lu8xw4sAVyiHJT4eYcolNTAIKG154gm6&lt;br /&gt;
::Bpi Ftp Server: https://dev.banana-pi.org.cn/Image/BPI-M64/Manjaro/&lt;br /&gt;
::md5sum : 8c9964fbd80836228c72fa205eb62f78&lt;br /&gt;
::username: manjaro/root&lt;br /&gt;
::password: bananapi&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-new-image-manjaro-aarch64-system-2019-01-16/7696&lt;br /&gt;
&lt;br /&gt;
===FreeBSD===&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
===Clonezilla===&lt;br /&gt;
&lt;br /&gt;
*Clonezilla support arm64 (Banana Pi BPI-M64),Thanks to Steven Shiau (NCHC Free Software Labs in Taiwan) &amp;amp; https://clonezilla.org/ 1, this image just for test .&lt;br /&gt;
*image download:https://drive.google.com/file/d/15oj0RjoU1TPC-jOXJ2bfhLb3vAiMf7p2/view&lt;br /&gt;
*discuss on forum: http://forum.banana-pi.org/t/bpi-m64-new-image-clonezilla-support-arm64-on-bpi-m64/10789&lt;br /&gt;
&lt;br /&gt;
===Others===&lt;br /&gt;
* others image ,you can download at forum ： http://forum.banana-pi.org/c/BPI-M64/M63image&lt;br /&gt;
&lt;br /&gt;
==Win 10 IoT==&lt;br /&gt;
&lt;br /&gt;
* 2017-1-13 updae Win10 IoT Core beta0.2&lt;br /&gt;
::baidu cloud :http://pan.baidu.com/s/1c2ce100&lt;br /&gt;
&lt;br /&gt;
*Win10 IoT Core 10586 beta0.1&lt;br /&gt;
::download link : https://drive.google.com/open?id=0B_YnvHgh2rwjODJOSS1TdkRvcEk&lt;br /&gt;
::baidu link : http://pan.baidu.com/s/1dEQyGgD&lt;br /&gt;
::MD5: 1c09118cd45bf0c3b61d1846710a3649&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 win10 IoT: https://catalog.azureiotsolutions.com/details?title=Allwinner_Banana_Pi_BPI_M64&amp;amp;source=all-devices-page&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
*1,How-to use ubuntu system to support lcd7**?&lt;br /&gt;
::1.&amp;quot;vi  /media/pi/BPI-BOOT/bananapi/bpi-m64/linux/lcd7/uEnv.txt&amp;quot;&lt;br /&gt;
::2.If you use HC070TG lcd7 screen, change &amp;quot;touch=gt9xxnew_ts&amp;quot; But if you use S070WV20 lcd7 screen, you don't need to change.&lt;br /&gt;
::3. &amp;quot;bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m64/u-boot-with-dtb-bpi-m64-lcd7-8k.img.gz&amp;quot;&lt;br /&gt;
::4.reboot&lt;br /&gt;
::[[File:BPI-M64_LCD7.png]]&lt;br /&gt;
::For more operation details please see Wiki: http://wiki.banana-pi.org/Getting_Started_with_M64&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M64&amp;diff=14216</id>
		<title>Banana Pi BPI-M64</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M64&amp;diff=14216"/>
				<updated>2023-03-22T08:41:40Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M64]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M64_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M64_2.jpg|thumb|Overview:Allwinner A64]]&lt;br /&gt;
[[File:BPI-M3_M2_ultra_Case.jpg|thumb|Premium Aluminum Enclosure]]&lt;br /&gt;
[[File:Bpi-m2_ultar_case_1.jpg|thumb|BPI-M64 acrylic case]]&lt;br /&gt;
[[File:BPI_iot_design.JPG|thumb|BPI-M64 for BPI 4.0 [[Successful case]] : A64 for smart home design]]&lt;br /&gt;
[[File:A64_for_IoT_gateway.JPG|thumb|BPI-M64 for BPI 4.0 [[Successful case]] :A64 for IoT gateway design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 is a 64-bit quad-core mini single board computer. It features 2GB of RAM and 8GB eMMC. It also has onboard WiFi and BT. On the ports side, the BPI-M64 has 2 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, and lastly a DC power port. The processor is pin-to-pin comptialbe with R18, so it comes with two versions:M64 and M64-R18. &lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M64_960x360.jpg]]&lt;br /&gt;
&lt;br /&gt;
Also being a member of the Banana Pi family, the M64 is a big jump from the octa-core BPI-M3. This is because this Banana Pi BPI is named after its 64-bit SoC. BPI-M64 will be reserved for an upcoming board&lt;br /&gt;
&lt;br /&gt;
BPI-M64 is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
* Allwinner A64 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor.&lt;br /&gt;
* 2 GB DDR3 SDRAM&lt;br /&gt;
* 8G EMMC&lt;br /&gt;
* 10/100/1000Mbps Ethernet&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth&lt;br /&gt;
* MIPI LCD interface&lt;br /&gt;
* Camera interface&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*How to burn image : [[Quick Start Banana pi SBC]]&lt;br /&gt;
*how to development: [[Getting Started with M64]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M64_interface.jpg]]&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;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CPU|| Allwinner 64 Bit Quad Core ARM Cortex A53 1.2&amp;amp;nbsp;GHz CPU&lt;br /&gt;
|-&lt;br /&gt;
| GPU|| Dual core Mali 400 MP2 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 2GB LPDDR3 (shared with GPU)&lt;br /&gt;
|-&lt;br /&gt;
| Storage|| MicroSD slot with support for up to 256GB expansion and 8G eMMC flash with support for up to 64GB&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Mbit/s Ethernet + Wi-Fi 802.11 b/g/n  + Bluetooth 4.0&lt;br /&gt;
|-&lt;br /&gt;
|Video Input(s)|| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
|Video Output(s)|| 1080p capable HDMI port and multi-channel audio output (NO H./X.265 capabilities)&lt;br /&gt;
|-&lt;br /&gt;
| Audio Input(s)|| On board microphone&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output(s)|| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| USB ports|| USB 2.0 PORT (x2), USB OTG (x1)&lt;br /&gt;
|-&lt;br /&gt;
| Remote|| IR Receiver&lt;br /&gt;
|-&lt;br /&gt;
|GPIO|| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). GPIO pins can be used for UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
|Switches|| Reset, Power and U-boot &lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Status and 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volt @2A via DC Power and/or Micro USB (OTG)&lt;br /&gt;
|-&lt;br /&gt;
|Size &amp;amp; Weight|| 92x60mm, 48g&lt;br /&gt;
|-&lt;br /&gt;
|OS|| Android and Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 has a 40-pin GPIO header . Following is the Banana Pi GPIO Pinout:&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name||Default Function||Function2：GPIO||Function3&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P01||	VCC-3V3	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P02||	VCC-5V||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P03||	TWI1-SDA||	PH3||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P04||	VCC-5V||	||　	|　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P05||	TWI1-SCK||	PH2||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P06||	GND||	　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P07||	PH6||	PH6||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P08||	UART2-TX||	PB0||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P09||	GND||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P10||	UART2-RX||	PB1||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P11||	PH7||	PH7||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P12||	UART2-CTS||	PB3	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P13||	DMIC-CLK||	PH10||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P14||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P15||	DMIC-DIN||	PH11||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P16||	UART2-RTS||	PB2||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P17||	VCC-3V3||  ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P18||	PD4||	PD4	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P19||	SPI1-MOSI||	PD2||	UART4-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P20||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P21||	SPI1-MISO||	PD3||	UART4-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P22||	PC0||	PC0||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P23||	SPI1-CLK||	PD1||	UART3-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P24||	SPI1-CS	||PD0||	UART3-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P25||	GND||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P26||	PC2||	PC2	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P27||	PC4||	PC4	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P28||	PC3||	PC3	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P29||	PC7||	PC7	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P30||	GND	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P31||	PCM0-BCLK||	PB5	||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P32||	PCM0-DIN||	PB7	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P33||	PCM0-SYNC||	PB4	||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P34||	GND	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P35||	PCM0-DOUT|| 	PB6	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P36||	PL9||	PL9	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P37||	PL12||	PL12||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P38||	PL7||	PL7	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P39||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P40||	PL8||	PL8||　&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings.  The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “Camera”.&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;4&amp;quot;| '''CSI camer PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P01||	NC||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P02||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P03||	CSI0-SDA||	PE13&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P04||	CSI0-AVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P05||	CSI0-SCK||	PE12&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P06||	CSI0-Reset||	PE16&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P07||	CSI0-VSYNC||	PE3|&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P08||	CSI0-PWDN||	PE17&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P09||	CSI0-HSYNC||	PE2&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P10||	CSI0-DVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P11||	CSI0-DOVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P12||	CSI0-D7||	PE11&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P13||	CSI0-MCLK||	PE1&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P14||	CSI0-D6||	PE10&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P15||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P16||	CSI0-D5||	PE9&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P17||	CSI0-PCLK||	PE0&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P18||	CSI0-D4||	PE8&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P19||	CSI0-D0||	PE4&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P20||	CSI0-D3||	PE7&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P21||	CSI0-D1||	PE5&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P22||	CSI0-D2||	PE6&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P23||	GND	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P24||	CSI0-AFVCC||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''MIPI DSI (Display Serial Interface)'''&lt;br /&gt;
&lt;br /&gt;
The display Connector is a 40-pin FPC connector which can connect external LCD panel (MIPI DSI) and touch screen (I2C) module as well.  The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “DSI”.&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;4&amp;quot;| '''MIPI DSI display PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|DSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P01||	VCC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P02||	IPSOUT||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P03||	VCC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P04||	IPSOUT||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P05||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P06||	IPSOUT	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P07||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P08||	IPSOUT	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P09||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P10||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P11||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P12||	DSI-D0N	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P13||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P14||	DSI-D0P	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P15||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P16||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P17||	TWI0-SDA||	PH1&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P18||	DSI-D1N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P19||	TWI0-SCK||	PH0&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P20||	DSI-D1P	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P21||	CTP-INT||	PH4&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P22||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P23||	CTP-RST||	PH8&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P24||	DSI-CKN	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P25||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P26||	DSI-CKP	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P27||	LCD-BL-EN||	PD5&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P28||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P29||	LCD-RST	||PD6&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P30||	DSI-D2N	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P31||	LCD-PWR-EN	||PD7&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P32||	DSI-D2P	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P33||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P34||	GND	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P35||	LCD-PWM||	PL10&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P36||	DSI-D3N	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P37||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P38||	DSI-D3P	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P39||	NC	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P40||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The header CON2 is the UART interface.  For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Uart PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CON2 Pin Name||	Default Function||	GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P03||UART0-TXD||	PB8&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P02||	UART0-RXD||	PB9&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P01||	GND	||　&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
===Win 10 IoT ===&lt;br /&gt;
banana pi BPI-M64 IOT certifying pass by Microsoft:windows 10 iot core&lt;br /&gt;
&lt;br /&gt;
BPI-M64 for Win10 IoT : https://catalog.azureiotsolutions.com/details?title=Allwinner_Banana_Pi_BPI_M64&amp;amp;source=all-devices-page&lt;br /&gt;
&lt;br /&gt;
[[File:Win10_1.png]]&lt;br /&gt;
&lt;br /&gt;
link: https://azure.microsoft.com/en-us/documentation/articles/iot-hub-tested-configurations/&lt;br /&gt;
&lt;br /&gt;
get start:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Azure/azure-iot-sdks/blob/master/doc/get_started/windows10-iot-core-banana-pi-bpi-m64-csharp.md&lt;br /&gt;
&lt;br /&gt;
test on BPI-M64&lt;br /&gt;
&lt;br /&gt;
[[File:Win10_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
discuss on forum: http://forum.banana-pi.org/t/banana-pi-bpi-m64-iot-certifying-pass-by-microsoft-windows-10-iot-core/2090&lt;br /&gt;
&lt;br /&gt;
'''Windows 10 IoT Core for BPI-M64 Release Note'''&lt;br /&gt;
&lt;br /&gt;
The Unified Extensible Firmware Interface (UEFI]) is a specification that defines a software interface between an operating system and platform firmware. UEFI replaces the Basic Input/Output System (BIOS) firmware interface originally present in all IBM PC-compatible personal computers&lt;br /&gt;
AllWinner UEFI Firmware Release Notes&lt;br /&gt;
&lt;br /&gt;
This document describes how to build AllWinner UEFI Firmware and bring a AllWinner dev board up with it. The AllWinner UEFI Firmware, as the major boot system for AllWinner-Windows platform, is based on the EDK2 framework which is open-source and with some AllWinner platform software packages injected.&lt;br /&gt;
&lt;br /&gt;
Some updates:&lt;br /&gt;
::1. Update the OS version to build v.10.0.15063.0 \(Creators Update\)&lt;br /&gt;
::2. New page style of Device Portal, visit [https://deviceipaddr:8080](https://deviceipaddr:8080) to check it&lt;br /&gt;
::3. Built-in Cortana assistant, need to be enabled in settings page in default app and Device Portal&lt;br /&gt;
::4. Support on-screen keyboard, need to be enabled in Device Portal&lt;br /&gt;
::5. Enable 100M Ethernet and fix some bugs&lt;br /&gt;
::6. Support built-in UART bus in A64 SoC\(not built in the ffu, later provide driver binary and deployment helper\)&lt;br /&gt;
::7. Support built-in IR module in A64 SoC\(not built in the ffu, later provide source code and dev doc for developers in community\)&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
::Kernel debug is enabled by default. This will slow the bring-up process. If a kernel debug is not necessary for you, visit Device Portal and navigate to Processes-&amp;amp;gt;Run Command page, run this command to disable : Bcdedit /store C:\EFIESP\EFI\Microsoft\boot\BCD /set {default} debug off&lt;br /&gt;
::An PnP bug in audio device may cause a blue screen when acting software shutdown&lt;br /&gt;
::Ethernet device may not start with problem code 12 at the first time to bring up&lt;br /&gt;
&lt;br /&gt;
And another bomb! I uploaded core driver binaries and packaging toolchains on GitHub!&lt;br /&gt;
&lt;br /&gt;
Here is the repo address: https://github.com/Leeway213/BSP-aw1689&lt;br /&gt;
&lt;br /&gt;
And also some driver source code here with A64 datasheet in readme: https://github.com/Leeway213/driver-samples&lt;br /&gt;
&lt;br /&gt;
Welcome makers developers and anyone-elsers to post your feedback.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Azure IoT===&lt;br /&gt;
* we have test BPI-M64 with Microsoft Azure IoT with aarch64 Ubuntu 18.04 Linux &lt;br /&gt;
::Microsoft Azure IoT Edge using DPS with TPM 2.0 SLB9670 : https://www.youtube.com/watch?v=k9_GSQgKlqk&amp;amp;feature=youtu.be&lt;br /&gt;
::Microsoft Azure IoT Edge using DPS with TPM 2.0 ST33 i2c : https://www.youtube.com/watch?v=2MrO1-esjwI&amp;amp;feature=youtu.be&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
*BPI-M64 Android 7 source code&lt;br /&gt;
:: download link : https://github.com/BPI-SINOVOIP/BPI-A64-Android7&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Android 6.0.1 source code&lt;br /&gt;
:: download link : https://drive.google.com/open?id=0B_YnvHgh2rwjdTRVRVFaSHd2cnc&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 (allwnner A64) Linux 4.4 source code&lt;br /&gt;
::https://github.com/BPI-SINOVOIP/BPI-M64-bsp-4.4&lt;br /&gt;
::Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-allwnner-a64-linux-4-4-source-code-public-on-github/6706&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Linux kernel 3.4 BSP code:&lt;br /&gt;
:: github link : https://github.com/BPI-SINOVOIP/BPI-M64-bsp&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Win10 IoT source code&lt;br /&gt;
::https://bananapi.gitbooks.io/bpi-m64/content/en/sourcecodeongithub.html&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Robot Operating System (ROS):&lt;br /&gt;
::github: https://github.com/techping/BPI-robot-1&lt;br /&gt;
::discuss on forum: http://forum.banana-pi.org/t/discuss-robot-operating-system-ros-on-banana-pi/10967&lt;br /&gt;
&lt;br /&gt;
== documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
* schematic diagram: &lt;br /&gt;
::google driver :[https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing  google driver]&lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1kVRpcYb&lt;br /&gt;
* DXF file google download link :https://drive.google.com/file/d/0B4PAo2nW2KfnajlEY0xsdjNxY3c/view?usp=sharing&lt;br /&gt;
*Allwinner A64 chip datasheet:https://drive.google.com/file/d/0B4PAo2nW2KfnSW9lQnZ0d1RoVW8/view?usp=sharing&lt;br /&gt;
*Allwinner A64 user’s manual (720 pages):https://drive.google.com/file/d/0B4PAo2nW2KfnNHk4dkFJZEdqYXc/view?usp=sharing&lt;br /&gt;
*AXP803 Datasheet V1.0.pdf :https://drive.google.com/file/d/1nRbP1T02KlNZBbTJx4BHW5wVWvQPmDxC/view?usp=sharing&lt;br /&gt;
*A64 chip linux-sunxi wiki:http://linux-sunxi.org/A64&lt;br /&gt;
*BPI-M64 linux-sunxi wiki: https://linux-sunxi.org/Banana_Pi_M64&lt;br /&gt;
*other document about allwinner A64 chip:http://bundie.neterra.net:8080/a64/&lt;br /&gt;
*battery interface spec ： https://drive.google.com/file/d/0B4PAo2nW2KfnSmVuVDhQc0NLdG8/view?usp=sharing&lt;br /&gt;
*BPI-M64 quality guarantee&lt;br /&gt;
::BPI-M64 BT Lab test :https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m64bt40labtest.html&lt;br /&gt;
::BPI-M64 WIFI Lab test :https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m264wifilabtest.html&lt;br /&gt;
::BPI-M64 Validation test : https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m64validationtestreport.html&lt;br /&gt;
::CE FCC RoHS : http://forum.banana-pi.org/t/bpi-m64-ce-fcc-rohs-certification/2747&lt;br /&gt;
&lt;br /&gt;
== Amazon AWS Greengrass==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 passed Amazon AWS Greengrass:https://devices.amazonaws.com/detail/a3G0h000000OvPoEAK/Banana-Pi-BPI-M64&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android ==&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_M64#Install_Android_Image How to install the Android image]&lt;br /&gt;
&lt;br /&gt;
*2020-07-10 update, Android 7.1, base on kernel 3.10&lt;br /&gt;
::[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M64%2FAndroid7.1&amp;amp;mode=list Download Android 7.1 image]&lt;br /&gt;
&lt;br /&gt;
*2018-10-24 update Android 6.0 &amp;amp; 7.0 &amp;amp; 8.1, based on kernel 3.10.&lt;br /&gt;
&lt;br /&gt;
:M64 Android 6.0 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Android_6.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1Em7ZXVvbJI7wMXy_TM4VNwHo6Oa-vVBc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1ZginIvO3LVakqokIZAX1Xw&lt;br /&gt;
&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
:::: Google Drive :   https://drive.google.com/open?id=1Tts1krZyzwz9mL90j1ilTzVrJm6hh_J4 &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1oKMx_Ml5K1Jv7-qeS-NMsQ&lt;br /&gt;
&lt;br /&gt;
:M64 Android 7.0 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_7.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive :    https://drive.google.com/open?id=1mvKyK6KuPixs-jLD0FocIaV465bJ1Eig &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/15b32TXdh6752c-GBnR-Zeg&lt;br /&gt;
&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=16Ffc5xiZgD7JYgrMtCGaOYLCuZdQGcnY&lt;br /&gt;
::::Baidu Drive :  https://pan.baidu.com/s/1a9RYKSTRhCO-UzFfIoGCtQ &lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Android 8.1 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_8.1&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive :   https://drive.google.com/open?id=1UBaH9CNbmC9-n3jGImrFIAPZ8aZhqMJz &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1lz57HrqNHx6f_Q6nk0oZvA&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive :   https://drive.google.com/open?id=1wktuCcvolfozMFkLmugfZtGziHDj-1EM &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1MteYqyBp8LeECjcDteCTZQ&lt;br /&gt;
*Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-android-6-0-7-0-8-1-release-2018-10-24/7107&lt;br /&gt;
&lt;br /&gt;
*2018-9-17 update android 6.0&lt;br /&gt;
::Features Map :http://wiki.banana-pi.org/M64_Image_Map#Android_6.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=19ExJ9Ztfy3UgK9NZ4SiaVZAMozgyCJl7&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1s_orgiEI7JU_hUgjnpd25w&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1gWD_IT0P4NvdeqtK5I4MnJjwzsP7SXJc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1K0HYPiQe6nGvAS5bAAFHow&lt;br /&gt;
::Forum pthread :　http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-release-2018-09-18/6796&lt;br /&gt;
*2018-08-17 update,android 8.1&lt;br /&gt;
::This release is for banana pi M64 board which is based on Allwinner A64, We have two images release，Android 8.1 is based on kernel 4.9&lt;br /&gt;
::BPI-M64 Android 8.1 Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_8.1&lt;br /&gt;
::HDMI-LCD-Version:&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=11XjvTAbPw57R6H5kL27GVXry4xu18dVs&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1PQgJCUo6cY3wWxJ7rZrk-A&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-a64-new-image-android-8-1-ubuntu-release-2018-08-17/6531&lt;br /&gt;
&lt;br /&gt;
* 2018-05-20 update ,android 7.0&lt;br /&gt;
::hdmi-Version and Lcd 5.0 version&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1O3PsI73WmFFvhxMmzEscIQ&lt;br /&gt;
&lt;br /&gt;
* 2017-05-11 update ,android 6.0&lt;br /&gt;
::HDMI-Version&lt;br /&gt;
::Google Drive:https://drive.google.com/open?id=0B_YnvHgh2rwjcF9USm1MWWtxSXc&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1bHWhlW&lt;br /&gt;
::MD5: f85281213b9c5b88008a487dd1b6963c&lt;br /&gt;
::LCD-Version&lt;br /&gt;
::Google Drive:https://drive.google.com/open?id=0B_YnvHgh2rwjdHpFbHJMQWtsbFk&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1kVJVPGV&lt;br /&gt;
::MD5:be27e4eced96d3de81d46e512fd978eb &lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-android-6-0-version-v3/3240/4&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_M64#Install_Linux_Image How to install BPI Linux Image]&lt;br /&gt;
&lt;br /&gt;
* 2020-08-26 update,  Ubuntu Mate 18.04, Ubuntu Server 16.04, Raspbian Stretch, base on kernel 4.4&lt;br /&gt;
::[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M64%2Flinux&amp;amp;mode=list Download Image]&lt;br /&gt;
&lt;br /&gt;
* 2020-04-21 update, Rasbian Stretch, Ubuntu 16.06 Mate Desktop, Ubuntu 16.06 Server and Ubuntu 18.04 Mate Desktop, base on kernel 4.4&lt;br /&gt;
::google drive:https://drive.google.com/drive/folders/0B_YnvHgh2rwja3I4SllZN2VkYm8&lt;br /&gt;
::baidu cloud:https://pan.baidu.com/s/18XH8_uusUGBusbp4xw4txQ  Pincode：36R0&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* 2018-11-02 update, based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 Desktp&lt;br /&gt;
::::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_16.04&lt;br /&gt;
::::Google Drive : https://drive.google.com/file/d/1YzdkY8i-IsXzXLkbPCPNbAuhYbHmUwgv/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1XhOJBQtPkhvidjgipFNdzg&lt;br /&gt;
::::md5sum : 3564f0d3de9936aa26b93eaf027703a0&lt;br /&gt;
&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 AARCH64 Kernel 3.10&lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_aarch64_16.04&lt;br /&gt;
::::Google Drive : Chttps://drive.google.com/file/d/1MglySZLvquRPu1Wj8oLwdKBkFnRzLUL-/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1_ZTDCuL9QZf6qrqaE4gbgQ&lt;br /&gt;
::::md5sum : 7422e02daa01bff6de808490e89b436e&lt;br /&gt;
&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 AARCH64 Kernel 4.4 &lt;br /&gt;
::::features Map:http://wiki.banana-pi.org/M64_Image_Map#Kernel_4.4.89&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1g_m1NLn1-wUQ8jjPKEAwQcSj4d4P9vRP/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1JmKQGRKvJ9DwL_ij0K79FA&lt;br /&gt;
::::md5sum : ea9bba6ab7fc78f7b8478bfd013a9b50&lt;br /&gt;
&lt;br /&gt;
:: forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-ubuntu16-04-desktop-aarch64-release-2018-11-1/7159/1&lt;br /&gt;
&lt;br /&gt;
::Debian 9.5 AARCH64 Kernel 3.10&lt;br /&gt;
&lt;br /&gt;
::::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Image Links: Google Drive : Coming soon&lt;br /&gt;
::::Baidu Drive: https://pan.baidu.com/s/1DJd7CGAT0NiijKfOBq9J4Q&lt;br /&gt;
::::md5sum: 71fe25c1922c7f9ef81bb88e0f544de6&lt;br /&gt;
&lt;br /&gt;
*2018-4-17 update Ubuntu 16.04.4 with linux kernel 4.4.89 &lt;br /&gt;
::image name:2018-04-17-ubuntu-16.04-mate-desktop-demo3-k4.4.89-vdpau-3-mic-docker-bpi-r18-avs-aarch64-sd-emmc.img.zip&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1dlfo9LGNcrc-_cpKd1uJnrNx0PdonBnK&lt;br /&gt;
::MD5: 4b7e163d260e58a39ba8905e7ed39943&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-r18-avs-new-image-ubuntu-16-04-4-with-linux-kernel-4-4-89-2018-4-17/5435&lt;br /&gt;
&lt;br /&gt;
*2018-09-18 This release is for banana pi M64 board which is based on Allwinner A64, We release three Images, Ubuntu 16.04 Desktop &amp;amp; Android is based on kernel 3.10.&lt;br /&gt;
::Features Map ：http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_16.04&lt;br /&gt;
::Google Drive : &lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1wANJ4SwfNwKtBcd02WcbWA&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-release-2018-09-18/6796&lt;br /&gt;
&lt;br /&gt;
*2018-08-17 update Ubuntu 16.04 Server kernel 3.10.105&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1K-B4u8jGcv17s3I9v-Pr0xv5u5txvfok&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1HcrR8NsL9_1RwbZNa7uwmg&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-a64-new-image-android-8-1-ubuntu-release-2018-08-17/6531&lt;br /&gt;
&lt;br /&gt;
*2017-08-14 update based on ubuntu 16.04.3 LTS Mate Desktop (64-bit),support BPI-M64 kernel 3.10.105&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/0B_YnvHgh2rwjN1h1U0xDYUxET00/view?usp=sharing &lt;br /&gt;
::baidu cloud: http://pan.baidu.com/s/1pLkbdTT&lt;br /&gt;
::MD5: ae34baa840874276858d936a7ca85c4f&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-2017-08-14-ubuntu-16-04-mate-desktop-beta-aarch64-bpi-m64-sd-emmc/3695&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim64_bullseye_edge_5.19.7_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1UUbn24l3q_OsVP4XWT6eVQN531tHPzX0/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1vFR9sUR0FhWgS1pemk9lTg?pwd=ina6 (pincode: ina6)&lt;br /&gt;
&lt;br /&gt;
*2018-11-2 update , This release is for banana pi M64 board which is based on Allwinner A64, We release two Images, Debian 9.5 AARCH64 is based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
&lt;br /&gt;
::M64 Debian 9.5 AARCH64 Kernel 3.10&lt;br /&gt;
::::Features Map : * http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Google driver : https://drive.google.com/file/d/10qGv2gVrSgwXMBLDsCF0nQFc9EJnnkeS/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1DJd7CGAT0NiijKfOBq9J4Q&lt;br /&gt;
::::md5sum : 71fe25c1922c7f9ef81bb88e0f544de6&lt;br /&gt;
&lt;br /&gt;
::M64 Debian 9.5 AARCH64 Kernel 4.4 &lt;br /&gt;
::::Features Map:  *  http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/17fh3YY6cwOzHMsqwnRQRTu9cXjKU4_tV/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1sOR6WFz2U9MT0ltq6zYnJA&lt;br /&gt;
::::md5sum : f3c2391b0232178018fda7ebfd64b14c&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-debian-9-5-aarch64-release-2018-11-02/7166&lt;br /&gt;
&lt;br /&gt;
*2017-08-13 debian 8.9 jessie Mate Desktop (64-bit),support BPI-M64 kernel 3.10.105&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjazlNRTRHei1NbmM/view?usp=sharing&lt;br /&gt;
::baidu cloud:http://pan.baidu.com/s/1eSeTQeA&lt;br /&gt;
::MD5: 9ddf067457ebaf193de63c5c7141446a&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-2017-08-13-debian-8-jessie-mate-desktop-preview-aarch64-bpi-m64-sd-emmc/3694&lt;br /&gt;
&lt;br /&gt;
===Armbian===&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim64_jammy_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim64_jammy_edge_6.1.11_xfce_desktop.img.xz&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m64-new-armbian-image/15161&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[https://www.armbian.com/bananapi-m64/ Armbian Image] is base on Linux Mainline kernel&lt;br /&gt;
&lt;br /&gt;
=== Raspbian===&lt;br /&gt;
&lt;br /&gt;
*2018-11-06 update : This release is for banana pi M64 board which is based on Allwinner A64, We release two Images, Raspbian 9.4 is based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
::BPI-M64 Raspbian 9.4 Kernel 3.10&lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Raspbian_9.4_AARCH64&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1qoKCVDgiuEj0IVEzuPgzuFLjFR9hTLH8/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1MlIzQRpjs_soBDXOKf8NAw&lt;br /&gt;
::::md5sum : e321c6dbb096a0348fceb9d4a0b6c210&lt;br /&gt;
::BPI-M64 Raspbian 9.4 Kernel 4.4 &lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Kernel_4.4.89_4&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1WnsHKnbI_FWQVkHQmbCcJ3yJ38oWaHGy/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1Bu-xiqiYsnau_xZp8-QEkw&lt;br /&gt;
::::md5sum : 1d4f00680e6869e2c4e66e205e61d93d&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-raspbian-9-4-kernel-3-10-4-4-release-2018-11-06/7195&lt;br /&gt;
&lt;br /&gt;
===Fedora Linux===&lt;br /&gt;
*BPI-M64 fedora image download(not support desktop): fedora 31 with grub (u-boot-2019.07 + kernel 5.3.0) &lt;br /&gt;
::https://drive.google.com/file/d/1dIr943Ke28lEtCDpy8cI3q1dBUtHymJP/view?usp=drivesdk&lt;br /&gt;
::https://drive.google.com/file/d/1F3nYOw9AiLLaz8be0umz_9nlnhDP3t0s/view?usp=drivesdk&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-new-image-fedora-31-with-grub-u-boot-2019-07-kernel-5-3-0/9938&lt;br /&gt;
&lt;br /&gt;
===Manjaro===&lt;br /&gt;
*2019-01-15 update,BananaPi BPI-M64 Support Run Manjaro AArch64 System&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/18drwPBFKAzf4lFe6IPjaPA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1Lu8xw4sAVyiHJT4eYcolNTAIKG154gm6&lt;br /&gt;
::Bpi Ftp Server: https://dev.banana-pi.org.cn/Image/BPI-M64/Manjaro/&lt;br /&gt;
::md5sum : 8c9964fbd80836228c72fa205eb62f78&lt;br /&gt;
::username: manjaro/root&lt;br /&gt;
::password: bananapi&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-new-image-manjaro-aarch64-system-2019-01-16/7696&lt;br /&gt;
&lt;br /&gt;
===FreeBSD===&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
===Clonezilla===&lt;br /&gt;
&lt;br /&gt;
*Clonezilla support arm64 (Banana Pi BPI-M64),Thanks to Steven Shiau (NCHC Free Software Labs in Taiwan) &amp;amp; https://clonezilla.org/ 1, this image just for test .&lt;br /&gt;
*image download:https://drive.google.com/file/d/15oj0RjoU1TPC-jOXJ2bfhLb3vAiMf7p2/view&lt;br /&gt;
*discuss on forum: http://forum.banana-pi.org/t/bpi-m64-new-image-clonezilla-support-arm64-on-bpi-m64/10789&lt;br /&gt;
&lt;br /&gt;
===Others===&lt;br /&gt;
* others image ,you can download at forum ： http://forum.banana-pi.org/c/BPI-M64/M63image&lt;br /&gt;
&lt;br /&gt;
==Win 10 IoT==&lt;br /&gt;
&lt;br /&gt;
* 2017-1-13 updae Win10 IoT Core beta0.2&lt;br /&gt;
::baidu cloud :http://pan.baidu.com/s/1c2ce100&lt;br /&gt;
&lt;br /&gt;
*Win10 IoT Core 10586 beta0.1&lt;br /&gt;
::download link : https://drive.google.com/open?id=0B_YnvHgh2rwjODJOSS1TdkRvcEk&lt;br /&gt;
::baidu link : http://pan.baidu.com/s/1dEQyGgD&lt;br /&gt;
::MD5: 1c09118cd45bf0c3b61d1846710a3649&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 win10 IoT: https://catalog.azureiotsolutions.com/details?title=Allwinner_Banana_Pi_BPI_M64&amp;amp;source=all-devices-page&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
*1,How-to use ubuntu system to support lcd7**?&lt;br /&gt;
::1.&amp;quot;vi  /media/pi/BPI-BOOT/bananapi/bpi-m64/linux/lcd7/uEnv.txt&amp;quot;&lt;br /&gt;
::2.If you use HC070TG lcd7 screen, change &amp;quot;touch=gt9xxnew_ts&amp;quot; But if you use S070WV20 lcd7 screen, you don't need to change.&lt;br /&gt;
::3. &amp;quot;bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m64/u-boot-with-dtb-bpi-m64-lcd7-8k.img.gz&amp;quot;&lt;br /&gt;
::4.reboot&lt;br /&gt;
::[[File:BPI-M64_LCD7.png]]&lt;br /&gt;
::For more operation details please see Wiki: http://wiki.banana-pi.org/Getting_Started_with_M64&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M64&amp;diff=14215</id>
		<title>Banana Pi BPI-M64</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M64&amp;diff=14215"/>
				<updated>2023-03-22T06:56:01Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M64]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M64_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M64_2.jpg|thumb|Overview:Allwinner A64]]&lt;br /&gt;
[[File:BPI-M3_M2_ultra_Case.jpg|thumb|Premium Aluminum Enclosure]]&lt;br /&gt;
[[File:Bpi-m2_ultar_case_1.jpg|thumb|BPI-M64 acrylic case]]&lt;br /&gt;
[[File:BPI_iot_design.JPG|thumb|BPI-M64 for BPI 4.0 [[Successful case]] : A64 for smart home design]]&lt;br /&gt;
[[File:A64_for_IoT_gateway.JPG|thumb|BPI-M64 for BPI 4.0 [[Successful case]] :A64 for IoT gateway design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 is a 64-bit quad-core mini single board computer. It features 2GB of RAM and 8GB eMMC. It also has onboard WiFi and BT. On the ports side, the BPI-M64 has 2 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, and lastly a DC power port. The processor is pin-to-pin comptialbe with R18, so it comes with two versions:M64 and M64-R18. &lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M64_960x360.jpg]]&lt;br /&gt;
&lt;br /&gt;
Also being a member of the Banana Pi family, the M64 is a big jump from the octa-core BPI-M3. This is because this Banana Pi BPI is named after its 64-bit SoC. BPI-M64 will be reserved for an upcoming board&lt;br /&gt;
&lt;br /&gt;
BPI-M64 is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
* Allwinner A64 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor.&lt;br /&gt;
* 2 GB DDR3 SDRAM&lt;br /&gt;
* 8G EMMC&lt;br /&gt;
* 10/100/1000Mbps Ethernet&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth&lt;br /&gt;
* MIPI LCD interface&lt;br /&gt;
* Camera interface&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*How to burn image : [[Quick Start Banana pi SBC]]&lt;br /&gt;
*how to development: [[Getting Started with M64]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M64_interface.jpg]]&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;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CPU|| Allwinner 64 Bit Quad Core ARM Cortex A53 1.2&amp;amp;nbsp;GHz CPU&lt;br /&gt;
|-&lt;br /&gt;
| GPU|| Dual core Mali 400 MP2 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 2GB LPDDR3 (shared with GPU)&lt;br /&gt;
|-&lt;br /&gt;
| Storage|| MicroSD slot with support for up to 256GB expansion and 8G eMMC flash with support for up to 64GB&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Mbit/s Ethernet + Wi-Fi 802.11 b/g/n  + Bluetooth 4.0&lt;br /&gt;
|-&lt;br /&gt;
|Video Input(s)|| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
|Video Output(s)|| 1080p capable HDMI port and multi-channel audio output (NO H./X.265 capabilities)&lt;br /&gt;
|-&lt;br /&gt;
| Audio Input(s)|| On board microphone&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output(s)|| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| USB ports|| USB 2.0 PORT (x2), USB OTG (x1)&lt;br /&gt;
|-&lt;br /&gt;
| Remote|| IR Receiver&lt;br /&gt;
|-&lt;br /&gt;
|GPIO|| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). GPIO pins can be used for UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
|Switches|| Reset, Power and U-boot &lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Status and 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volt @2A via DC Power and/or Micro USB (OTG)&lt;br /&gt;
|-&lt;br /&gt;
|Size &amp;amp; Weight|| 92x60mm, 48g&lt;br /&gt;
|-&lt;br /&gt;
|OS|| Android and Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 has a 40-pin GPIO header . Following is the Banana Pi GPIO Pinout:&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name||Default Function||Function2：GPIO||Function3&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P01||	VCC-3V3	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P02||	VCC-5V||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P03||	TWI1-SDA||	PH3||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P04||	VCC-5V||	||　	|　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P05||	TWI1-SCK||	PH2||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P06||	GND||	　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P07||	PH6||	PH6||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P08||	UART2-TX||	PB0||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P09||	GND||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P10||	UART2-RX||	PB1||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P11||	PH7||	PH7||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P12||	UART2-CTS||	PB3	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P13||	DMIC-CLK||	PH10||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P14||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P15||	DMIC-DIN||	PH11||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P16||	UART2-RTS||	PB2||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P17||	VCC-3V3||  ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P18||	PD4||	PD4	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P19||	SPI1-MOSI||	PD2||	UART4-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P20||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P21||	SPI1-MISO||	PD3||	UART4-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P22||	PC0||	PC0||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P23||	SPI1-CLK||	PD1||	UART3-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P24||	SPI1-CS	||PD0||	UART3-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P25||	GND||	||　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P26||	PC2||	PC2	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P27||	PC4||	PC4	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P28||	PC3||	PC3	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P29||	PC7||	PC7	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P30||	GND	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P31||	PCM0-BCLK||	PB5	||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P32||	PCM0-DIN||	PB7	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P33||	PCM0-SYNC||	PB4	||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P34||	GND	||　||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P35||	PCM0-DOUT|| 	PB6	　||&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P36||	PL9||	PL9	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P37||	PL12||	PL12||	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P38||	PL7||	PL7	||　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P39||	GND|| ||	　	　&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P40||	PL8||	PL8||　&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings.  The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “Camera”.&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;4&amp;quot;| '''CSI camer PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P01||	NC||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P02||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P03||	CSI0-SDA||	PE13&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P04||	CSI0-AVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P05||	CSI0-SCK||	PE12&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P06||	CSI0-Reset||	PE16&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P07||	CSI0-VSYNC||	PE3|&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P08||	CSI0-PWDN||	PE17&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P09||	CSI0-HSYNC||	PE2&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P10||	CSI0-DVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P11||	CSI0-DOVDD||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P12||	CSI0-D7||	PE11&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P13||	CSI0-MCLK||	PE1&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P14||	CSI0-D6||	PE10&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P15||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P16||	CSI0-D5||	PE9&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P17||	CSI0-PCLK||	PE0&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P18||	CSI0-D4||	PE8&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P19||	CSI0-D0||	PE4&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P20||	CSI0-D3||	PE7&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P21||	CSI0-D1||	PE5&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P22||	CSI0-D2||	PE6&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P23||	GND	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN5-P24||	CSI0-AFVCC||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''MIPI DSI (Display Serial Interface)'''&lt;br /&gt;
&lt;br /&gt;
The display Connector is a 40-pin FPC connector which can connect external LCD panel (MIPI DSI) and touch screen (I2C) module as well.  The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “DSI”.&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;4&amp;quot;| '''MIPI DSI display PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|DSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P01||	VCC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P02||	IPSOUT||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P03||	VCC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P04||	IPSOUT||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P05||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P06||	IPSOUT	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P07||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P08||	IPSOUT	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P09||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P10||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P11||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P12||	DSI-D0N	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P13||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P14||	DSI-D0P	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P15||	NC	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P16||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P17||	TWI0-SDA||	PH1&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P18||	DSI-D1N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P19||	TWI0-SCK||	PH0&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P20||	DSI-D1P	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P21||	CTP-INT||	PH4&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P22||	GND||	　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P23||	CTP-RST||	PH8&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P24||	DSI-CKN	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P25||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P26||	DSI-CKP	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P27||	LCD-BL-EN||	PD5&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P28||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P29||	LCD-RST	||PD6&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P30||	DSI-D2N	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P31||	LCD-PWR-EN	||PD7&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P32||	DSI-D2P	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P33||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P34||	GND	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P35||	LCD-PWM||	PL10&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P36||	DSI-D3N	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P37||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P38||	DSI-D3P	||　&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P39||	NC	　||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P40||	GND	　||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The header CON2 is the UART interface.  For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Uart PIN define of Banana pi BPI-M64'''&lt;br /&gt;
|-&lt;br /&gt;
|CON2 Pin Name||	Default Function||	GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P03||UART0-TXD||	PB8&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P02||	UART0-RXD||	PB9&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P01||	GND	||　&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
===Win 10 IoT ===&lt;br /&gt;
banana pi BPI-M64 IOT certifying pass by Microsoft:windows 10 iot core&lt;br /&gt;
&lt;br /&gt;
BPI-M64 for Win10 IoT : https://catalog.azureiotsolutions.com/details?title=Allwinner_Banana_Pi_BPI_M64&amp;amp;source=all-devices-page&lt;br /&gt;
&lt;br /&gt;
[[File:Win10_1.png]]&lt;br /&gt;
&lt;br /&gt;
link: https://azure.microsoft.com/en-us/documentation/articles/iot-hub-tested-configurations/&lt;br /&gt;
&lt;br /&gt;
get start:&lt;br /&gt;
&lt;br /&gt;
https://github.com/Azure/azure-iot-sdks/blob/master/doc/get_started/windows10-iot-core-banana-pi-bpi-m64-csharp.md&lt;br /&gt;
&lt;br /&gt;
test on BPI-M64&lt;br /&gt;
&lt;br /&gt;
[[File:Win10_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
discuss on forum: http://forum.banana-pi.org/t/banana-pi-bpi-m64-iot-certifying-pass-by-microsoft-windows-10-iot-core/2090&lt;br /&gt;
&lt;br /&gt;
'''Windows 10 IoT Core for BPI-M64 Release Note'''&lt;br /&gt;
&lt;br /&gt;
The Unified Extensible Firmware Interface (UEFI]) is a specification that defines a software interface between an operating system and platform firmware. UEFI replaces the Basic Input/Output System (BIOS) firmware interface originally present in all IBM PC-compatible personal computers&lt;br /&gt;
AllWinner UEFI Firmware Release Notes&lt;br /&gt;
&lt;br /&gt;
This document describes how to build AllWinner UEFI Firmware and bring a AllWinner dev board up with it. The AllWinner UEFI Firmware, as the major boot system for AllWinner-Windows platform, is based on the EDK2 framework which is open-source and with some AllWinner platform software packages injected.&lt;br /&gt;
&lt;br /&gt;
Some updates:&lt;br /&gt;
::1. Update the OS version to build v.10.0.15063.0 \(Creators Update\)&lt;br /&gt;
::2. New page style of Device Portal, visit [https://deviceipaddr:8080](https://deviceipaddr:8080) to check it&lt;br /&gt;
::3. Built-in Cortana assistant, need to be enabled in settings page in default app and Device Portal&lt;br /&gt;
::4. Support on-screen keyboard, need to be enabled in Device Portal&lt;br /&gt;
::5. Enable 100M Ethernet and fix some bugs&lt;br /&gt;
::6. Support built-in UART bus in A64 SoC\(not built in the ffu, later provide driver binary and deployment helper\)&lt;br /&gt;
::7. Support built-in IR module in A64 SoC\(not built in the ffu, later provide source code and dev doc for developers in community\)&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
::Kernel debug is enabled by default. This will slow the bring-up process. If a kernel debug is not necessary for you, visit Device Portal and navigate to Processes-&amp;amp;gt;Run Command page, run this command to disable : Bcdedit /store C:\EFIESP\EFI\Microsoft\boot\BCD /set {default} debug off&lt;br /&gt;
::An PnP bug in audio device may cause a blue screen when acting software shutdown&lt;br /&gt;
::Ethernet device may not start with problem code 12 at the first time to bring up&lt;br /&gt;
&lt;br /&gt;
And another bomb! I uploaded core driver binaries and packaging toolchains on GitHub!&lt;br /&gt;
&lt;br /&gt;
Here is the repo address: https://github.com/Leeway213/BSP-aw1689&lt;br /&gt;
&lt;br /&gt;
And also some driver source code here with A64 datasheet in readme: https://github.com/Leeway213/driver-samples&lt;br /&gt;
&lt;br /&gt;
Welcome makers developers and anyone-elsers to post your feedback.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Azure IoT===&lt;br /&gt;
* we have test BPI-M64 with Microsoft Azure IoT with aarch64 Ubuntu 18.04 Linux &lt;br /&gt;
::Microsoft Azure IoT Edge using DPS with TPM 2.0 SLB9670 : https://www.youtube.com/watch?v=k9_GSQgKlqk&amp;amp;feature=youtu.be&lt;br /&gt;
::Microsoft Azure IoT Edge using DPS with TPM 2.0 ST33 i2c : https://www.youtube.com/watch?v=2MrO1-esjwI&amp;amp;feature=youtu.be&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
*BPI-M64 Android 7 source code&lt;br /&gt;
:: download link : https://github.com/BPI-SINOVOIP/BPI-A64-Android7&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Android 6.0.1 source code&lt;br /&gt;
:: download link : https://drive.google.com/open?id=0B_YnvHgh2rwjdTRVRVFaSHd2cnc&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 (allwnner A64) Linux 4.4 source code&lt;br /&gt;
::https://github.com/BPI-SINOVOIP/BPI-M64-bsp-4.4&lt;br /&gt;
::Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-allwnner-a64-linux-4-4-source-code-public-on-github/6706&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Linux kernel 3.4 BSP code:&lt;br /&gt;
:: github link : https://github.com/BPI-SINOVOIP/BPI-M64-bsp&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Win10 IoT source code&lt;br /&gt;
::https://bananapi.gitbooks.io/bpi-m64/content/en/sourcecodeongithub.html&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Robot Operating System (ROS):&lt;br /&gt;
::github: https://github.com/techping/BPI-robot-1&lt;br /&gt;
::discuss on forum: http://forum.banana-pi.org/t/discuss-robot-operating-system-ros-on-banana-pi/10967&lt;br /&gt;
&lt;br /&gt;
== documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
* schematic diagram: &lt;br /&gt;
::google driver :[https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing  google driver]&lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1kVRpcYb&lt;br /&gt;
* DXF file google download link :https://drive.google.com/file/d/0B4PAo2nW2KfnajlEY0xsdjNxY3c/view?usp=sharing&lt;br /&gt;
*Allwinner A64 chip datasheet:https://drive.google.com/file/d/0B4PAo2nW2KfnSW9lQnZ0d1RoVW8/view?usp=sharing&lt;br /&gt;
*Allwinner A64 user’s manual (720 pages):https://drive.google.com/file/d/0B4PAo2nW2KfnNHk4dkFJZEdqYXc/view?usp=sharing&lt;br /&gt;
*AXP803 Datasheet V1.0.pdf :https://drive.google.com/file/d/1nRbP1T02KlNZBbTJx4BHW5wVWvQPmDxC/view?usp=sharing&lt;br /&gt;
*A64 chip linux-sunxi wiki:http://linux-sunxi.org/A64&lt;br /&gt;
*BPI-M64 linux-sunxi wiki: https://linux-sunxi.org/Banana_Pi_M64&lt;br /&gt;
*other document about allwinner A64 chip:http://bundie.neterra.net:8080/a64/&lt;br /&gt;
*battery interface spec ： https://drive.google.com/file/d/0B4PAo2nW2KfnSmVuVDhQc0NLdG8/view?usp=sharing&lt;br /&gt;
*BPI-M64 quality guarantee&lt;br /&gt;
::BPI-M64 BT Lab test :https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m64bt40labtest.html&lt;br /&gt;
::BPI-M64 WIFI Lab test :https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m264wifilabtest.html&lt;br /&gt;
::BPI-M64 Validation test : https://bananapi.gitbooks.io/bpi-m64/content/en/bpi-m64validationtestreport.html&lt;br /&gt;
::CE FCC RoHS : http://forum.banana-pi.org/t/bpi-m64-ce-fcc-rohs-certification/2747&lt;br /&gt;
&lt;br /&gt;
== Amazon AWS Greengrass==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M64 passed Amazon AWS Greengrass:https://devices.amazonaws.com/detail/a3G0h000000OvPoEAK/Banana-Pi-BPI-M64&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android ==&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_M64#Install_Android_Image How to install the Android image]&lt;br /&gt;
&lt;br /&gt;
*2020-07-10 update, Android 7.1, base on kernel 3.10&lt;br /&gt;
::[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M64%2FAndroid7.1&amp;amp;mode=list Download Android 7.1 image]&lt;br /&gt;
&lt;br /&gt;
*2018-10-24 update Android 6.0 &amp;amp; 7.0 &amp;amp; 8.1, based on kernel 3.10.&lt;br /&gt;
&lt;br /&gt;
:M64 Android 6.0 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Android_6.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1Em7ZXVvbJI7wMXy_TM4VNwHo6Oa-vVBc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1ZginIvO3LVakqokIZAX1Xw&lt;br /&gt;
&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
:::: Google Drive :   https://drive.google.com/open?id=1Tts1krZyzwz9mL90j1ilTzVrJm6hh_J4 &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1oKMx_Ml5K1Jv7-qeS-NMsQ&lt;br /&gt;
&lt;br /&gt;
:M64 Android 7.0 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_7.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive :    https://drive.google.com/open?id=1mvKyK6KuPixs-jLD0FocIaV465bJ1Eig &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/15b32TXdh6752c-GBnR-Zeg&lt;br /&gt;
&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=16Ffc5xiZgD7JYgrMtCGaOYLCuZdQGcnY&lt;br /&gt;
::::Baidu Drive :  https://pan.baidu.com/s/1a9RYKSTRhCO-UzFfIoGCtQ &lt;br /&gt;
&lt;br /&gt;
*BPI-M64 Android 8.1 HDMI &amp;amp; LCD7&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_8.1&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive :   https://drive.google.com/open?id=1UBaH9CNbmC9-n3jGImrFIAPZ8aZhqMJz &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1lz57HrqNHx6f_Q6nk0oZvA&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive :   https://drive.google.com/open?id=1wktuCcvolfozMFkLmugfZtGziHDj-1EM &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1MteYqyBp8LeECjcDteCTZQ&lt;br /&gt;
*Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-android-6-0-7-0-8-1-release-2018-10-24/7107&lt;br /&gt;
&lt;br /&gt;
*2018-9-17 update android 6.0&lt;br /&gt;
::Features Map :http://wiki.banana-pi.org/M64_Image_Map#Android_6.0&lt;br /&gt;
::HDMI Version Image Links：&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=19ExJ9Ztfy3UgK9NZ4SiaVZAMozgyCJl7&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1s_orgiEI7JU_hUgjnpd25w&lt;br /&gt;
::LCD7 Version Image Links:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1gWD_IT0P4NvdeqtK5I4MnJjwzsP7SXJc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1K0HYPiQe6nGvAS5bAAFHow&lt;br /&gt;
::Forum pthread :　http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-release-2018-09-18/6796&lt;br /&gt;
*2018-08-17 update,android 8.1&lt;br /&gt;
::This release is for banana pi M64 board which is based on Allwinner A64, We have two images release，Android 8.1 is based on kernel 4.9&lt;br /&gt;
::BPI-M64 Android 8.1 Features Map:http://wiki.banana-pi.org/M64_Image_Map#Android_8.1&lt;br /&gt;
::HDMI-LCD-Version:&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=11XjvTAbPw57R6H5kL27GVXry4xu18dVs&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1PQgJCUo6cY3wWxJ7rZrk-A&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-a64-new-image-android-8-1-ubuntu-release-2018-08-17/6531&lt;br /&gt;
&lt;br /&gt;
* 2018-05-20 update ,android 7.0&lt;br /&gt;
::hdmi-Version and Lcd 5.0 version&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1O3PsI73WmFFvhxMmzEscIQ&lt;br /&gt;
&lt;br /&gt;
* 2017-05-11 update ,android 6.0&lt;br /&gt;
::HDMI-Version&lt;br /&gt;
::Google Drive:https://drive.google.com/open?id=0B_YnvHgh2rwjcF9USm1MWWtxSXc&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1bHWhlW&lt;br /&gt;
::MD5: f85281213b9c5b88008a487dd1b6963c&lt;br /&gt;
::LCD-Version&lt;br /&gt;
::Google Drive:https://drive.google.com/open?id=0B_YnvHgh2rwjdHpFbHJMQWtsbFk&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1kVJVPGV&lt;br /&gt;
::MD5:be27e4eced96d3de81d46e512fd978eb &lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-android-6-0-version-v3/3240/4&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_M64#Install_Linux_Image How to install BPI Linux Image]&lt;br /&gt;
&lt;br /&gt;
* 2020-08-26 update,  Ubuntu Mate 18.04, Ubuntu Server 16.04, Raspbian Stretch, base on kernel 4.4&lt;br /&gt;
::[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M64%2Flinux&amp;amp;mode=list Download Image]&lt;br /&gt;
&lt;br /&gt;
* 2020-04-21 update, Rasbian Stretch, Ubuntu 16.06 Mate Desktop, Ubuntu 16.06 Server and Ubuntu 18.04 Mate Desktop, base on kernel 4.4&lt;br /&gt;
::google drive:https://drive.google.com/drive/folders/0B_YnvHgh2rwja3I4SllZN2VkYm8&lt;br /&gt;
::baidu cloud:https://pan.baidu.com/s/18XH8_uusUGBusbp4xw4txQ  Pincode：36R0&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu===&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim64_jammy_edge_5.19.7_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1_BaSpSdIaxJYy-QjaXLsOrJ25Ja7vA78/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1uOex7pm2tPhfJ47hoXIuGA?pwd=7hms (pincode: 7hms)&lt;br /&gt;
&lt;br /&gt;
* 2018-11-02 update, based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 Desktp&lt;br /&gt;
::::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_16.04&lt;br /&gt;
::::Google Drive : https://drive.google.com/file/d/1YzdkY8i-IsXzXLkbPCPNbAuhYbHmUwgv/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1XhOJBQtPkhvidjgipFNdzg&lt;br /&gt;
::::md5sum : 3564f0d3de9936aa26b93eaf027703a0&lt;br /&gt;
&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 AARCH64 Kernel 3.10&lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_aarch64_16.04&lt;br /&gt;
::::Google Drive : Chttps://drive.google.com/file/d/1MglySZLvquRPu1Wj8oLwdKBkFnRzLUL-/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1_ZTDCuL9QZf6qrqaE4gbgQ&lt;br /&gt;
::::md5sum : 7422e02daa01bff6de808490e89b436e&lt;br /&gt;
&lt;br /&gt;
::BPI-M64 Ubuntu 16.04 AARCH64 Kernel 4.4 &lt;br /&gt;
::::features Map:http://wiki.banana-pi.org/M64_Image_Map#Kernel_4.4.89&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1g_m1NLn1-wUQ8jjPKEAwQcSj4d4P9vRP/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1JmKQGRKvJ9DwL_ij0K79FA&lt;br /&gt;
::::md5sum : ea9bba6ab7fc78f7b8478bfd013a9b50&lt;br /&gt;
&lt;br /&gt;
:: forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-ubuntu16-04-desktop-aarch64-release-2018-11-1/7159/1&lt;br /&gt;
&lt;br /&gt;
::Debian 9.5 AARCH64 Kernel 3.10&lt;br /&gt;
&lt;br /&gt;
::::Features Map: http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Image Links: Google Drive : Coming soon&lt;br /&gt;
::::Baidu Drive: https://pan.baidu.com/s/1DJd7CGAT0NiijKfOBq9J4Q&lt;br /&gt;
::::md5sum: 71fe25c1922c7f9ef81bb88e0f544de6&lt;br /&gt;
&lt;br /&gt;
*2018-4-17 update Ubuntu 16.04.4 with linux kernel 4.4.89 &lt;br /&gt;
::image name:2018-04-17-ubuntu-16.04-mate-desktop-demo3-k4.4.89-vdpau-3-mic-docker-bpi-r18-avs-aarch64-sd-emmc.img.zip&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1dlfo9LGNcrc-_cpKd1uJnrNx0PdonBnK&lt;br /&gt;
::MD5: 4b7e163d260e58a39ba8905e7ed39943&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-r18-avs-new-image-ubuntu-16-04-4-with-linux-kernel-4-4-89-2018-4-17/5435&lt;br /&gt;
&lt;br /&gt;
*2018-09-18 This release is for banana pi M64 board which is based on Allwinner A64, We release three Images, Ubuntu 16.04 Desktop &amp;amp; Android is based on kernel 3.10.&lt;br /&gt;
::Features Map ：http://wiki.banana-pi.org/M64_Image_Map#Ubuntu_Desktop_16.04&lt;br /&gt;
::Google Drive : &lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1wANJ4SwfNwKtBcd02WcbWA&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-release-2018-09-18/6796&lt;br /&gt;
&lt;br /&gt;
*2018-08-17 update Ubuntu 16.04 Server kernel 3.10.105&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1K-B4u8jGcv17s3I9v-Pr0xv5u5txvfok&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1HcrR8NsL9_1RwbZNa7uwmg&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-a64-new-image-android-8-1-ubuntu-release-2018-08-17/6531&lt;br /&gt;
&lt;br /&gt;
*2017-08-14 update based on ubuntu 16.04.3 LTS Mate Desktop (64-bit),support BPI-M64 kernel 3.10.105&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/0B_YnvHgh2rwjN1h1U0xDYUxET00/view?usp=sharing &lt;br /&gt;
::baidu cloud: http://pan.baidu.com/s/1pLkbdTT&lt;br /&gt;
::MD5: ae34baa840874276858d936a7ca85c4f&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-2017-08-14-ubuntu-16-04-mate-desktop-beta-aarch64-bpi-m64-sd-emmc/3695&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim64_bullseye_edge_5.19.7_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1UUbn24l3q_OsVP4XWT6eVQN531tHPzX0/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1vFR9sUR0FhWgS1pemk9lTg?pwd=ina6 (pincode: ina6)&lt;br /&gt;
&lt;br /&gt;
*2018-11-2 update , This release is for banana pi M64 board which is based on Allwinner A64, We release two Images, Debian 9.5 AARCH64 is based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
&lt;br /&gt;
::M64 Debian 9.5 AARCH64 Kernel 3.10&lt;br /&gt;
::::Features Map : * http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Google driver : https://drive.google.com/file/d/10qGv2gVrSgwXMBLDsCF0nQFc9EJnnkeS/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1DJd7CGAT0NiijKfOBq9J4Q&lt;br /&gt;
::::md5sum : 71fe25c1922c7f9ef81bb88e0f544de6&lt;br /&gt;
&lt;br /&gt;
::M64 Debian 9.5 AARCH64 Kernel 4.4 &lt;br /&gt;
::::Features Map:  *  http://wiki.banana-pi.org/M64_Image_Map#Debian_9.5_AARCH64&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/17fh3YY6cwOzHMsqwnRQRTu9cXjKU4_tV/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1sOR6WFz2U9MT0ltq6zYnJA&lt;br /&gt;
::::md5sum : f3c2391b0232178018fda7ebfd64b14c&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-debian-9-5-aarch64-release-2018-11-02/7166&lt;br /&gt;
&lt;br /&gt;
*2017-08-13 debian 8.9 jessie Mate Desktop (64-bit),support BPI-M64 kernel 3.10.105&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjazlNRTRHei1NbmM/view?usp=sharing&lt;br /&gt;
::baidu cloud:http://pan.baidu.com/s/1eSeTQeA&lt;br /&gt;
::MD5: 9ddf067457ebaf193de63c5c7141446a&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bpi-m64-new-image-2017-08-13-debian-8-jessie-mate-desktop-preview-aarch64-bpi-m64-sd-emmc/3694&lt;br /&gt;
&lt;br /&gt;
===Armbian===&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim64_jammy_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim64_jammy_edge_6.1.11_xfce_desktop.img.xz&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m64-new-armbian-image/15161&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[https://www.armbian.com/bananapi-m64/ Armbian Image] is base on Linux Mainline kernel&lt;br /&gt;
&lt;br /&gt;
=== Raspbian===&lt;br /&gt;
&lt;br /&gt;
*2018-11-06 update : This release is for banana pi M64 board which is based on Allwinner A64, We release two Images, Raspbian 9.4 is based on kernel 3.10 &amp;amp; kernel 4.4.&lt;br /&gt;
::BPI-M64 Raspbian 9.4 Kernel 3.10&lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Raspbian_9.4_AARCH64&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1qoKCVDgiuEj0IVEzuPgzuFLjFR9hTLH8/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1MlIzQRpjs_soBDXOKf8NAw&lt;br /&gt;
::::md5sum : e321c6dbb096a0348fceb9d4a0b6c210&lt;br /&gt;
::BPI-M64 Raspbian 9.4 Kernel 4.4 &lt;br /&gt;
::::Features Map : http://wiki.banana-pi.org/M64_Image_Map#Kernel_4.4.89_4&lt;br /&gt;
::::Google Drive :  https://drive.google.com/file/d/1WnsHKnbI_FWQVkHQmbCcJ3yJ38oWaHGy/view&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1Bu-xiqiYsnau_xZp8-QEkw&lt;br /&gt;
::::md5sum : 1d4f00680e6869e2c4e66e205e61d93d&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m64-new-images-raspbian-9-4-kernel-3-10-4-4-release-2018-11-06/7195&lt;br /&gt;
&lt;br /&gt;
===Fedora Linux===&lt;br /&gt;
*BPI-M64 fedora image download(not support desktop): fedora 31 with grub (u-boot-2019.07 + kernel 5.3.0) &lt;br /&gt;
::https://drive.google.com/file/d/1dIr943Ke28lEtCDpy8cI3q1dBUtHymJP/view?usp=drivesdk&lt;br /&gt;
::https://drive.google.com/file/d/1F3nYOw9AiLLaz8be0umz_9nlnhDP3t0s/view?usp=drivesdk&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-new-image-fedora-31-with-grub-u-boot-2019-07-kernel-5-3-0/9938&lt;br /&gt;
&lt;br /&gt;
===Manjaro===&lt;br /&gt;
*2019-01-15 update,BananaPi BPI-M64 Support Run Manjaro AArch64 System&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/18drwPBFKAzf4lFe6IPjaPA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1Lu8xw4sAVyiHJT4eYcolNTAIKG154gm6&lt;br /&gt;
::Bpi Ftp Server: https://dev.banana-pi.org.cn/Image/BPI-M64/Manjaro/&lt;br /&gt;
::md5sum : 8c9964fbd80836228c72fa205eb62f78&lt;br /&gt;
::username: manjaro/root&lt;br /&gt;
::password: bananapi&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/bananapi-bpi-m64-new-image-manjaro-aarch64-system-2019-01-16/7696&lt;br /&gt;
&lt;br /&gt;
===FreeBSD===&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
===Clonezilla===&lt;br /&gt;
&lt;br /&gt;
*Clonezilla support arm64 (Banana Pi BPI-M64),Thanks to Steven Shiau (NCHC Free Software Labs in Taiwan) &amp;amp; https://clonezilla.org/ 1, this image just for test .&lt;br /&gt;
*image download:https://drive.google.com/file/d/15oj0RjoU1TPC-jOXJ2bfhLb3vAiMf7p2/view&lt;br /&gt;
*discuss on forum: http://forum.banana-pi.org/t/bpi-m64-new-image-clonezilla-support-arm64-on-bpi-m64/10789&lt;br /&gt;
&lt;br /&gt;
===Others===&lt;br /&gt;
* others image ,you can download at forum ： http://forum.banana-pi.org/c/BPI-M64/M63image&lt;br /&gt;
&lt;br /&gt;
==Win 10 IoT==&lt;br /&gt;
&lt;br /&gt;
* 2017-1-13 updae Win10 IoT Core beta0.2&lt;br /&gt;
::baidu cloud :http://pan.baidu.com/s/1c2ce100&lt;br /&gt;
&lt;br /&gt;
*Win10 IoT Core 10586 beta0.1&lt;br /&gt;
::download link : https://drive.google.com/open?id=0B_YnvHgh2rwjODJOSS1TdkRvcEk&lt;br /&gt;
::baidu link : http://pan.baidu.com/s/1dEQyGgD&lt;br /&gt;
::MD5: 1c09118cd45bf0c3b61d1846710a3649&lt;br /&gt;
&lt;br /&gt;
*BPI-M64 win10 IoT: https://catalog.azureiotsolutions.com/details?title=Allwinner_Banana_Pi_BPI_M64&amp;amp;source=all-devices-page&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
*1,How-to use ubuntu system to support lcd7**?&lt;br /&gt;
::1.&amp;quot;vi  /media/pi/BPI-BOOT/bananapi/bpi-m64/linux/lcd7/uEnv.txt&amp;quot;&lt;br /&gt;
::2.If you use HC070TG lcd7 screen, change &amp;quot;touch=gt9xxnew_ts&amp;quot; But if you use S070WV20 lcd7 screen, you don't need to change.&lt;br /&gt;
::3. &amp;quot;bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m64/u-boot-with-dtb-bpi-m64-lcd7-8k.img.gz&amp;quot;&lt;br /&gt;
::4.reboot&lt;br /&gt;
::[[File:BPI-M64_LCD7.png]]&lt;br /&gt;
::For more operation details please see Wiki: http://wiki.banana-pi.org/Getting_Started_with_M64&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M2%2B&amp;diff=14214</id>
		<title>Banana Pi BPI-M2+</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M2%2B&amp;diff=14214"/>
				<updated>2023-03-22T06:54:22Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M2%2B]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2+_2.jpg|thumb|Overview: Allwinner H3]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2+_3.jpg|thumb|Overview: back]]&lt;br /&gt;
[[File:Bpi-m2-plus-02.JPG|thumb|Overview:3D design]]&lt;br /&gt;
[[File:BPI-M2+_case.jpg|thumb|[[Case]] BPI-M2+ Premium Aluminum Enclosure]]&lt;br /&gt;
[[File:Newwork_scu.JPG|thumb|BPI-4.0 OEM&amp;amp;ODM [[Successful case]] H3 for Network security information analysis instrument]]&lt;br /&gt;
[[File:NEW_eBlocker_Family_Shop_money_back.png|thumb|BPI-4.0 OEM&amp;amp;ODM [[Successful case]]:H3 for eBlocker VPN router]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design,same size and inerface as BPI-M2+]]&lt;br /&gt;
&lt;br /&gt;
Banana PI BPI-M2+ is the open source hardware platform, use Alliwnner H3 (option H2+ chip and H5 chip ) chip on board. and mini size only 65mm*65mm,&lt;br /&gt;
&lt;br /&gt;
PBI-M2 hardware: 1Ghz ARM7 quad-core processor, 1GB DDR3 SDRAM, 8G eMMC flash on board,and SDIO wifi&amp;amp;BT 4.0 moodule on board.Gigabit ethrnet.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-M2+.jpg]]&lt;br /&gt;
&lt;br /&gt;
BPI-M2+ series run Android,Debian linux,Ubuntu linux, Raspberry Pi image and others image. Banana PI,it can easily run with the game it support 1080P high definition video output and 4K support, the GPIO compatible with Raspberry Pi B+ .&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M2+ not support sata port, so you need use USB for hardisk&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner H3 Quad-core 1.2GHz Cortex-A7 (option H2+ H5).&lt;br /&gt;
* 1GB DDR3&lt;br /&gt;
* 8GB eMMC onboard&lt;br /&gt;
* HDMI out&lt;br /&gt;
* WiFi and BlueTooth onboard&lt;br /&gt;
* 10/100/1000Mbps Ethernet Port&lt;br /&gt;
* CSI camera interface&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Quick Start Banana pi SBC]]&lt;br /&gt;
*[[Getting Start with M2P]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2plus_800.jpg]]&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;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana Pi M2+(Plus)'''&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! CPU&lt;br /&gt;
| H3 Quad-core Cortex-A7 H.265/HEVC 4K&lt;br /&gt;
|-&lt;br /&gt;
! GPU&lt;br /&gt;
| Mali400MP2 GPU @600&amp;amp;nbsp;MHz,Supports OpenGL ES 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Memory&lt;br /&gt;
| 1GB DDR3 (shared with GPU)&lt;br /&gt;
|-&lt;br /&gt;
! Flash&lt;br /&gt;
| 8GB eMMC flash onboard&lt;br /&gt;
|-&lt;br /&gt;
! Network&lt;br /&gt;
| 10/100/1000 Ethernet &lt;br /&gt;
|-&lt;br /&gt;
! WIFI&amp;amp;BT&lt;br /&gt;
| SDIO AP6212 for Wifi &amp;amp;BT 4.0（option AP6181 AP6335）&lt;br /&gt;
|-&lt;br /&gt;
! Video Input&lt;br /&gt;
| A CSI input connector Camera:1 Supports 8-bit YUV422 CMOS sensor interface,2 Supports CCIR656 protocol for NTSC and PAL, 3 Supports SM pixel camera sensor, 4 Supports video capture solution up to 1080p@30fps&lt;br /&gt;
|-&lt;br /&gt;
! Video Outputs&lt;br /&gt;
| Supports HDMI output with HDCP, Supports HDMI CEC, Supports HDMI 30 function, Integrated CVBS, Supports simultaneous output of HDMI and CVBS&lt;br /&gt;
|-&lt;br /&gt;
! Audio Outputs&lt;br /&gt;
| HDMI&lt;br /&gt;
|-&lt;br /&gt;
! Power &lt;br /&gt;
| 5V/2A DC input can supply power, but USB OTG input don’t supply power&lt;br /&gt;
|-&lt;br /&gt;
! USB 2.0 ports&lt;br /&gt;
| two USB 2.0 HOST, one USB 2.0 OTG&lt;br /&gt;
|-&lt;br /&gt;
! GPIO&lt;br /&gt;
| 40 Pins Header,compatible with Raspberry Pi B+&lt;br /&gt;
|-&lt;br /&gt;
! LED&lt;br /&gt;
| Power led &amp;amp; Status led&lt;br /&gt;
|-&lt;br /&gt;
! IR&lt;br /&gt;
| IR input on board&lt;br /&gt;
|-&lt;br /&gt;
! OS&lt;br /&gt;
| Android, Ubuntu, Debian, Raspberry Pi Image&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M2+ (BPI-M2 Plus) has a 40-pin GPIO header that matches that of the Model Raspberry Pi 3. Following is the Banana Pi GPIO Pinout:&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M2+'''&lt;br /&gt;
|-&lt;br /&gt;
|  GPIO Pin Name || Default Function || Function2：GPIO || Function3 &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P01 || VCC-3V3 || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P02 || VCC-5V || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P03 || TWI0-SDA || PA12-EINT12 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P04 || VCC-5V || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P05 || TWI0-SCK || PA11-EINT11 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P06 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P07 || PWM1 || PA6-EINT6 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P08 || UART3-TX || PA13-EINT13 || SPI1-CS &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P09 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P10 || UART3-RX || PA14-EINT14 || SPI1-CLK &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P11 || UART2-RX || PA1-EINT1 || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P12 || UART3-CTS || PA16-EINT16 || SPI1-MISO &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P13 || UART2-TX || PA0-EINT0 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P14 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P15 || UART2-CTS || PA3-EINT3 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P16 || UART3-RTS || PA15-EINT15 || SPI1-MOSI &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P17 || VCC-3V3 || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P18 || PC4 || PC4 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P19 || SPI0-MOSI || PC0 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P20 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P21 || SPI0-MISO || PC1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P22 || UART2-RTS || PA2-EINT2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P23 || SPI0-CLK || PC2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P24 || SPI0-CS || PC3 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P25 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P26 || PC7 || PC7 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P27 || TWI1-SDA || PA19-EINT19 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P28 || TWI1-SCK || PA18-EINT18 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P29 || PA7-EINT7 || PA7-EINT7 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P30 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P31 ||PA8-EINT8 || PA8-EINT8 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P32 || PL2-S-EINT2 || PL2-S-EINT2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P33 || PA9-EINT9 || PA9-EINT9 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P34 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P35 || PA10-EINT10 || PA10-EINT10 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P36 || PL4-S-EINT4 || PL4-S-EINT4 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P37 || PA17-EINT17 || PA17-EINT17 || SPDIF-OUT &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P38 || PA21-EINT21 || PA21-EINT21 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P39 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P40 || PA20-EINT20 || PA20-EINT20 ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 24-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CSI″.&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;4&amp;quot;| '''CSI Camera PIN of Banana pi BPI-M2+'''&lt;br /&gt;
|-&lt;br /&gt;
|  CSI Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P01 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P02 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P03 || CSI0-SDA || PE13 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P04 || CSI0-AVDD ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P05 || CSI0-SCK || PE12 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P06 || CSI0-Reset || PE14 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P07 || CSI0-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P08 || CSI0-PWDN || PE15 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P09 || CSI0-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P10 || CSI0-DVDD ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P11 || CSI0-DOVDD ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P12 || CSI0-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P13 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P14 || CSI0-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P15 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P16 || CSI0-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P17 || CSI0-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P18 || CSI0-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P19 || CSI0-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P20 || CSI0-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P21 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P22 || CSI0-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P23 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P24 || CSI0-DOVDD ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper CON3 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Uart PIN of Banana pi BPI-M2+'''&lt;br /&gt;
|-&lt;br /&gt;
|  CON3 Pin Name || Default Function || GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CON3 P03 || UART0-TXD || PA4 &lt;br /&gt;
|-&lt;br /&gt;
|  CON3 P02 || UART0-RXD || PA5 &lt;br /&gt;
|-&lt;br /&gt;
|  CON3 P01 || GND ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hardware V1.2 Version ==&lt;br /&gt;
&lt;br /&gt;
BPI-M2+ V1.2 hardware version add PMU Voltage regulation design&lt;br /&gt;
&lt;br /&gt;
How to check BPI-M2+ V1.2 hardware version:&lt;br /&gt;
&lt;br /&gt;
[[File:V1.2_hardware_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
BPi-M2+ V1.2 modification&lt;br /&gt;
*1,PL0 Instead the drop-down 10K，As a hardware version identification（V1.1 is pull up）&lt;br /&gt;
*2,PL1 Change to voltage regulation GPIO&lt;br /&gt;
[[File:V1.2_hardware_3.png]]&lt;br /&gt;
&lt;br /&gt;
voltage regulation schematic diagram:&lt;br /&gt;
&lt;br /&gt;
[[File:V1.2_hardware_4.png]]&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
[[OpenCV 3.4x on BananaPi]]&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
&lt;br /&gt;
== source code==&lt;br /&gt;
*linux kernel 4.4 on github :https://github.com/BPI-SINOVOIP/BPI-M2P-bsp-4.4&lt;br /&gt;
*Linux kernel 3.4 on bithub:https://github.com/BPI-SINOVOIP/BPI-M2P-bsp&lt;br /&gt;
&lt;br /&gt;
== documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
*How To Change The Boot Logo：http://forum.banana-pi.org/t/how-to-change-the-boot-logo/7660&lt;br /&gt;
*BPI-M2+ V1.2 schematic diagram&lt;br /&gt;
::google drive: [https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing  google driver]&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1vjBURLzFF2LYCe8CBcs9Mg&lt;br /&gt;
* BPI-M2+ V1.1 schematic diagram: https://drive.google.com/file/d/0B4PAo2nW2KfnMW5sVkxWSW9qa28/view?usp=sharing&lt;br /&gt;
* DXF file google download link :[https://drive.google.com/file/d/0B4PAo2nW2KfnaDRVLUpvV3hIVUk/view?usp=sharing BPI-M2+ DXF file]&lt;br /&gt;
* 3D design file google download link: [https://drive.google.com/file/d/0B4PAo2nW2KfnVV8zaDhYazRvOU0/view?usp=sharing BPI-M2+ 3D design]&lt;br /&gt;
* BPI-M2+ BT Lab test :[https://bananapi.gitbooks.io/bpi-m2-/content/en/bpi-m2+bt40testreport.html BPI-M2+ BT Lab test report]&lt;br /&gt;
* BPI-M2+ WIFI Lab test :[https://bananapi.gitbooks.io/bpi-m2-/content/en/bpi-m2+wifilabtest.html BPI-M2+ WIFI Lab test report]&lt;br /&gt;
* Validation test :[https://bananapi.gitbooks.io/bpi-m2-/content/en/bpi-m2+validationtestreport.html  BPI-M2+ validation test report]&lt;br /&gt;
* CE FCC RoHS : [https://bananapi.gitbooks.io/bpi-m2-/content/en/bpim2+cefccrohscertification.html BPI-M2+ CE,FCC,RoHS ] &lt;br /&gt;
* Allwinner documents:&lt;br /&gt;
** allwinner H3 chip doc baidu link: https://pan.baidu.com/s/1qTULll2CR02d0Hw9itq1rw&lt;br /&gt;
** Allwinner H2+ chip doc baidu link: https://pan.baidu.com/s/1TGMYr3rhizfhlg5hl6hLyg&lt;br /&gt;
*Banana Pi M2 Plus - Unboxing e apresentação da placa.: https://www.youtube.com/watch?v=_87uHfyMIUA&amp;amp;feature=youtu.be&lt;br /&gt;
*Sinovoip Banana Pi M2+ - linux-sunxi.org wiki : http://linux-sunxi.org/Sinovoip_Banana_Pi_M2%2B&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Android 7.0===&lt;br /&gt;
2018-10-20 android 7.0 share by https://www.facebook.com/vitor1104&lt;br /&gt;
*image download link : http://setordigital.blogspot.com/2018/10/android-70-nougat-para-banana-pi-m2.html&lt;br /&gt;
::how to install : http://setordigital.blogspot.com/2017/01/como-instalar-o-android-no-orange-pi.html&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m2-new-image-android-7-0-nougat-2018-10-20/7082&lt;br /&gt;
&lt;br /&gt;
2018-06-30 update HDMI-Version &lt;br /&gt;
* Image Link: &lt;br /&gt;
:: Google Drive : https://drive.google.com/file/d/1TY4CgFxCT3pR6S2nw5w-_XkNsW9fPBhI&lt;br /&gt;
:: Baidu Drive :  https://pan.baidu.com/s/1ETpbauIezp1228n7kdWo4A&lt;br /&gt;
:: Forum thread:   http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-image-android7-0-release-2018-6-30/6147&lt;br /&gt;
:: How to Google registration: https://www.google.com/android/uncertified/ Android7.0 needs to register devices by youself&lt;br /&gt;
&lt;br /&gt;
===Android 4.4 ===&lt;br /&gt;
* Image Link: &lt;br /&gt;
:: Google Drive: https://drive.google.com/open?id=0B_YnvHgh2rwjOWg4ZzBnR0VieFU &lt;br /&gt;
:: Baidu Drive:  https://pan.baidu.com/s/1gfr7vJ9&lt;br /&gt;
::Forum thread:  http://forum.banana-pi.org/t/bpi-m2-new-image-android-4-4-version-v3/2765&lt;br /&gt;
&lt;br /&gt;
===H3Droid android===&lt;br /&gt;
&lt;br /&gt;
*H3Droid 1.3.5 version image download: https://h3droid.com/download&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/h3droid-android-development-on-allwinner-h3-chip-project/3459/14&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
*2020-04-23 update, Ubuntu 16.04 Mate Desktop, Ubuntu 16.04 Server, Debian 9 and Raspbian Stretch images, base on kernel 4.4&lt;br /&gt;
::google drive :https://drive.google.com/drive/folders/0B_YnvHgh2rwjNExjUmlRNXdVNUE&lt;br /&gt;
::baidu cloud:  https://pan.baidu.com/s/1Tay4F7nJJV1MzI_aO4NjHw pincode：ih9p&lt;br /&gt;
&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim2zero_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1-BXzCnnXr9NvOsfBr646ZGOicQ7Kv9-o/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/19xg6YfySrUR6jclXYrzdOg?pwd=qfys (pincode: qfys)&lt;br /&gt;
&lt;br /&gt;
*Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google drive: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
*2018-5-17 update : Ubuntu 16.04 V1.1  new eMMC and PMU support, base on kernel 3.4&lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive: https://drive.google.com/file/d/1YOiOksFTYwCj0Ow11fiGkb74yEsPpbHJ/view&lt;br /&gt;
::::baidu cloud : https://pan.baidu.com/s/1Jf-AZF6a4jZugqqx2QXH3Q&lt;br /&gt;
::Source Code Github Repo: https://github.com/BPI-SINOVOIP/BPI-M2P-bsp&lt;br /&gt;
::Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/banana-pi-bpi-m2p-new-image-release-ubuntu-16-04-v1-1/5719&lt;br /&gt;
&lt;br /&gt;
*2017-07-14 update : ubuntu-16.04-mate-desktop, base on kernel 3.4&lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive: Google Drive: https://drive.google.com/open?id=1dlfo9LGNcrc-_cpKd1uJnrNx0PdonBnK&lt;br /&gt;
::::baidu cloud : http://pan.baidu.com/s/1dEX2TDR&lt;br /&gt;
::Source Code Github Repo: https://github.com/BPI-SINOVOIP/BPI-M2P-bsp&lt;br /&gt;
:: Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/bpi-m2-new-image-ubuntu-16-04-mate-desktop-beta-bpi-m2p-sd-emmc-2017-07-14/3572&lt;br /&gt;
&lt;br /&gt;
*2018-11-09 update ,This release is for banana pi M2P board which is based on Allwinner H3, We release three images, Ubuntu 16.04, Raspbian 9 and Debian 9, base on kernel 4.4.&lt;br /&gt;
::M2P Ubuntu 16.04&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M2P-H3_Image_Map#Kernel_4.4.55&lt;br /&gt;
::Google Drive :  https://drive.google.com/file/d/1dgrtVqbR4I6xYlSfWBJeGwh8xI79L1PD/view?usp=sharing&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1RHZ-b7PcY9ybeiy95C_VIg&lt;br /&gt;
::md5sum : 59f2cc29ce045c15e51fac20ff6924aa&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-demo-images-release-with-kernel-4-4-2018-11-09/7210&lt;br /&gt;
&lt;br /&gt;
*2018-01-02 update : Ubuntu image, base on Kernel 4.4&lt;br /&gt;
::image Link: https://mega.nz/#!haRDBJLC!vE9r-b34WhkPGXt69DJjPdQ65ONuCsuM9RCjnvCUE1s&lt;br /&gt;
::Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/bpi-m2-new-image-bpi-m2-kernel-4-4-55/4577&lt;br /&gt;
&lt;br /&gt;
=== Armbian image ===&lt;br /&gt;
&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim2plus_bullseye_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim2plus_bullseye_edge_6.0.10_xfce_desktop.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim2plus_jammy_edge_6.1.11_xfce_desktop.img.xz&lt;br /&gt;
::https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m2-plus-new-armbian-image/15160&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapim2plus_bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1xnyen2FlP3b5kpIC8C70fIT2RUPaeQxo/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/11z-4c1Gj74D7hrT7R-_xhg?pwd=8888 (pincode: 8888) &lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m2-plus-new-image-release-armbian-bullseye/14449&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Armbain have support BPI-M2+，Armbian Bionic and Armbian Stretch version&lt;br /&gt;
::image download ： https://www.armbian.com/banana-pi-m2-plus/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Armbian 5.51 debin Bananapi-m2+ build by BPI 2018-07-12&lt;br /&gt;
::google download : https://drive.google.com/open?id=1H_KEVWTRwgSgal5gt8jKqBT-y4IqIX84&lt;br /&gt;
::baidu download : https://pan.baidu.com/s/1OaBRKHPGqjgat0mntHyYxg&lt;br /&gt;
::discuss on forum : http://forum.banana-pi.org/t/bpi-m2-new-image-2018-07-12-armbian-5-51-debin-bananapi-m2-build-by-bpi-2018-07-12/6265&lt;br /&gt;
&lt;br /&gt;
*Armbian Xenial and Armbian Jessie &lt;br /&gt;
::armbin image download: https://www.armbian.com/banana-pi-m2-plus/&lt;br /&gt;
&lt;br /&gt;
=== Openelec Kodi ===&lt;br /&gt;
*Openelec Kodi 16.0 (xbmc) &lt;br /&gt;
::file name:http:OpenELEC-H3.arm-7.0-devel-20161026220508-r23113-g64b34b3-bpim2p.img.gz  &lt;br /&gt;
::download link: http://down.nu/images/2016-10-26&lt;br /&gt;
::baidu cloud:http://pan.baidu.com/s/1mhMTEnI&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/openelec-kodi-16-0-xbmc-on-the-banana-pi-bpi-m2-project/1600&lt;br /&gt;
&lt;br /&gt;
===Debian linux===&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim2plus_bullseye_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/17j0YW8SJKpOG2YKRCuGLKXYHuq1wLSAh/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1prE9mlVuErHidWNJFynKzA?pwd=8ikd (pincode: 8ikd)&lt;br /&gt;
&lt;br /&gt;
*2019-09-18 update,Banana Pi BPI-M2+ boot debian 10 with grub (u-boot-2019.07 + kernel 5.1.1)&lt;br /&gt;
::google drive: https://drive.google.com/file/d/1ZQx732W8u83LECsFqCT9DtEPiQati-z6/view?usp=sharing&lt;br /&gt;
::&lt;br /&gt;
*2018-11-09 update ,This release is for banana pi M2P board which is based on Allwinner H3, We release three images, Ubuntu 16.04, Raspbian 9 and Debian 9 with kernel 4.4.&lt;br /&gt;
::M2P Debian 9 Features Map :http://wiki.banana-pi.org/M2P-H3_Image_Map#Kernel_4.4.55_2&lt;br /&gt;
::Google Drive :  https://drive.google.com/file/d/13HTp2smKPPK_4byHCI_T3Atg8_NfyQ5S/view?usp=sharing&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1h3TSAzY8ootahOjxkoTG1Q&lt;br /&gt;
::md5sum : f979f1a68d759e804e0a90654f4577f1&lt;br /&gt;
::forum pthread :http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-demo-images-release-with-kernel-4-4-2018-11-09/7210&lt;br /&gt;
&lt;br /&gt;
=== Raspbian ===&lt;br /&gt;
*2018-11-09 update ,This release is for banana pi M2P board which is based on Allwinner H3, We release three images, Ubuntu 16.04, Raspbian 9 and Debian 9 with kernel 4.4.&lt;br /&gt;
::M2P Raspbian 9 Features Map:http://wiki.banana-pi.org/M2P-H3_Image_Map#Kernel_4.4.55_3 1&lt;br /&gt;
::Google Drive :https://drive.google.com/open?id=182a1iSYyW8UMJHOyzbu35RfLi-Wn5H8h &lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1g5Suk-Ybd3jdhdX82llBwg&lt;br /&gt;
::md5sum : 53ec3986ec3df84fa2548d0742f700fa&lt;br /&gt;
::fourm pthread ：http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-demo-images-release-with-kernel-4-4-2018-11-09/7210&lt;br /&gt;
&lt;br /&gt;
*2018-5-22 update : Raspbian jessie 8.0 kernel 3.4&lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive: https://drive.google.com/open?id=1-jQNZrJQi_KajZre6c6mbt5bHilF0h1x&lt;br /&gt;
::::baidu cloud :https://pan.baidu.com/s/16KJbtwjT_PBCZJkYV79_ag&lt;br /&gt;
::Source Code Github Repo: https://github.com/BPI-SINOVOIP/BPI-M2P-bsp&lt;br /&gt;
::Forum thread:&lt;br /&gt;
::http://forum.banana-pi.org/t/banana-pi-bpi-m2p-new-image-release-raspbian-jessie-8-0-2018-5-22/5788&lt;br /&gt;
&lt;br /&gt;
* 2018-5-22 update : Raspbian 8.0 V1.1 new eMMC and PMU&lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive: https://drive.google.com/open?id=1-jQNZrJQi_KajZre6c6mbt5bHilF0h1x&lt;br /&gt;
::::baidu cloud : https://pan.baidu.com/s/16KJbtwjT_PBCZJkYV79_ag&lt;br /&gt;
::Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/banana-pi-bpi-m2p-new-image-release-raspbian-jessie-8-0-2018-5-22/5788&lt;br /&gt;
&lt;br /&gt;
===OpenSUSE===&lt;br /&gt;
*OpenSUSE have official support Banana Pi BPI-M2+&lt;br /&gt;
[[File:Opensuse_m2+.png]]&lt;br /&gt;
::image download : http://download.opensuse.org/ports/armv7hl/factory/images/&lt;br /&gt;
&lt;br /&gt;
===FreeBSD===&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
===Lakka TV===&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
===Dietpi ===&lt;br /&gt;
*Dietpi have official support BPI-M2+ : http://forum.banana-pi.org/t/dietpi-have-official-support-bpi-m2/1882&lt;br /&gt;
&lt;br /&gt;
===RetroPie===&lt;br /&gt;
*RetroPie for Banana Pi BPI-M2+/M2 Zero v.1.2.1 beta&lt;br /&gt;
::image download link: http://www.nintendont.it/download/nintendont-retropie-banana-pi-m2-plus-v-1-1-0-beta/&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/bpi-m2-zero-new-image-retropie-for-banana-pi-m2-zero-v-1-2-1-beta/4889&lt;br /&gt;
&lt;br /&gt;
===retrorangepi===&lt;br /&gt;
&lt;br /&gt;
* retrorangepi support BPI-M2+ BPI-M2 Zero : http://retrorangepi.download/download/index2.html&lt;br /&gt;
&lt;br /&gt;
==Others image==&lt;br /&gt;
&lt;br /&gt;
BPI-M2+ also support other image. such as Centos Kali,Gentoo .... please choose the newset image .&lt;br /&gt;
&lt;br /&gt;
*others image download link : http://forum.banana-pi.org/c/Banana-pi-BPI-M2/M2image&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M2%2B&amp;diff=14213</id>
		<title>Banana Pi BPI-M2+</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M2%2B&amp;diff=14213"/>
				<updated>2023-03-22T06:54:01Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M2%2B]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2+_2.jpg|thumb|Overview: Allwinner H3]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2+_3.jpg|thumb|Overview: back]]&lt;br /&gt;
[[File:Bpi-m2-plus-02.JPG|thumb|Overview:3D design]]&lt;br /&gt;
[[File:BPI-M2+_case.jpg|thumb|[[Case]] BPI-M2+ Premium Aluminum Enclosure]]&lt;br /&gt;
[[File:Newwork_scu.JPG|thumb|BPI-4.0 OEM&amp;amp;ODM [[Successful case]] H3 for Network security information analysis instrument]]&lt;br /&gt;
[[File:NEW_eBlocker_Family_Shop_money_back.png|thumb|BPI-4.0 OEM&amp;amp;ODM [[Successful case]]:H3 for eBlocker VPN router]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design,same size and inerface as BPI-M2+]]&lt;br /&gt;
&lt;br /&gt;
Banana PI BPI-M2+ is the open source hardware platform, use Alliwnner H3 (option H2+ chip and H5 chip ) chip on board. and mini size only 65mm*65mm,&lt;br /&gt;
&lt;br /&gt;
PBI-M2 hardware: 1Ghz ARM7 quad-core processor, 1GB DDR3 SDRAM, 8G eMMC flash on board,and SDIO wifi&amp;amp;BT 4.0 moodule on board.Gigabit ethrnet.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-M2+.jpg]]&lt;br /&gt;
&lt;br /&gt;
BPI-M2+ series run Android,Debian linux,Ubuntu linux, Raspberry Pi image and others image. Banana PI,it can easily run with the game it support 1080P high definition video output and 4K support, the GPIO compatible with Raspberry Pi B+ .&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M2+ not support sata port, so you need use USB for hardisk&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner H3 Quad-core 1.2GHz Cortex-A7 (option H2+ H5).&lt;br /&gt;
* 1GB DDR3&lt;br /&gt;
* 8GB eMMC onboard&lt;br /&gt;
* HDMI out&lt;br /&gt;
* WiFi and BlueTooth onboard&lt;br /&gt;
* 10/100/1000Mbps Ethernet Port&lt;br /&gt;
* CSI camera interface&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Quick Start Banana pi SBC]]&lt;br /&gt;
*[[Getting Start with M2P]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M2plus_800.jpg]]&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;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana Pi M2+(Plus)'''&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! CPU&lt;br /&gt;
| H3 Quad-core Cortex-A7 H.265/HEVC 4K&lt;br /&gt;
|-&lt;br /&gt;
! GPU&lt;br /&gt;
| Mali400MP2 GPU @600&amp;amp;nbsp;MHz,Supports OpenGL ES 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Memory&lt;br /&gt;
| 1GB DDR3 (shared with GPU)&lt;br /&gt;
|-&lt;br /&gt;
! Flash&lt;br /&gt;
| 8GB eMMC flash onboard&lt;br /&gt;
|-&lt;br /&gt;
! Network&lt;br /&gt;
| 10/100/1000 Ethernet &lt;br /&gt;
|-&lt;br /&gt;
! WIFI&amp;amp;BT&lt;br /&gt;
| SDIO AP6212 for Wifi &amp;amp;BT 4.0（option AP6181 AP6335）&lt;br /&gt;
|-&lt;br /&gt;
! Video Input&lt;br /&gt;
| A CSI input connector Camera:1 Supports 8-bit YUV422 CMOS sensor interface,2 Supports CCIR656 protocol for NTSC and PAL, 3 Supports SM pixel camera sensor, 4 Supports video capture solution up to 1080p@30fps&lt;br /&gt;
|-&lt;br /&gt;
! Video Outputs&lt;br /&gt;
| Supports HDMI output with HDCP, Supports HDMI CEC, Supports HDMI 30 function, Integrated CVBS, Supports simultaneous output of HDMI and CVBS&lt;br /&gt;
|-&lt;br /&gt;
! Audio Outputs&lt;br /&gt;
| HDMI&lt;br /&gt;
|-&lt;br /&gt;
! Power &lt;br /&gt;
| 5V/2A DC input can supply power, but USB OTG input don’t supply power&lt;br /&gt;
|-&lt;br /&gt;
! USB 2.0 ports&lt;br /&gt;
| two USB 2.0 HOST, one USB 2.0 OTG&lt;br /&gt;
|-&lt;br /&gt;
! GPIO&lt;br /&gt;
| 40 Pins Header,compatible with Raspberry Pi B+&lt;br /&gt;
|-&lt;br /&gt;
! LED&lt;br /&gt;
| Power led &amp;amp; Status led&lt;br /&gt;
|-&lt;br /&gt;
! IR&lt;br /&gt;
| IR input on board&lt;br /&gt;
|-&lt;br /&gt;
! OS&lt;br /&gt;
| Android, Ubuntu, Debian, Raspberry Pi Image&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M2+ (BPI-M2 Plus) has a 40-pin GPIO header that matches that of the Model Raspberry Pi 3. Following is the Banana Pi GPIO Pinout:&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M2+'''&lt;br /&gt;
|-&lt;br /&gt;
|  GPIO Pin Name || Default Function || Function2：GPIO || Function3 &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P01 || VCC-3V3 || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P02 || VCC-5V || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P03 || TWI0-SDA || PA12-EINT12 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P04 || VCC-5V || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P05 || TWI0-SCK || PA11-EINT11 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P06 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P07 || PWM1 || PA6-EINT6 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P08 || UART3-TX || PA13-EINT13 || SPI1-CS &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P09 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P10 || UART3-RX || PA14-EINT14 || SPI1-CLK &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P11 || UART2-RX || PA1-EINT1 || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P12 || UART3-CTS || PA16-EINT16 || SPI1-MISO &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P13 || UART2-TX || PA0-EINT0 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P14 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P15 || UART2-CTS || PA3-EINT3 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P16 || UART3-RTS || PA15-EINT15 || SPI1-MOSI &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P17 || VCC-3V3 || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P18 || PC4 || PC4 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P19 || SPI0-MOSI || PC0 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P20 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P21 || SPI0-MISO || PC1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P22 || UART2-RTS || PA2-EINT2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P23 || SPI0-CLK || PC2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P24 || SPI0-CS || PC3 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P25 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P26 || PC7 || PC7 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P27 || TWI1-SDA || PA19-EINT19 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P28 || TWI1-SCK || PA18-EINT18 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P29 || PA7-EINT7 || PA7-EINT7 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P30 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P31 ||PA8-EINT8 || PA8-EINT8 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P32 || PL2-S-EINT2 || PL2-S-EINT2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P33 || PA9-EINT9 || PA9-EINT9 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P34 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P35 || PA10-EINT10 || PA10-EINT10 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P36 || PL4-S-EINT4 || PL4-S-EINT4 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P37 || PA17-EINT17 || PA17-EINT17 || SPDIF-OUT &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P38 || PA21-EINT21 || PA21-EINT21 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P39 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P40 || PA20-EINT20 || PA20-EINT20 ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 24-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CSI″.&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;4&amp;quot;| '''CSI Camera PIN of Banana pi BPI-M2+'''&lt;br /&gt;
|-&lt;br /&gt;
|  CSI Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P01 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P02 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P03 || CSI0-SDA || PE13 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P04 || CSI0-AVDD ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P05 || CSI0-SCK || PE12 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P06 || CSI0-Reset || PE14 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P07 || CSI0-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P08 || CSI0-PWDN || PE15 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P09 || CSI0-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P10 || CSI0-DVDD ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P11 || CSI0-DOVDD ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P12 || CSI0-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P13 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P14 || CSI0-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P15 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P16 || CSI0-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P17 || CSI0-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P18 || CSI0-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P19 || CSI0-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P20 || CSI0-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P21 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P22 || CSI0-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P23 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P24 || CSI0-DOVDD ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper CON3 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Uart PIN of Banana pi BPI-M2+'''&lt;br /&gt;
|-&lt;br /&gt;
|  CON3 Pin Name || Default Function || GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CON3 P03 || UART0-TXD || PA4 &lt;br /&gt;
|-&lt;br /&gt;
|  CON3 P02 || UART0-RXD || PA5 &lt;br /&gt;
|-&lt;br /&gt;
|  CON3 P01 || GND ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hardware V1.2 Version ==&lt;br /&gt;
&lt;br /&gt;
BPI-M2+ V1.2 hardware version add PMU Voltage regulation design&lt;br /&gt;
&lt;br /&gt;
How to check BPI-M2+ V1.2 hardware version:&lt;br /&gt;
&lt;br /&gt;
[[File:V1.2_hardware_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
BPi-M2+ V1.2 modification&lt;br /&gt;
*1,PL0 Instead the drop-down 10K，As a hardware version identification（V1.1 is pull up）&lt;br /&gt;
*2,PL1 Change to voltage regulation GPIO&lt;br /&gt;
[[File:V1.2_hardware_3.png]]&lt;br /&gt;
&lt;br /&gt;
voltage regulation schematic diagram:&lt;br /&gt;
&lt;br /&gt;
[[File:V1.2_hardware_4.png]]&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
[[OpenCV 3.4x on BananaPi]]&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
&lt;br /&gt;
== source code==&lt;br /&gt;
*linux kernel 4.4 on github :https://github.com/BPI-SINOVOIP/BPI-M2P-bsp-4.4&lt;br /&gt;
*Linux kernel 3.4 on bithub:https://github.com/BPI-SINOVOIP/BPI-M2P-bsp&lt;br /&gt;
&lt;br /&gt;
== documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
*How To Change The Boot Logo：http://forum.banana-pi.org/t/how-to-change-the-boot-logo/7660&lt;br /&gt;
*BPI-M2+ V1.2 schematic diagram&lt;br /&gt;
::google drive: [https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing  google driver]&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1vjBURLzFF2LYCe8CBcs9Mg&lt;br /&gt;
* BPI-M2+ V1.1 schematic diagram: https://drive.google.com/file/d/0B4PAo2nW2KfnMW5sVkxWSW9qa28/view?usp=sharing&lt;br /&gt;
* DXF file google download link :[https://drive.google.com/file/d/0B4PAo2nW2KfnaDRVLUpvV3hIVUk/view?usp=sharing BPI-M2+ DXF file]&lt;br /&gt;
* 3D design file google download link: [https://drive.google.com/file/d/0B4PAo2nW2KfnVV8zaDhYazRvOU0/view?usp=sharing BPI-M2+ 3D design]&lt;br /&gt;
* BPI-M2+ BT Lab test :[https://bananapi.gitbooks.io/bpi-m2-/content/en/bpi-m2+bt40testreport.html BPI-M2+ BT Lab test report]&lt;br /&gt;
* BPI-M2+ WIFI Lab test :[https://bananapi.gitbooks.io/bpi-m2-/content/en/bpi-m2+wifilabtest.html BPI-M2+ WIFI Lab test report]&lt;br /&gt;
* Validation test :[https://bananapi.gitbooks.io/bpi-m2-/content/en/bpi-m2+validationtestreport.html  BPI-M2+ validation test report]&lt;br /&gt;
* CE FCC RoHS : [https://bananapi.gitbooks.io/bpi-m2-/content/en/bpim2+cefccrohscertification.html BPI-M2+ CE,FCC,RoHS ] &lt;br /&gt;
* Allwinner documents:&lt;br /&gt;
** allwinner H3 chip doc baidu link: https://pan.baidu.com/s/1qTULll2CR02d0Hw9itq1rw&lt;br /&gt;
** Allwinner H2+ chip doc baidu link: https://pan.baidu.com/s/1TGMYr3rhizfhlg5hl6hLyg&lt;br /&gt;
*Banana Pi M2 Plus - Unboxing e apresentação da placa.: https://www.youtube.com/watch?v=_87uHfyMIUA&amp;amp;feature=youtu.be&lt;br /&gt;
*Sinovoip Banana Pi M2+ - linux-sunxi.org wiki : http://linux-sunxi.org/Sinovoip_Banana_Pi_M2%2B&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Android 7.0===&lt;br /&gt;
2018-10-20 android 7.0 share by https://www.facebook.com/vitor1104&lt;br /&gt;
*image download link : http://setordigital.blogspot.com/2018/10/android-70-nougat-para-banana-pi-m2.html&lt;br /&gt;
::how to install : http://setordigital.blogspot.com/2017/01/como-instalar-o-android-no-orange-pi.html&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m2-new-image-android-7-0-nougat-2018-10-20/7082&lt;br /&gt;
&lt;br /&gt;
2018-06-30 update HDMI-Version &lt;br /&gt;
* Image Link: &lt;br /&gt;
:: Google Drive : https://drive.google.com/file/d/1TY4CgFxCT3pR6S2nw5w-_XkNsW9fPBhI&lt;br /&gt;
:: Baidu Drive :  https://pan.baidu.com/s/1ETpbauIezp1228n7kdWo4A&lt;br /&gt;
:: Forum thread:   http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-image-android7-0-release-2018-6-30/6147&lt;br /&gt;
:: How to Google registration: https://www.google.com/android/uncertified/ Android7.0 needs to register devices by youself&lt;br /&gt;
&lt;br /&gt;
===Android 4.4 ===&lt;br /&gt;
* Image Link: &lt;br /&gt;
:: Google Drive: https://drive.google.com/open?id=0B_YnvHgh2rwjOWg4ZzBnR0VieFU &lt;br /&gt;
:: Baidu Drive:  https://pan.baidu.com/s/1gfr7vJ9&lt;br /&gt;
::Forum thread:  http://forum.banana-pi.org/t/bpi-m2-new-image-android-4-4-version-v3/2765&lt;br /&gt;
&lt;br /&gt;
===H3Droid android===&lt;br /&gt;
&lt;br /&gt;
*H3Droid 1.3.5 version image download: https://h3droid.com/download&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/h3droid-android-development-on-allwinner-h3-chip-project/3459/14&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
*2020-04-23 update, Ubuntu 16.04 Mate Desktop, Ubuntu 16.04 Server, Debian 9 and Raspbian Stretch images, base on kernel 4.4&lt;br /&gt;
::google drive :https://drive.google.com/drive/folders/0B_YnvHgh2rwjNExjUmlRNXdVNUE&lt;br /&gt;
::baidu cloud:  https://pan.baidu.com/s/1Tay4F7nJJV1MzI_aO4NjHw pincode：ih9p&lt;br /&gt;
&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim2zero_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1-BXzCnnXr9NvOsfBr646ZGOicQ7Kv9-o/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/19xg6YfySrUR6jclXYrzdOg?pwd=qfys (pincode: qfys)&lt;br /&gt;
&lt;br /&gt;
*Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google drive: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
*2018-5-17 update : Ubuntu 16.04 V1.1  new eMMC and PMU support, base on kernel 3.4&lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive: https://drive.google.com/file/d/1YOiOksFTYwCj0Ow11fiGkb74yEsPpbHJ/view&lt;br /&gt;
::::baidu cloud : https://pan.baidu.com/s/1Jf-AZF6a4jZugqqx2QXH3Q&lt;br /&gt;
::Source Code Github Repo: https://github.com/BPI-SINOVOIP/BPI-M2P-bsp&lt;br /&gt;
::Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/banana-pi-bpi-m2p-new-image-release-ubuntu-16-04-v1-1/5719&lt;br /&gt;
&lt;br /&gt;
*2017-07-14 update : ubuntu-16.04-mate-desktop, base on kernel 3.4&lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive: Google Drive: https://drive.google.com/open?id=1dlfo9LGNcrc-_cpKd1uJnrNx0PdonBnK&lt;br /&gt;
::::baidu cloud : http://pan.baidu.com/s/1dEX2TDR&lt;br /&gt;
::Source Code Github Repo: https://github.com/BPI-SINOVOIP/BPI-M2P-bsp&lt;br /&gt;
:: Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/bpi-m2-new-image-ubuntu-16-04-mate-desktop-beta-bpi-m2p-sd-emmc-2017-07-14/3572&lt;br /&gt;
&lt;br /&gt;
*2018-11-09 update ,This release is for banana pi M2P board which is based on Allwinner H3, We release three images, Ubuntu 16.04, Raspbian 9 and Debian 9, base on kernel 4.4.&lt;br /&gt;
::M2P Ubuntu 16.04&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M2P-H3_Image_Map#Kernel_4.4.55&lt;br /&gt;
::Google Drive :  https://drive.google.com/file/d/1dgrtVqbR4I6xYlSfWBJeGwh8xI79L1PD/view?usp=sharing&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1RHZ-b7PcY9ybeiy95C_VIg&lt;br /&gt;
::md5sum : 59f2cc29ce045c15e51fac20ff6924aa&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-demo-images-release-with-kernel-4-4-2018-11-09/7210&lt;br /&gt;
&lt;br /&gt;
*2018-01-02 update : Ubuntu image, base on Kernel 4.4&lt;br /&gt;
::image Link: https://mega.nz/#!haRDBJLC!vE9r-b34WhkPGXt69DJjPdQ65ONuCsuM9RCjnvCUE1s&lt;br /&gt;
::Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/bpi-m2-new-image-bpi-m2-kernel-4-4-55/4577&lt;br /&gt;
&lt;br /&gt;
=== Armbian image ===&lt;br /&gt;
&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim2plus_bullseye_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim2plus_bullseye_edge_6.0.10_xfce_desktop.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim2plus_jammy_edge_6.1.11_xfce_desktop.img.xz&lt;br /&gt;
::https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m2-plus-new-armbian-image/15160&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapim2plus_bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1xnyen2FlP3b5kpIC8C70fIT2RUPaeQxo/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/11z-4c1Gj74D7hrT7R-_xhg?pwd=8888 (pincode: 8888) &lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m2-plus-new-image-release-armbian-bullseye/14449&lt;br /&gt;
&lt;br /&gt;
*Armbain have support BPI-M2+，Armbian Bionic and Armbian Stretch version&lt;br /&gt;
::image download ： https://www.armbian.com/banana-pi-m2-plus/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Armbian 5.51 debin Bananapi-m2+ build by BPI 2018-07-12&lt;br /&gt;
::google download : https://drive.google.com/open?id=1H_KEVWTRwgSgal5gt8jKqBT-y4IqIX84&lt;br /&gt;
::baidu download : https://pan.baidu.com/s/1OaBRKHPGqjgat0mntHyYxg&lt;br /&gt;
::discuss on forum : http://forum.banana-pi.org/t/bpi-m2-new-image-2018-07-12-armbian-5-51-debin-bananapi-m2-build-by-bpi-2018-07-12/6265&lt;br /&gt;
&lt;br /&gt;
*Armbian Xenial and Armbian Jessie &lt;br /&gt;
::armbin image download: https://www.armbian.com/banana-pi-m2-plus/&lt;br /&gt;
&lt;br /&gt;
=== Openelec Kodi ===&lt;br /&gt;
*Openelec Kodi 16.0 (xbmc) &lt;br /&gt;
::file name:http:OpenELEC-H3.arm-7.0-devel-20161026220508-r23113-g64b34b3-bpim2p.img.gz  &lt;br /&gt;
::download link: http://down.nu/images/2016-10-26&lt;br /&gt;
::baidu cloud:http://pan.baidu.com/s/1mhMTEnI&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/openelec-kodi-16-0-xbmc-on-the-banana-pi-bpi-m2-project/1600&lt;br /&gt;
&lt;br /&gt;
===Debian linux===&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim2plus_bullseye_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/17j0YW8SJKpOG2YKRCuGLKXYHuq1wLSAh/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1prE9mlVuErHidWNJFynKzA?pwd=8ikd (pincode: 8ikd)&lt;br /&gt;
&lt;br /&gt;
*2019-09-18 update,Banana Pi BPI-M2+ boot debian 10 with grub (u-boot-2019.07 + kernel 5.1.1)&lt;br /&gt;
::google drive: https://drive.google.com/file/d/1ZQx732W8u83LECsFqCT9DtEPiQati-z6/view?usp=sharing&lt;br /&gt;
::&lt;br /&gt;
*2018-11-09 update ,This release is for banana pi M2P board which is based on Allwinner H3, We release three images, Ubuntu 16.04, Raspbian 9 and Debian 9 with kernel 4.4.&lt;br /&gt;
::M2P Debian 9 Features Map :http://wiki.banana-pi.org/M2P-H3_Image_Map#Kernel_4.4.55_2&lt;br /&gt;
::Google Drive :  https://drive.google.com/file/d/13HTp2smKPPK_4byHCI_T3Atg8_NfyQ5S/view?usp=sharing&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1h3TSAzY8ootahOjxkoTG1Q&lt;br /&gt;
::md5sum : f979f1a68d759e804e0a90654f4577f1&lt;br /&gt;
::forum pthread :http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-demo-images-release-with-kernel-4-4-2018-11-09/7210&lt;br /&gt;
&lt;br /&gt;
=== Raspbian ===&lt;br /&gt;
*2018-11-09 update ,This release is for banana pi M2P board which is based on Allwinner H3, We release three images, Ubuntu 16.04, Raspbian 9 and Debian 9 with kernel 4.4.&lt;br /&gt;
::M2P Raspbian 9 Features Map:http://wiki.banana-pi.org/M2P-H3_Image_Map#Kernel_4.4.55_3 1&lt;br /&gt;
::Google Drive :https://drive.google.com/open?id=182a1iSYyW8UMJHOyzbu35RfLi-Wn5H8h &lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1g5Suk-Ybd3jdhdX82llBwg&lt;br /&gt;
::md5sum : 53ec3986ec3df84fa2548d0742f700fa&lt;br /&gt;
::fourm pthread ：http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-demo-images-release-with-kernel-4-4-2018-11-09/7210&lt;br /&gt;
&lt;br /&gt;
*2018-5-22 update : Raspbian jessie 8.0 kernel 3.4&lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive: https://drive.google.com/open?id=1-jQNZrJQi_KajZre6c6mbt5bHilF0h1x&lt;br /&gt;
::::baidu cloud :https://pan.baidu.com/s/16KJbtwjT_PBCZJkYV79_ag&lt;br /&gt;
::Source Code Github Repo: https://github.com/BPI-SINOVOIP/BPI-M2P-bsp&lt;br /&gt;
::Forum thread:&lt;br /&gt;
::http://forum.banana-pi.org/t/banana-pi-bpi-m2p-new-image-release-raspbian-jessie-8-0-2018-5-22/5788&lt;br /&gt;
&lt;br /&gt;
* 2018-5-22 update : Raspbian 8.0 V1.1 new eMMC and PMU&lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive: https://drive.google.com/open?id=1-jQNZrJQi_KajZre6c6mbt5bHilF0h1x&lt;br /&gt;
::::baidu cloud : https://pan.baidu.com/s/16KJbtwjT_PBCZJkYV79_ag&lt;br /&gt;
::Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/banana-pi-bpi-m2p-new-image-release-raspbian-jessie-8-0-2018-5-22/5788&lt;br /&gt;
&lt;br /&gt;
===OpenSUSE===&lt;br /&gt;
*OpenSUSE have official support Banana Pi BPI-M2+&lt;br /&gt;
[[File:Opensuse_m2+.png]]&lt;br /&gt;
::image download : http://download.opensuse.org/ports/armv7hl/factory/images/&lt;br /&gt;
&lt;br /&gt;
===FreeBSD===&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
===Lakka TV===&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
===Dietpi ===&lt;br /&gt;
*Dietpi have official support BPI-M2+ : http://forum.banana-pi.org/t/dietpi-have-official-support-bpi-m2/1882&lt;br /&gt;
&lt;br /&gt;
===RetroPie===&lt;br /&gt;
*RetroPie for Banana Pi BPI-M2+/M2 Zero v.1.2.1 beta&lt;br /&gt;
::image download link: http://www.nintendont.it/download/nintendont-retropie-banana-pi-m2-plus-v-1-1-0-beta/&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/bpi-m2-zero-new-image-retropie-for-banana-pi-m2-zero-v-1-2-1-beta/4889&lt;br /&gt;
&lt;br /&gt;
===retrorangepi===&lt;br /&gt;
&lt;br /&gt;
* retrorangepi support BPI-M2+ BPI-M2 Zero : http://retrorangepi.download/download/index2.html&lt;br /&gt;
&lt;br /&gt;
==Others image==&lt;br /&gt;
&lt;br /&gt;
BPI-M2+ also support other image. such as Centos Kali,Gentoo .... please choose the newset image .&lt;br /&gt;
&lt;br /&gt;
*others image download link : http://forum.banana-pi.org/c/Banana-pi-BPI-M2/M2image&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1%2B&amp;diff=14212</id>
		<title>Banana Pi BPI-M1+</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1%2B&amp;diff=14212"/>
				<updated>2023-03-22T06:51:11Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M1%2B]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_2.jpg|thumb|Overview]]&lt;br /&gt;
[[File:BPI-M1+_3d.jpg|thumb|BPI-M1+ 3D]]&lt;br /&gt;
[[File:MultiQB_front.jpg|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] : smart home gateway]]&lt;br /&gt;
[[File:IMG_3036.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :3G Information security terminal]]&lt;br /&gt;
[[File:IMG_3085.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :4G Industrial safety tablets]]&lt;br /&gt;
[[File:BPI-M1+_case.jpg|thumb|BPI-M1+ case]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1+ upgrade is an open-source single-board computer that adds more connectivity to the classic board. It features the same high performance AllWinner A20 dual-core SoC at 1GHz, 1GB of DDR3 SDRAM, Gigabit Ethernet, SATA, USB, and HDMI connections found in classic BPI-M1+ ; but the Banana Pi M1+ features onboard WiFi g/b/n. The board supports all classic projects and even more because of the onboard WIFi chip. Like its sibling, it can run operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
&lt;br /&gt;
[[File:A_BPI-M1+.jpg]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi M1+ is our upgraded M1 board. We feel like the onboard WiFi adds a lot more features to the board and makes it more convient for users to set up their linx desktop or router projects. &lt;br /&gt;
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. With a Banana Pi, we want you to explore and experience the world of DIY projects and portable computing. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A20 Dual-core 1.0GHz CPU&lt;br /&gt;
* Mali-400 MP2 with Open GL ES 2.0/1.1.&lt;br /&gt;
* 1 GB DDR3 memory.&lt;br /&gt;
* Wifi support onboard&lt;br /&gt;
* 1x SATA interface.&lt;br /&gt;
* 1x Gigabit LAN &lt;br /&gt;
* 1x USB otg and 2x USB 2.0&lt;br /&gt;
* 1X MIC&lt;br /&gt;
* AV out&lt;br /&gt;
* HDMI out&lt;br /&gt;
* IR &lt;br /&gt;
* CSI camera interface&lt;br /&gt;
* DSI display interface&lt;br /&gt;
* 40 PIN gpio&lt;br /&gt;
* 3.7V lithium battery interface&lt;br /&gt;
&lt;br /&gt;
==Get startting ==&lt;br /&gt;
*How to burn image : [[Quick Start Banana pi SBC]]&lt;br /&gt;
*How to development : [[Getting Started with M1P]]&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
===Hardware interface===&lt;br /&gt;
[[File:BPI-M1_plus_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;4&amp;quot;| '''Banana Pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| CPU&lt;br /&gt;
| A20 ARM Cortex -A7 Dual-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU&lt;br /&gt;
| ARM Mali400MP2Complies with OpenGL ES 2.0/1.1	&lt;br /&gt;
|-&lt;br /&gt;
| Memory&lt;br /&gt;
| 1GB DDR3&lt;br /&gt;
|-&lt;br /&gt;
| Network&lt;br /&gt;
| 10/100/1000 Ethernet &lt;br /&gt;
|-&lt;br /&gt;
| wifi&amp;amp;BT&lt;br /&gt;
| Wifi support onboard&lt;br /&gt;
|-&lt;br /&gt;
| Video Input&lt;br /&gt;
| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs&lt;br /&gt;
| HDMI, CVBS, LVDS/RGB&lt;br /&gt;
|-&lt;br /&gt;
| Audio Outputs&lt;br /&gt;
| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Power Source&lt;br /&gt;
| 5V/2A via Micro USB (DC in only) and / or Micro USB OTG&lt;br /&gt;
|-&lt;br /&gt;
| USB 2.0 ports&lt;br /&gt;
| 2(direct from Allwinner A20 chip)&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| GPIO, UART, I2C BUS, SPI BUS, WITH TWO CHIP SELECTS, [[CAN bus]], ADC, PWM, +3.3V, +5V, GND&lt;br /&gt;
|-&lt;br /&gt;
| LED&lt;br /&gt;
| Power Key &amp;amp; 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Storage&lt;br /&gt;
| SATA 2.0&lt;br /&gt;
|-&lt;br /&gt;
| OS&lt;br /&gt;
| Android 4.4, Android 4.2, Raspbian, Lubuntu, Open Suse, Debian&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===GPIO PIN define ===&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1+ has a 40-pin GPIO header . Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
[[File:Gpio define.png]]&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P01 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P02 || VCC-DC ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P03 || TWI2-SDA || PB21 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P04 || VCC-DC ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P05 || TWI2-SCK || PB20 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P06 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P07 || PWM1 || PI3 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P08 || UART3\_TX ||PH0 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P09 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P10 || UART3\_RX || PH1 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P11 || UART2\_RX || PI19 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P12 || PH2 || PH2 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P13 || UART2\_TX || PI18 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P14 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P15 || UART2\_CTS || PI17 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P16 || CAN\_TX || PH20 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P17 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P18 || CAN\_RX || PH21 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P19 || SPI0\_MOSI || PI12 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P20 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P21 || SPI0\_MISO || PI13 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P22 || UART2\_RTS || PI16 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P23 || SPI0\_CLK || PI11 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P24 || SPI0\_CS0 || PI10 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P25 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P26 || SPI0\_CS1 || PI14 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P27 || TWI3-SDA || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P28 || TWI3-SCK || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P29 || I2S\_MCLK || PB5 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P30 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P31 || I2S\_BCLK || PB6 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P32 || I2S\_DI || PB12 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P33 || I2S\_LRCK || PB7 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P34 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P35 || I2S\_DO0 || PB8 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P36 || UART7\_RX || PI21 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P37 || IR0\_TX || PB3 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P38 || UART7\_TX || PI20 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P40 || SPDIF\_DO || PB13 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings.The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CON1″.&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;4&amp;quot;| '''CSI PIN of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|  CSI Pin Name || Default Function Pin name || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P01 || LINEINL ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P02 || LINEINR ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P03 || VCC-CSI ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P04 || ADC\_X1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P06 || ADC\_X2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P07 || FMINL ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P08 || ADC\_Y1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P09 || FMINR ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P10 || ADC\_Y2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P11 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P12 || CSI-FLASH || PH17 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P13 || LRADC0 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P14 || TWI1-SDA || PB19 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P15 || LRADC1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P16 || TWI1-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P17 || CSI-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P18 || CSI0-STBY-EN || PH19 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P19 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P20 || CSI-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P21 || CSI-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P22 || CSI0-PWR-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P23 || CSI-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P24 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P25 || CSI-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P26 || CSI0-RESET\# || PH14 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P27 || CSI-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P28 || CSI-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P29 || CSI-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P30 || CSI-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P31 || CSI-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P32 || CSI1-STBY-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P33 || AP-RESET\# ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P34 || CSI1-RESET\# || PH13 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P35 || CSI-IO0 || PH11 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P36 || HPR ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P37 || HPL ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P38 || IPSOUT &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P40 || IPSOUT || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''LVDS \(LCD display interface\)'''&lt;br /&gt;
&lt;br /&gt;
The LVDS Connector is a 40-pin FPC connector which can connect external LCD panel \(LVDS\) and touch screen \(I2C\) module as well.The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “CON2″.&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;4&amp;quot;| '''LVDS PIN of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
| LVDS Pin || Default Function || Function2 || Function3：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || TWI3-SDA || || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P04 || TWI3-SCK || || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P05 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P06 || LCD0-IO0 || || PH7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P07 || LCDIO-03 || || PH12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P08 || LCD0-IO1 || || PH8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P09 || LCD0-D0 || LVDS0-VP0 || PD0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P10 || PWM0 || ||  PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P11 || LCD0-D1 || LVDS0-VN0 || PD1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P12 || LCD0-IO2 || || PH9 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P13 || LCD0-D2 || LVDS0-VP1 || PD2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P14 || LCD0-DE || || PD25 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P15 || LCD0-D3 || LVDS0-VN1 || PD3 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P16 || LCD0-VSYNC || || PD27 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P17 || LCD0-D4 || LVDS0-VP2 || PD4 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P18 || LCD0-HSYNC || || PD26 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P19 || LCD0-D5 || LVDS0-VN2 || PD5 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P20 || LCD0-CS || || PH6 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P21 || LCD0-D6 || LVDS0-VPC || PD6 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P22 || LCD0-CLK || || PD24 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P23 || LCD0-D7 || LVDS0-VNC || PD7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P24 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P25 || LCD0-D8 ||LVDS0-VP3 || PD8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P26 || LCD0-D23 || || PD23 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P27 || LCD0-D9 || LVDS0-VN3 || PD9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P28 || LCD0-D22 || || PD22 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P29 || LCD0-D10 || || PD10 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P30 || LCD0-D21 || || PD21 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P31 || LCD0-D11 || || PD11 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P32 || LCD0-D20 || || PD20 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P33 || LCD0-D12 || || PD12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P34 || LCD0-D19 || || PD19 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P35 || LCD0-D13 || || PD13 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P36 || LCD0-D18 || || PD18 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P37 || LCD0-D14 || || PD14 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P38 || LCD0-D17 || || PD17 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P39 || LCD0-D15 || || PD15 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P40 || LCD0-D16 || || PD16 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper J11header CON4 is the UART interface.For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''UART debug PIN of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|  Pin Name || Default Function || GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CON4 P03 || UART0-TXD || PB22 &lt;br /&gt;
|-&lt;br /&gt;
|  CON4 P02 || UART0-RXD || PB23 &lt;br /&gt;
|-&lt;br /&gt;
|  CON4 P01 ||GND || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
* Linux kernel 3.4 Source code : https://github.com/BPI-SINOVOIP/BPI-M1-bsp&lt;br /&gt;
&lt;br /&gt;
* Android 4.4 source code&lt;br /&gt;
:LCD7 type: https://github.com/BPI-SINOVOIP/BPI-A20-Android-4.4&lt;br /&gt;
&lt;br /&gt;
* Android 4.2.2 source code&lt;br /&gt;
:HDMI type: https://github.com/BPI-SINOVOIP/BPI-A20-Android&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
* schematic diagram: [https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing google drive]&lt;br /&gt;
* BPI-M1+ DXF file download link　:　[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfkd0QmxaU3F2bHBWdkFiS09vT3VoZkVyNW93OXFjM0dHRVdGazhRWmFzZDQ&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs google drive]&lt;br /&gt;
*BPI-M1+ 3D design file download link :[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfl95clI4ZzRKUmRENWhMcmwzUlVrYW1Ic3BXZENtUjJQcjk5TXc0RHBKdlU&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs　google drive]&lt;br /&gt;
*CE FCC RoHS : [https://bananapi.gitbooks.io/bpi-m1/content/en/bpi-m1_ce_fcc_rohs_certification.html BPI-M1 CE,FCC,RoHS ] &lt;br /&gt;
*Arch linux wiki for BPI-M1:https://wiki.archlinux.org/index.php/Banana_Pi&lt;br /&gt;
*Nas for BPI-M1/BPI-M1+ : https://www.hackster.io/jeffbaocai/bananapi-pro-nas-0815dc?ref=platform&amp;amp;ref_id=8064_popular___&amp;amp;offset=3&lt;br /&gt;
*NetBSD/evbarm on Allwinner SoCs : https://wiki.netbsd.org/ports/evbarm/allwinner/#index1h1&lt;br /&gt;
*Gentoo for banana pi : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
*openSUSE for banana pi : https://en.opensuse.org/HCL:BananaPi&lt;br /&gt;
*How to booting from SSD using Lubuntu / Raspbian ：https://bananapi.gitbooks.io/bpi-m1/content/en/howtobootingfromssdusinglubunturaspbian.html&lt;br /&gt;
*Building the cluster on BPI :　https://www.hackster.io/Penguinfly/banana-pi-cluster-47d566&lt;br /&gt;
* Allwinner documents:&lt;br /&gt;
::allwinner chip online datasheet and documents: http://dl.linux-sunxi.org/&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
==Android 4.4==&lt;br /&gt;
*2018-07-28 update android 4.4 LCD version image &lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map &lt;br /&gt;
::Baidu Drive:https://pan.baidu.com/s/1DfSIiMvW_I-kFjTZMtcVsA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1qcH9baIhOphsDdlH_yBADuBiZsvrSKnt&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
== Armbian image ==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim1plus_jammy_edge_6.1.11_xfce_desktop.img.xz,This release is for banana pi M1 Plus board, which is based on Armbian operation system.&lt;br /&gt;
jammy edge version with 6.1.11 kernel.&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum : https://forum.banana-pi.org/t/banana-pi-bpi-m1-plus-new-armbian-image/15158&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapi BPI-M1+ bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1AMEfQIygT8949sfkX6HIjap7WKpQox4i/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1ePzBiwN0wEd8j3muk1HOlA?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m1-new-image-release-armbian-bullseye/14447/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Armbian Xenial and Armbian Jessie &lt;br /&gt;
::Image lownload link :https://www.armbian.com/banana-pi-plus/&lt;br /&gt;
&lt;br /&gt;
==Ubuntu linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim1plus_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1hlPkFx-NhGoCxYlHCqe4q9LwuQ0GosQL/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1SOeRKjVmTqTb6rMD71SfAw?pwd=wbnt (pincode: wbnt) &lt;br /&gt;
&lt;br /&gt;
*Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
==Debian Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim1plus_bullseye_edge_5.19.6_xfce_desktop&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1XpumxbOR74FSLayoICh4ZN4G3uZ_o0Fo/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1JtqdKE4AsAwCc6i_Wys_VA?pwd=6kgc (pincode: 6kgc)&lt;br /&gt;
&lt;br /&gt;
*2019-9-18 update. Debian 10 buster mate desktop with grub support (boot-2019.07 + kernel 5.1.1)&lt;br /&gt;
::google driver:https://drive.google.com/file/d/1FhbaO6pDBu5jSPYq1ghd7YKG-KvFy33Q/view?usp=sharing&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m1-m1-r1-new-image-debian-10-buster-mate-desktop-with-grub-support-boot-2019-07-kernel-5-1-1/9916&lt;br /&gt;
&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
===Officeal OpenWRT===&lt;br /&gt;
*BPI-M1/BPI-M1+/BPI-R1 use A20 chip,so easy to run openwrt&lt;br /&gt;
*wiki : https://wiki.openwrt.org/toh/lamobo/r1&lt;br /&gt;
*openwrt support for allwinner :https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;s[]=pi&lt;br /&gt;
*image download : https://downloads.openwrt.org/chaos_calmer/15.05/sunxi/generic/uboot-sunxi-Lamobo_R1/&lt;br /&gt;
*opwrt for Allwinner Soc : https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;amp;s[]=pi&lt;br /&gt;
&lt;br /&gt;
===BPI BSP for OpenWRT===&lt;br /&gt;
*How to build OpenWRT image from github : https://bananapi.gitbooks.io/bpi-m1/content/en/howtobuildopenwrtimagefromgithub.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
==OpenSuse==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/opensuse.html&lt;br /&gt;
&lt;br /&gt;
==OpenMediaVault==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/openmediavault.html&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/arch_linux.html&lt;br /&gt;
&lt;br /&gt;
==Gentoo Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/gentoolinux.html&lt;br /&gt;
&lt;br /&gt;
==RaspBSD==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/raspbsdonbpi-m1.html&lt;br /&gt;
&lt;br /&gt;
==CentOS==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/centos7linuxforbpi.html&lt;br /&gt;
&lt;br /&gt;
==DietPi==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/dietpi.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD/NetBSD==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/freebsdnetbsd.html&lt;br /&gt;
&lt;br /&gt;
==Lakka TV==&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
==Simplenas==&lt;br /&gt;
*simplenas image : https://simplenas.com/download/other/banana-pi-m1&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M3&amp;diff=14211</id>
		<title>Banana Pi BPI-M3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M3&amp;diff=14211"/>
				<updated>2023-03-22T06:50:50Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M3]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M3_1.jpg|thumb|Overview: Allwinner A83T]]&lt;br /&gt;
[[File:Banana_pi_BPI-M3_5.jpg|thumb|Overview: front]]&lt;br /&gt;
[[File:3.7V.jpg|thumb|Overview: back]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2U_case_1.jpg|thumb|BPI-M3 Premium Aluminum Enclosure]]&lt;br /&gt;
[[File:Bpi-m2_ultar_case_1.jpg|thumb|BPI-M3 acrylic case]]&lt;br /&gt;
[[File:A83T.JPG|thumb|BPI 4.0 OEM&amp;amp;ODM server [[Successful case]] : A83T Raid Nas design]]&lt;br /&gt;
[[File:Magic_mirror_2.JPG|thumb|BPI 4.0 OEM&amp;amp;ODM server [[Successful case]] : A83T Magic Mirror]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M3 is a super charged single board computer with an Octa-core processor and 2GB of RAM. Along side the elite processing unit, it features Gigabit Ethernet, 2 USB, SATA, WiFi, Bluetooth, and HDMI connection. It can run on a variety of operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
&lt;br /&gt;
Being a brother of the power hungry M2, the M3 does not want to rest while his brother goes to acquire two more cores. The M3 secretly mastered the powerful art of Octa-core to best even the M2. Unlike his careless brother, the M3 did not lose his SATA port.&lt;br /&gt;
&lt;br /&gt;
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project. &lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M3_960x360.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A83T Octa-core 1.8GHz Powerful CPU.&lt;br /&gt;
* 2 GB LPDDR3 memory.&lt;br /&gt;
* 8 GB eMMC storage.&lt;br /&gt;
* HDMI out&lt;br /&gt;
* IR control&lt;br /&gt;
* WiFi &amp;amp; Bluetooth onboard.&lt;br /&gt;
* MIPI DSI ingerface&lt;br /&gt;
* CSI camera interface&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*How to burn image to BPI-M3 and begin [[Quick Start Banana pi SBC]]&lt;br /&gt;
*How to development [[Getting Start with M3]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:M3-hdw-label.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
! Banana Pi BPI-M3&lt;br /&gt;
|-&lt;br /&gt;
! CPU&lt;br /&gt;
| Allwinner A83T ARM Cortex-A7 Octa-Core 1.8&amp;amp;nbsp;GHz, 512KB L1 cache and 1MB L2 cache&lt;br /&gt;
|-&lt;br /&gt;
! GPU&lt;br /&gt;
| PowerVR SGX544MP1 Comply with OpenGL ES 2.0 OpenCL 1x, DX9_3&lt;br /&gt;
|-&lt;br /&gt;
! Memory&lt;br /&gt;
| 2 GB LPDDR3 (shared with GPU)&lt;br /&gt;
|-&lt;br /&gt;
! Storage&lt;br /&gt;
| On Board 8GB eMMC Flash, Micro SD-Card slot, SATA 2.0 Port (USB-to-SATA bridge)&lt;br /&gt;
|-&lt;br /&gt;
! Network&lt;br /&gt;
| 10/100/1000 Mbit/s Ethernet (Realtek RTL8211E/D) + Wi-Fi 802.11 b/g/n (AP6212) + Bluetooth BT4.0&lt;br /&gt;
|-&lt;br /&gt;
! Video Input(s)&lt;br /&gt;
| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
! Video Output(s)&lt;br /&gt;
| HDMI 1.4 (Type A Full), MIPI Display Serial Interface (DSI) for raw LCD Panel&lt;br /&gt;
|-&lt;br /&gt;
! Audio Input(s)&lt;br /&gt;
| On board microphone&lt;br /&gt;
|-&lt;br /&gt;
! Audio Output(s)&lt;br /&gt;
| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
! USB ports&lt;br /&gt;
| USB 2.0 PORT (x2), USB OTG (x1)&lt;br /&gt;
|-&lt;br /&gt;
! Remote&lt;br /&gt;
| IR Receiver (x1)&lt;br /&gt;
|-&lt;br /&gt;
! GPIO&lt;br /&gt;
| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). Some of I/O Pin can be used for specific functions as UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
! Switches&lt;br /&gt;
| Reset, Power and U-boot &lt;br /&gt;
|-&lt;br /&gt;
! LED&lt;br /&gt;
| Power Status and 8P8C&lt;br /&gt;
|-&lt;br /&gt;
! Power Source&lt;br /&gt;
| 5 volt @2A via DC Power and/or Micro USB (OTG)&lt;br /&gt;
|-&lt;br /&gt;
! Size &amp;amp; Weight&lt;br /&gt;
| 92x60mm, 48g&lt;br /&gt;
|-&lt;br /&gt;
! OS&lt;br /&gt;
| Android and Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M3 has a 40-pin GPIO header that matches that of the Model Raspberry Pi 3. Following is the Banana Pi GPIO Pinout:&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;4&amp;quot;| '''40 PIN GPIO define of Banana pi BPI-M3'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name||	Default Function||	Function2：GPIO||	Function3&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P01||	VCC-3V3	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P02||	DCIN||  ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P03||	TWI2-SDA||	PH5-EINT5||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P04||	DCIN|| ||　&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P05||	TWI2-SCK||	PH4-EINT4||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P06||	GND|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P07||	S-PWM||	PL10-S-EINT10||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P08||	UART2-TX||	PB0-EINT0||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P09||	GND|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P10||	UART2-RX||	PB1-EINT1||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P11||	PC4	PC4|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P12||	UART2-CTS||	PB3-EINT3||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P13||	PC7||	PC7	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P14||	GND	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P15||	PC17||	PC17||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P16||	UART2-RTS||	PB2-EINT2||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P17||	VCC-3V3	||  ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P18||	PL8-ENT8||	PL8-S-ENT8||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P19||	SPI0_MOSI||	PC0||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P20||	GND	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P21||	SPI0_MISO||	PC1	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P22||	PL9-EINT9||	PL9-S-EINT9	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P23||	SPI0_CLK||	PC2	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P24||	SPI0_CS||	PC3||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P25||	GND|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P26||	PH10-ENT10||	PH10-ENT10||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P27||	TWI1-SDA||	PH3-EINT3||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P28||	TWI1-SCK||	PH2-EINT2||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P29||	PC18||	PC18||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P30||	GND|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P31||	I2S1-BCLK||	PG10-EINT10||	UART3-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P32||	I2S1-DIN||	PG13-EINT13||	UART3-CTS&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P33||	I2S1-LRCK||	PG11-EINT11||	UART3-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P34||	GND	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P35||	I2S1-DOUT||	PG12-EINT12||	UART3-RTS&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P36||	PE5||	PE5	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P37||	PE4||	PE4	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P38||	OWA-DOUT||	PE18||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P39||	GND	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P40||	PE19||	PE19||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CSI”.&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;4&amp;quot;| '''CSI camera GPIO of Banana pi BPI-M3'''&lt;br /&gt;
|-&lt;br /&gt;
|CSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P01||	IPSOUT	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P02||	AFVCC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P03||	IPSOUT	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P04||	IOVDD	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P05||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P06||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P07||	CSI2-D3N||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P08||	AVDD-CSI||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P09||	CSI2-D3P||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P10||	DVDD-CSI-R||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P11||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P12||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P13||	CSI2-D2N||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P14||	CSI-RST-R||	PE16&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P15||	CSI2-D2P||	|&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P16||	CSI-STBY-R||	PE17&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P17||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P18||	CSI-PCLK||	PE0&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P19||	CSI2-CKN||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P20||	CSI-MCLK||	PE1&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P21||	CSI2-CKP||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P22||	CSI-HSYNC||	PE2&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P23||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P24||	CSI-VSYNC||	PE3&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P25||	CSI2-D1N||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P26||	CSI-D9||	PE13&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P27||	CSI2-D1P||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P28||	CSI-D8||	PE12&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P29||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P30||	CSI-D7||	PE11&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P31||	CSI2-D0N||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P32||	CSI-D6||	PE10&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P33||	CSI2-D0P||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P34||	CSI-D5||	PE9&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P35||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P36||	CSI-D4||	PE8&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P37||	CSI-SCK||	PE14&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P38||	CSI-D3||	PE7&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P39||	CSI-SDA||	PE15&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P40||	CSI-D2||	PE6&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Display specification'''&lt;br /&gt;
&lt;br /&gt;
MIPI DSI (Display Serial Interface)：&lt;br /&gt;
&lt;br /&gt;
The display Connector is a 40-pin FPC connector which can connect external LCD panel (MIPI DSI) and touch screen (I2C) module as well. The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “DSI”.&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;4&amp;quot;| '''MIPI DSI PIN define of Banana pi BPI-M3'''&lt;br /&gt;
|-&lt;br /&gt;
|DSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P01||	VCC-MIPI||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P02||	IPSOUT||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P03||	VCC-MIPI||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P04||	IPSOUT||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P05||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P06||	IPSOUT||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P07||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P08||	IPSOUT||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P09||	NC||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P10||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P11||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P12||	DSI-D0N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P13||	NC||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P14||	DSI-D0P	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P15||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P16||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P17||	TWI0-SDA||	PH1-EINT1&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P18||	DSI-D1N||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P19||	TWI0-SCK||	PH0-EINT0&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P20||	DSI-D1P	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P21||	TP-INT||	PL7-S-EINT7&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P22||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P23||	TP-RST||	PL6-S-EINT6&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P24||	DSI-CKN	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P25||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P26||	DSI-CKP||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P27||	LCD-BL-EN||	PD29&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P28||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P29||	LCD-RST||	PD26&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P30||	DSI-D2N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P31||	LCD-PWR-EN||	PD27&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P32||	DSI-D2P||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P33||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P34||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P35||	LCD-PWM||	PD28&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P36||	DSI-D3N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P37||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P38||	DSI-D3P||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P39||	AP-RESET#||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P40||	GND	|||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The header CON4 is the UART interface.For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Uart debug pin of Banana pi BPI-M3'''&lt;br /&gt;
|-&lt;br /&gt;
|CON2 Pin Name	||Default Function||	GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P03||	UART0-TXD||	PB9&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P02||	UART0-RXD||	PB10&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P01||	GND||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
==Android==&lt;br /&gt;
*How to burn android image to eMMC under windows ： https://bananapi.gitbooks.io/bpi-m3/content/en/how_to_burn_android_image_to_emmc.html&lt;br /&gt;
*BPI-M3 How to control GPIO on Android ：https://bananapi.gitbooks.io/bpi-m3/content/en/howtocontrolgpioonandroid.html&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
*How to burn Linux image to eMMC : https://bananapi.gitbooks.io/bpi-m3/content/en/howtoburnlinuximagetoemmc.html&lt;br /&gt;
*GPU for kernel 3.4 : https://bananapi.gitbooks.io/bpi-m3/content/en/gpuforkernel34.html&lt;br /&gt;
*How to rotate display screen : https://bananapi.gitbooks.io/bpi-m3/content/en/howtorotatedisplayscreen.html&lt;br /&gt;
*how to use fatload uEnv.txt &amp;amp; script.bin &amp;amp; kernel uImage : https://bananapi.gitbooks.io/bpi-m3/content/en/howtousefatloaduenvtxtscriptbinkernel_ui.html&lt;br /&gt;
&lt;br /&gt;
==Opnewrt==&lt;br /&gt;
==TinaLinux==&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
*[https://bananapi.gitbooks.io/bpi-m3/content/en/howtosetupdockerenvtobuildgithubsourcecod.html How to setup docker env. to build github source code ]&lt;br /&gt;
*[https://bananapi.gitbooks.io/bpi-m3/content/en/howtocompilebpi-m3-bspkernelonbpi-m3.html How to compile BPI-M3-bsp kernel on BPI-M3]&lt;br /&gt;
*[https://bananapi.gitbooks.io/bpi-m3/content/en/bpi-m3crosscompileteach.html  BPI-M3 BSP Cross Compile teach]&lt;br /&gt;
*[https://bananapi.gitbooks.io/bpi-m3/content/en/bpi-m3fixrootmydeviceissueforsecurityalert.html BPI-M3 fix rootmydevice issue for Security Alert]&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
* BPI-M3 android 5.1 source code ： https://drive.google.com/open?id=0B\_YnvHgh2rwjaGhIeUE0eERTZU0&lt;br /&gt;
*BPI-M3 Linux BSP code : https://github.com/BPI-SINOVOIP/BPI-M3-bsp&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
*BPI-M3 schematic diagram :[https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing  google driver]&lt;br /&gt;
*BPI-M3 DXF file : https://drive.google.com/file/d/0B4PAo2nW2KfnNm54VjBlUXhXekU/view&lt;br /&gt;
*BPI-M3 3D design file : https://drive.google.com/file/d/0B4PAo2nW2KfnYXVGWXBURDFSeTA/view&lt;br /&gt;
*A83T chip Datasheet V1.4 : https://drive.google.com/file/d/0B4PAo2nW2KfnM2VqeTR3SXpGdVE/view?usp=sharing &lt;br /&gt;
*Allwinner A83T chip User_Manual V1.5.1 : https://drive.google.com/file/d/0B4PAo2nW2KfnRjlQaU9uR0J0elE/view?usp=sharing&lt;br /&gt;
*android 5.0 development document（chinese）：https://drive.google.com/file/d/0B4PAo2nW2KfnekpvMnlNZ2p6NWs/view?usp=sharing&lt;br /&gt;
*allwinner chip online datasheet and documents : http://dl.linux-sunxi.org/&lt;br /&gt;
*linux-sunxi wiki : http://linux-sunxi.org/Banana_Pi_M3&lt;br /&gt;
*BPI-M3 quality guarantee&lt;br /&gt;
::BPI-M3 WIFI Lab test report : https://bananapi.gitbooks.io/bpi-m3/content/en/bpi-m3wifilabtest.html&lt;br /&gt;
::BPI-M3 Validation test report : https://bananapi.gitbooks.io/bpi-m3/content/en/bpi-m3validationtest.html&lt;br /&gt;
::BPI-M3 CE,FCC RoHS Certification : http://forum.banana-pi.org/t/bpi-m3-ce-fcc-rohs-certification/984&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
==Android 5.1.1 V5==&lt;br /&gt;
*2018-06-05 update &lt;br /&gt;
*HDMI-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1mLXOAH_LPT-uqtwWvgvJXw4Vo95tFr_z&lt;br /&gt;
::Baidu Cloud : https://pan.baidu.com/s/1byqwqzz9SOIWHYfOabXKNw&lt;br /&gt;
&lt;br /&gt;
*LCD-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1DAxQIws0eAVPAm0riH5HXc8M36SH_-sC&lt;br /&gt;
::Baidu Cloud : https://pan.baidu.com/s/19l7a6Z75FuZb_f9Ls0fN5w&lt;br /&gt;
&lt;br /&gt;
*2017-05-11 update &lt;br /&gt;
*HDMI-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjcXkxczlmOWxWV00&lt;br /&gt;
::Baidu Cloud : https://pan.baidu.com/s/1pKF3Ggj&lt;br /&gt;
::MD5: d7b7abf3443a49fb0f178ccf2f6e82d0 &lt;br /&gt;
*LCD-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjSkM5NHFWYVdlakk&lt;br /&gt;
::Baidu Cloud : https://pan.baidu.com/s/1mi2YOeG &lt;br /&gt;
::MD5: b27dd45ac5fd1fd3b02db8ffd92c2871 &lt;br /&gt;
*forum pthread : http://forum.banana-pi.org/t/bpi-m3-new-image-android-5-1-version-v5-2017-05-11/3241&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim3_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1iq0gCOAIHjE7bgxeccNPtFp9iK0AtzRM/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1FjNBqpJ0Kv83EpiKt9sZmw?pwd=mtk5 (pincode: mtk5)&lt;br /&gt;
&lt;br /&gt;
*2021-08-03 release, Ubuntu Mate Desktop 16.04 with kernel 3.4.39&lt;br /&gt;
::Download: [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FImages%2FBPI-M3%2FUbuntu16.04%2F2021-08-03-ubuntu-16.04-mate-desktop-bpi-m3-sd-emmc.img.zip 2021-08-03-ubuntu-16.04-mate-desktop-bpi-m3-sd-emmc.img.zip]&lt;br /&gt;
::MD5: 4cd6cfb9ed3a2d382dbc32bb478ac149&lt;br /&gt;
&lt;br /&gt;
*2021-08-03 release, Ubuntu Server 16.04 with kernel 3.4.39&lt;br /&gt;
::Download: [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FImages%2FBPI-M3%2FUbuntu16.04%2F2021-08-03-ubuntu-16.04-server-bpi-m3-sd-emmc.img.zip 2021-08-03-ubuntu-16.04-server-bpi-m3-sd-emmc.img.zip]&lt;br /&gt;
::MD5: ea5abe3fd6988931df85a2376808501a&lt;br /&gt;
&lt;br /&gt;
*2018-07-18 BPI-M3 Ubuntu 16.04 Mate Desktop (new eMMC)&lt;br /&gt;
::Features Map ：http://wiki.banana-pi.org/M3_Image_Map#Ubuntu_16.04&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1DlOrt08yUY9hAETiUXBiyoyPFHrOxtvq&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1ND5QqoBevzM2TykwqZCkAA&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-new-emmc-ubuntu16-04-debian9-release-2018-07-18/6294&lt;br /&gt;
&lt;br /&gt;
*2018-07-18 M3 Ubuntu Server (new eMMC)&lt;br /&gt;
::Features Map : http://wiki.banana-pi.org/M3_Image_Map#Ubuntu_Lite&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1Yyd2BepHjyhgXhSmnFh_0Az6YoXPEI3J&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/10vSo0AmIiMrVLNPkQ63leQ&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-new-emmc-ubuntu16-04-debian9-release-2018-07-18/6294&lt;br /&gt;
&lt;br /&gt;
*2018-05-31 update ubuntu 16.04 mate desktop&lt;br /&gt;
**HDMI verison baidu cloud :　https://pan.baidu.com/s/1UDktbDgGtXpbqIZn_TI1Tg&lt;br /&gt;
&lt;br /&gt;
*2017-07-13 update ubuntu 16.04 mate desktop&lt;br /&gt;
* Image Link: &lt;br /&gt;
**HDMI version Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjRThoaHliWVVyZGM/view?usp=sharing &lt;br /&gt;
**HDMI verison baidu cloud :　http://pan.baidu.com/s/1nu6hJs9&lt;br /&gt;
**Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-ubuntu-16-04-mate-desktop-beta-bpi-m3-ov8865-sd-emmc-2017-07-13/3542&lt;br /&gt;
**LCD 7 verison Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjVldzUENFQXpiTHc/view?usp=sharing&lt;br /&gt;
**LCD 7 version baidu cloud :　http://pan.baidu.com/s/1o8Uc4Y2 &lt;br /&gt;
**Forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-ubuntu-16-04-mate-desktop-beta-bpi-m3-lcd7-ov8865-sd-emmc-img-2017-7-13/3543&lt;br /&gt;
**LCD 5 Version Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjUlpIVjB6LVVmMGc/view?usp=sharing &lt;br /&gt;
**LCD 5 Version baidu cloud : http://pan.baidu.com/s/1hsIJygG &lt;br /&gt;
** Forum thread:http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-ubuntu-16-04-mate-desktop-beta-bpi-m3-lcd5-ov8865-sd-emmc-img-2017-7-13/3544&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim3_bullseye_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1vrM4WLq74O4FEOAmBjUwJGbzZptq3hYi/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1w00wkfX15G6D60W2WH52ug?pwd=awza (pincode: awza) &lt;br /&gt;
&lt;br /&gt;
*2018-07-18 BPI-M3 Debian Jessie 9 (new eMMC)&lt;br /&gt;
::Features Map : http://wiki.banana-pi.org/M3_Image_Map#Debian_Jessie_9&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1M997Uf-RVqdFKJkXMjgY0w3fHyiOq4iG&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1yQYG1iOEIrJADV_j-qvdwQ&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-new-emmc-ubuntu16-04-debian9-release-2018-07-18/6294&lt;br /&gt;
&lt;br /&gt;
==Armbian==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim3_focal_current_5.15.82_xfce_desktop.img&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim3_jammy_edge_6.1.11_xfce_desktop.img&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim3_bullseye_edge_6.1.0_xfce_desktop.img&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m3-new-armbian-image/15138&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapim3_bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1Cr0KY0oVqSly-DOipgd_x_a4gQ0oPxm7/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/18M5Tsc91z57NUzBm4rcqlg?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-release-armbian-bullseye/14450&lt;br /&gt;
&lt;br /&gt;
*Armbian with 4.17.y for M3&lt;br /&gt;
::Test build:http://ix.io/1fUK&lt;br /&gt;
::Broken: wired, wireless network, Bluetooth, ...&lt;br /&gt;
::Works: serial console, 8 cores, DVFS, USB, SATA, HDMI, DRM video driver, ...&lt;br /&gt;
::image:https://forum.armbian.com/topic/474-banana-pi-m3/?do=findComment&amp;amp;comment=57400&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/armbian-with-4-17-y-for-m3/6174&lt;br /&gt;
&lt;br /&gt;
==Rasbian==&lt;br /&gt;
*2021-08-03 release, Raspbian Stretch with kernel 3.4.39&lt;br /&gt;
::Download: [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FImages%2FBPI-M3%2FRaspbian%2F2021-08-03-raspbian-stretch-bpi-m3-sd-emmc.img.zip 2021-08-03-raspbian-stretch-bpi-m3-sd-emmc.img.zip]&lt;br /&gt;
::MD5: a9890cedbd779a29ff551a7fc5e1eae6&lt;br /&gt;
&lt;br /&gt;
* 2018-5-28 update : Raspbian 8.0 V1.1 &lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive:  https://drive.google.com/open?id=1DSZru8UQRikI6pImLZIt1DmySVozy0FA&lt;br /&gt;
::::baidu cloud : https://pan.baidu.com/s/1Pz_6btHxj6F9w_6aw90Dww&lt;br /&gt;
::Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-release-raspbian-jessie-8-0-2018-5-28-v1-1/5847&lt;br /&gt;
&lt;br /&gt;
==Arch Linux ==&lt;br /&gt;
*2018-08-19 ArchLinux-4.18.1-1-ARCH : Kernel: 4.18.1-1-ARCH U-Boot: 2018.09-rc1&lt;br /&gt;
::U-Boot: 2018.09-rc1,Kernel: 4.18.1-1-ARCH,Ethernet works,Wifi works,HDMI works,LCD needs to be checked(I would appreciate if someone can check it),GPIO works(WiringPi),BPI tools included,I2C enabled(In TDB file)&lt;br /&gt;
::source code on github : https://github.com/apankevych/BananaPi-M3-Linux-4.18.1-1-ARCH&lt;br /&gt;
::download Image link:https://drive.google.com/file/d/1ia3JSmHH8ksia4e8doalUGSBHnytOgx4/view?usp=sharing&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-archlinux-4-18-1-1-arch-2018-08-19/6544&lt;br /&gt;
&lt;br /&gt;
*2018-07-19 Arch Linux sunxi kernel-4.18-rc3 and uboot- 2018.01 thank Andriy_Pankevych do this great work.&lt;br /&gt;
:: Google drive : https://drive.google.com/open?id=1Ve91MG_7d1haawqqmiBo4qCugvF1iLyn&lt;br /&gt;
:: Source code: https://github.com/apankevych/BananaPi-M3-Linux-4.18.0-rc3&lt;br /&gt;
:: Forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-arch-linux-sunxi-kernel-4-18-rc3-and-uboot-2018-01-2018-07-19/6312&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
==Simplenas==&lt;br /&gt;
*simplenas image : https://simplenas.com/download/other/banana-m3&lt;br /&gt;
&lt;br /&gt;
==Lakka TV==&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Others image==&lt;br /&gt;
*http://forum.banana-pi.org/c/bpi-m3/M2image&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M2_Berry&amp;diff=14210</id>
		<title>Banana Pi BPI-M2 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M2_Berry&amp;diff=14210"/>
				<updated>2023-03-22T06:50:34Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M2_Berry]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_4.jpg|thumb|Overview:front]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_3.JPG|thumb|Overview:back]]&lt;br /&gt;
[[File:R40_for_vehicle_license_plate_recognition.JPG|thumb|BPI-M2 Berry for BPI 4.0 [[Successful case]] ：R40 for vehicle license plate recognition ]]&lt;br /&gt;
[[File:R40_for_IoT_gateway.JPG|thumb|BPI-M2 Berry for BPI 4.0 [[Successful case]] ：R40 for IoT gateway with Z-wave, zigbee,WiFI]]&lt;br /&gt;
[[File:BPI-M2_Berry case.jpg|thumb|BPI-M2 Berry case]]&lt;br /&gt;
Banana Pi BPI-M2 Berry is a quad-core mini single board computer built with Allwinner A40i SoC. It features 1GB of RAM . It also has onboard WiFi and BT. On the ports side, the BPI-M2 Ultra has 4 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, and last but not least, a SATA port..&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-M2_Berry.jpg]]&lt;br /&gt;
&lt;br /&gt;
Also being a member of the Banana Pi family, the M2 Berry is a direct upgrade from the Banana Pi M1/M1+ that support SATA from the SoC. The SATA performance on the V40 is fitting for media related projects such as storage servers. Backed by our community, starting a project and building servers is fun and rewarding. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.&lt;br /&gt;
 &lt;br /&gt;
all size is same as raspberry pi 3,so you can use raspberry pi 3 case for BPI-M2 Berry.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A40i/R40/V40 Quad Core ARM Cortex A7 CPU &lt;br /&gt;
* 1GB DDR3 SDRAM.&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard.&lt;br /&gt;
* SATA Interface.&lt;br /&gt;
* 4*USB 2.0&lt;br /&gt;
* MIPI DSI interface&lt;br /&gt;
* CSI camera interface&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Quick Start Banana pi SBC]]&lt;br /&gt;
&lt;br /&gt;
*[[Getting Start with M2 Ultra / Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:M2ubinterface.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;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M2 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
|Soc || Allwinner A40i/R40/V40 &lt;br /&gt;
|-&lt;br /&gt;
| CPU || quad-core cortex -A7,the most power efficient CPU core ARM's ever development &lt;br /&gt;
|-&lt;br /&gt;
| GPU || dual-core MALI-400 MP2 and runs at 500MHz, capable of 1.1 Gpixel/s throughput. Graphics capabilities are slightly higher than the original Xbox’s level of performance. The GPU provides OpenGL ES 2.0, hardware-accelerated OpenVG, 1080p45 H.264 high-profile encode and decode. &lt;br /&gt;
|-&lt;br /&gt;
| SDRAM || 1GB DDR3 with 733MHz\(shared with GPU\) &lt;br /&gt;
|-&lt;br /&gt;
| SATA || suppoort SATA interface &lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40 Pins Header, 28×GPIO, some of which can be used for specific functions including UART, I2C, SPI, PWM, I2S. &lt;br /&gt;
|-&lt;br /&gt;
| On board Network || 10/100/1000Mbps Ethernet \(Realtek RTL8211E/D\) &lt;br /&gt;
|-&lt;br /&gt;
| Wifi Module || WiFi 802.11 b/g/n \(AP 6212 module on board\) &lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || BT4.0 &lt;br /&gt;
|-&lt;br /&gt;
| On board Storage || MicroSD \(TF\) card,No eMMC onboard &lt;br /&gt;
|-&lt;br /&gt;
| Display || 4-lane MIPI DSI display,or RGB panel or LVDS panel,TV-out on HDMI V1.4 &lt;br /&gt;
|-&lt;br /&gt;
| Video || Multi-format FHD video decoding, including Mpeg1/2, Mpeg4, H.263, H.264, etc H.264 decode up to 1080P60,support video encodeing:High-deinition\(HD\)H.264 video encoder is up to 1080P@45fps &lt;br /&gt;
|-&lt;br /&gt;
| Audio outputs || HDMI, analog audio \(via 3.5 mm TRRS jack\), I2S audio \(also potentially for audio input\) &lt;br /&gt;
|-&lt;br /&gt;
| Camera || A CSI input connector Camera:Supports 8-bit YUV422 CMOS sensor interface,Supports CCIR656 protocol for NTSC and PAL,Supports 5M pixel camera sensor ,Supports video capture solution up to 1080p@30fps &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4 USB 2.0 host, 1 USB 2.0 OTG &lt;br /&gt;
|-&lt;br /&gt;
| Buttons || Reset button, Power button, U-boot button &lt;br /&gt;
|-&lt;br /&gt;
| Leds || Power status Led and RJ45 Led &lt;br /&gt;
|-&lt;br /&gt;
| IR || No onboard IR receiver&lt;br /&gt;
|-&lt;br /&gt;
| DC Power || 5V/2A with micro USB port &lt;br /&gt;
|-&lt;br /&gt;
| battery || No 3.7V lithium battery power support&lt;br /&gt;
|-&lt;br /&gt;
| Sizes || 85mmX56mm,same size as raspberry pi 3 &lt;br /&gt;
|-&lt;br /&gt;
| Weight || 40g &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M2 Berry has a 40-pin GPIO header that matches that of the Model Raspberry Pi 3. Following is the Banana Pi GPIO Pinout:&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name || Default Function || Function2：GPIO || Function3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P01 || VCC-3V3 || || &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P02 || DCIN || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P03 || TWI2-SDA || PB21 || PWM5 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P04 || DCIN || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P05 || TWI2-SCK || PB20 || PWM4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P06 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P07 || PB3 || PB3 || PWM1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P08 || UART2-TX || PI18 || SPI1\_MOSI &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P09 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P10 || UART2-RX || PI19 || SPI1\_MISO &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P11 || UART7-TX || PI20 || PWM2 |&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P12 || UART2-CTS || PI17 || SPI1\_CLK &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P13 || UART7-RX || PI21 || PWM3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P14 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P15 || PH25 || PH25 || CSI1-FIELD &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P16 || UART2-RTS || PI16 || SPI1\_CS0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P17 || VCC-3V3 || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P18 || PH26 || PH26 || CSI1-HSYNC &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P19 || SPI0\_MOSI || PC0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P20 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P21 || SPI0\_MISO || PC1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P22 || PH27 || PH27 || CSI1-VSYNC &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P23 || SPI0\_CLK || PC2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P24 || SPI0\_CS || PC23 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P25 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P26 || PH24 || PH24 || CSI1-PCLK &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P27 || TWI3-SDA || PI1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P28 || TWI3-SCK || PI0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P29 || PH0 || PH0 || CSI1-D0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P30 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P31 || PH1 || PH1 || CSI1-D1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P32 || PD20 || PD20 || CSI1-MCLK &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P33 || PH2 || PH2 || CSI1-D2 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P34 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P35 || PH3 || PH3 || CSI1-D3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P36 || UART5-RX || PH7 || CSI1-D7 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P37 || UART4-TX || PH4 || CSI1-D4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P38 || UART5-TX || PH6 || CSI1-D6 &lt;br /&gt;
|-&lt;br /&gt;
| ON1-P39 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P40 || UART4-RX || PH5 || CSI1-D5 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 24-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “Camera”.&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;4&amp;quot;| '''CSi Camera connector GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
| CSI Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P01 || NC || &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P02 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P03 || CSI0-SDA || PI3 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P04 || CSI0-AVDD ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P05 || CSI0-SCK || PI2 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P06 || CSI0-Reset || PI7 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P07 || CSI0-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P08 || CSI0-PWDN || PI6 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P09 || CSI0-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P10 || CSI0-DVDD ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P11 || CSI0-DOVDD ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P12 || CSI0-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P13 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P14 || CSI0-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P15 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P16 || CSI0-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P17 || CSI0-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P18 || CSI0-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P19 || CSI0-D0 || PE4&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P20 || CSI0-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P21 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P22 || CSI0-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P23 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P24 || CSI0-AFVCC ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Display specification'''&lt;br /&gt;
&lt;br /&gt;
MIPI DSI \(Display Serial Interface\)&lt;br /&gt;
&lt;br /&gt;
The display Connector is a 40-pin FPC connector which can connect external LCD panel \(MIPI DSI\) and touch screen \(I2C\) module as well. The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “DSI”.&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
| DSI Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P01 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P02 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P03 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P04 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P06 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P07 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P08 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P09 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P10 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P11 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P12 || DSI-D0N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P13 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P14 || DSI-D0P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P15 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P16 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P17 || TWI0-SDA || PB19&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P18 || DSI-D1N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P19 || TWI0-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P20 || DSI-D1P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P21 || CTP-INT || PI10 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P22 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P23 || CTP-RST || PI11 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P24 || DSI-CKN ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P25 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P26 || DSI-CKP ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P27 || LCD-BL-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P28 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P29 || LCD-RST || PH17 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P30 || DSI-D2N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P31 || LCD-PWR-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P32 || DSI-D2P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P33 ||GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P34 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P35 || LCD-PWM || PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P36 || DSI-D3N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P37 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P38 || DSI-D3P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P39 || NC || &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P40 || GND || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The header CON4 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''CON4 Uart GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
| CON2 Pin Name || Default Function || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || UART0-TXD ||&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || UART0-RXD|| &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || GND|| &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
==TinaLinux==&lt;br /&gt;
Allwinner Tina-IoT os for BPI-M2 Ultra/BPI-M2 Berry&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
* Schematics:[https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing  google driver]&lt;br /&gt;
* Dimensional diagram [https://drive.google.com/file/d/0B4PAo2nW2Kfnci1xaHd5eWtseEU/view?usp=sharing BPI-M2 Berry dxf file]&lt;br /&gt;
* Allwinner R40/V40 datasheet&lt;br /&gt;
::[https://drive.google.com/file/d/0B4PAo2nW2KfneE54VzVOdHpITzA/view?usp=sharing  Allwinner V40 datasheet]&lt;br /&gt;
::[https://drive.google.com/file/d/0B4PAo2nW2KfnbVp2TmRMYUdPUGM/view?usp=sharing  Allwinner R40 datasheet]&lt;br /&gt;
::[https://github.com/tinalinux/docs/blob/r40-v1.y/Allwinner\_R40\_User\_Manual\_V1.0.pdf   Allwinner R40 User Manual v1.0]&lt;br /&gt;
::[https://drive.google.com/file/d/0B4PAo2nW2KfnM2pnT19zZW5qOTA/view?usp=sharing  axp221s PMU datasheet]&lt;br /&gt;
* Banana pi BPI-M2 Berry CE,FCC,RoHS &lt;br /&gt;
::[https://bananapi.gitbooks.io/bpi-m2-ultra-open-source-single-board-computer/content/bpi-m2-berry-cefcc-rohs-certification.html  CE FCC RoHS]&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
== Android 6.0==&lt;br /&gt;
*2017-08-25 update &lt;br /&gt;
*HDMI-Version,LCD5-Version LCD7-Version,please choose which you are need:&lt;br /&gt;
&lt;br /&gt;
::google Drive : https://drive.google.com/drive/folders/0B_YnvHgh2rwjNFRpVFlhcW56LUk?resourcekey=0-95UrcQ-bb0Bh-RDtLRp-0w&lt;br /&gt;
&lt;br /&gt;
*forum pthread : http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-android-6-0-version-v1-2017-08-25/3731&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
*2022-04-16 Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
*2020-04-19 update, kernel 3.10.108&lt;br /&gt;
::Ubuntu 16.04 mate desktop [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M2U%2FUbuntu16.04&amp;amp;mode=list Download]&lt;br /&gt;
::Ubuntu 16.04 server [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M2U%2FUbuntu16.04&amp;amp;mode=list Download]&lt;br /&gt;
&lt;br /&gt;
*2019-05-13 update banana pi M2U board which is based on A40I, R40, V40, and it is based on Ubuntu 16.04 &amp;amp; Raspbian 9 &amp;amp; Debian 9 Operation system with kernel 3.10.108&lt;br /&gt;
::BPI-M2U Ubuntu 16.04 Features Map:http://wiki.banana-pi.org/M2U/Berry_Image_Map#Ubuntu_16.04&lt;br /&gt;
::Desktop images:&lt;br /&gt;
::::Google Drive :https://drive.google.com/file/d/1Q8MGksdugAsMhy4slj50Rp9P0eeDUQFo/view?usp=sharing&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1Aap1emViG6Vh2ejVHPtZhg?pwd=xfd5 (PinCode:xfd5) &lt;br /&gt;
::::MD5 : cde8fd1165b54c633bcc5288e8447c2b&lt;br /&gt;
::Server  images:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1vcuIpQ7O2SFB3cZ4UemOqR2hQkxHy3RF&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/18Cp7zeuHxa82z5OU_tV_oQ (PinCode：qat4)&lt;br /&gt;
::::MD5 : 07981887a7a21f5cda72ab8a1e37a834&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bpi-m2u-berry-new-image-release-ubuntu-16-04-raspbian-9-4-debian-9-4-2019-05-13/9225&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2018-01-04 update BPI-M2 Ultra/Berry Ubuntu 16.04 image&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/1G4Ggkne63ofD51Yt2c-x5-qy9h7BgY4_/view?usp=sharing&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1cFHYGY1&lt;br /&gt;
::MD5: a61e6f66a5ea2288fff0c3acff12d633&lt;br /&gt;
*2017-11-13 update&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/19PI9yuL9iFa4bU6dh7ym3tcCHhjAh-cM/view?usp=sharing &lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1nvccOlz &lt;br /&gt;
::MD5: 4655b896a3c4e1958a15bb8ca45ac4fe&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-2017-11-13-ubuntu-16-04-mate-desktop-beta2-bpi-m2u-sd-emmc-img/4182&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
*2020-04-19 update, kernel 3.10.108&lt;br /&gt;
::Debian 9 stretch mate desktop [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M2U%2FDebian9&amp;amp;mode=list Download]&lt;br /&gt;
::Debian 9 stretch lite [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M2U%2FDebian9&amp;amp;mode=list Download]&lt;br /&gt;
&lt;br /&gt;
*2019-05-13 update banana pi M2U board which is based on A40I, R40, V40, and it is based on Ubuntu 16.04 &amp;amp; Raspbian 9 &amp;amp; Debian 9 Operation system with kernel 3.10.108&lt;br /&gt;
::BPI-M2U Debian 9 Features Map:http://wiki.banana-pi.org/M2U/Berry_Image_Map#Debian_9&lt;br /&gt;
::Desktop images :&lt;br /&gt;
::::Google Drive : &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1ZqDZT4dOQNyvsu0nT4oMTg (PinCode:kshd) &lt;br /&gt;
::::MD5 : 7e5d848f804bc5ffb8854a93d7488694&lt;br /&gt;
::Server  images:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1aoB8mGwSveNztB-EO_fBKLOr-GdzcMNV&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1V0djGvUR7QJFMeAgZV86zg (PinCode:e0t6) &lt;br /&gt;
::::MD5 : b7314d444dc13a40e1dd7b1602436f40&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bpi-m2u-berry-new-image-release-ubuntu-16-04-raspbian-9-4-debian-9-4-2019-05-13/9225&lt;br /&gt;
&lt;br /&gt;
*2017-11-13 update debian-9-stretch-mate-desktop&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/0B_YnvHgh2rwjeTh4TmlnMGl5X3M/view?usp=sharing &lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1c1LvS1y &lt;br /&gt;
::MD5: 0a1fad281c24902148b16276a79bac12&lt;br /&gt;
*2017-11-13 update debian-9-stretch-lite&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/0B_YnvHgh2rwjOWg1OW9heWZsYm8/view?usp=sharing &lt;br /&gt;
::baidu cloud: http://pan.baidu.com/s/1c3zxCy 13&lt;br /&gt;
::MD5: cff677aa94ca5345fc6e26379cfe4e95&lt;br /&gt;
*forum pthread : http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-2017-08-28-debian-sd-emmc-img/3745/2&lt;br /&gt;
&lt;br /&gt;
==Raspbian==&lt;br /&gt;
*2020-04-19 update, kernel 3.10.108&lt;br /&gt;
::Raspbian stretch [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-M2U%2FRaspbian&amp;amp;mode=list Download]&lt;br /&gt;
&lt;br /&gt;
*2019-05-13 update banana pi M2U board which is based on A40I, R40, V40, and it is based on Ubuntu 16.04 &amp;amp; Raspbian 9 &amp;amp; Debian 9 Operation system with kernel 3.10.108&lt;br /&gt;
::BPI-M2U Raspbian 9 Features Map:http://wiki.banana-pi.org/M2U/Berry_Image_Map#Raspbian_9.4&lt;br /&gt;
::Desktop image : &lt;br /&gt;
::::Google Drive : https://drive.google.com/file/d/146--P5XiX9F_Dn8JzC3gRApGBQUUcEzH/view?usp=sharing&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1ngowiaK1q20MbQMQzXabDw?pwd=8888 (PinCode:8888) &lt;br /&gt;
::::MD5 : f7ee24ff15654724e2c7ec3bf72c8506&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bpi-m2u-berry-new-image-release-ubuntu-16-04-raspbian-9-4-debian-9-4-2019-05-13/9225&lt;br /&gt;
&lt;br /&gt;
*2018-05-24 update Raspbian jessie 8.0 V1.1&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/0B_YnvHgh2rwjRGlUMUdqZk5ETDg/view?usp=sharing&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1UnMPtGBNp3-8KHDZPhVOUg &lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m2u-berry-new-image-release-raspbian-jessie-8-0-2018-5-24/5812&lt;br /&gt;
&lt;br /&gt;
*2017-05-25 update raspbian jessie&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/0B_YnvHgh2rwjRGlUMUdqZk5ETDg/view?usp=sharing&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1civq4e &lt;br /&gt;
::MD5: 60e19ea9138d6841fa6852ece4727b0a&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m2-ultra-bpi-m2-berry-new-image-2017-05-25-raspbian-jessie-preview3-bpi-m2u-sd-emmc-img/3306&lt;br /&gt;
&lt;br /&gt;
==Armbian==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim2ultra_jammy_edge_6.1.11_xfce_desktop.img&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Disucss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m2-berry-new-armbian-image/15140&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Banana Pi BPI-M2 Berry_bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1vyK13DB2Z1OMjGE9Wd1XHYIMFPZ8UuZI/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1GMUZGZcWWXPKRSW1X5fRKw?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m2-berry-new-image-release-armbian-bullseye/14451&lt;br /&gt;
&lt;br /&gt;
*Armbain have support BPI-M2 Ultra/BPI-M2 Berry，Armbian Bionic btea and Armbian Stretch beta version&lt;br /&gt;
::image download ： https://www.armbian.com/bananapi-m2u/&lt;br /&gt;
::Boot logs : http://ix.io/1kVQ&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/armbian-bionic-and-stretch/6573&lt;br /&gt;
&lt;br /&gt;
==Tina IoT Linux ==&lt;br /&gt;
*BPI-M2 Ultra / BPI-M2 Berry support Allwinner TinaLinux . &lt;br /&gt;
::more please see : [[Tina Linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RPiTC v3 1.12==&lt;br /&gt;
*2017-11-28 updtae&lt;br /&gt;
*RPiTC v3 1.12 for Banana Pi (BPI-M2U/BPI-M2B/BPI-M2P/BPI-M3/BPI-M64/BPI-R2): [http://forum.banana-pi.org/t/rpitc-v3-1-12-for-banana-pi-bpi-m2u-bpi-m2b-bpi-m2p-bpi-m3-bpi-m64-bpi-r2/4292 download link]&lt;br /&gt;
&lt;br /&gt;
==Others==&lt;br /&gt;
* kali linux,crux linux,archlinux,centos linux for BPI-M2 Ultra &amp;amp; BPI-M2 Berry : [http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-2017-8-28-kali-linux-crux-linux-archlinux-centos-linux-image/3750 kali linux,crux linux,archlinux,centos linux 2017-08-25]&lt;br /&gt;
&lt;br /&gt;
* please download here:  http://forum.banana-pi.org/c/Banana-pi-BPI-M2-Ultra/M2Uimage&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M3&amp;diff=14209</id>
		<title>Banana Pi BPI-M3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M3&amp;diff=14209"/>
				<updated>2023-03-22T06:48:06Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M3]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M3_1.jpg|thumb|Overview: Allwinner A83T]]&lt;br /&gt;
[[File:Banana_pi_BPI-M3_5.jpg|thumb|Overview: front]]&lt;br /&gt;
[[File:3.7V.jpg|thumb|Overview: back]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2U_case_1.jpg|thumb|BPI-M3 Premium Aluminum Enclosure]]&lt;br /&gt;
[[File:Bpi-m2_ultar_case_1.jpg|thumb|BPI-M3 acrylic case]]&lt;br /&gt;
[[File:A83T.JPG|thumb|BPI 4.0 OEM&amp;amp;ODM server [[Successful case]] : A83T Raid Nas design]]&lt;br /&gt;
[[File:Magic_mirror_2.JPG|thumb|BPI 4.0 OEM&amp;amp;ODM server [[Successful case]] : A83T Magic Mirror]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M3 is a super charged single board computer with an Octa-core processor and 2GB of RAM. Along side the elite processing unit, it features Gigabit Ethernet, 2 USB, SATA, WiFi, Bluetooth, and HDMI connection. It can run on a variety of operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
&lt;br /&gt;
Being a brother of the power hungry M2, the M3 does not want to rest while his brother goes to acquire two more cores. The M3 secretly mastered the powerful art of Octa-core to best even the M2. Unlike his careless brother, the M3 did not lose his SATA port.&lt;br /&gt;
&lt;br /&gt;
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project. &lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M3_960x360.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A83T Octa-core 1.8GHz Powerful CPU.&lt;br /&gt;
* 2 GB LPDDR3 memory.&lt;br /&gt;
* 8 GB eMMC storage.&lt;br /&gt;
* HDMI out&lt;br /&gt;
* IR control&lt;br /&gt;
* WiFi &amp;amp; Bluetooth onboard.&lt;br /&gt;
* MIPI DSI ingerface&lt;br /&gt;
* CSI camera interface&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*How to burn image to BPI-M3 and begin [[Quick Start Banana pi SBC]]&lt;br /&gt;
*How to development [[Getting Start with M3]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:M3-hdw-label.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
! Banana Pi BPI-M3&lt;br /&gt;
|-&lt;br /&gt;
! CPU&lt;br /&gt;
| Allwinner A83T ARM Cortex-A7 Octa-Core 1.8&amp;amp;nbsp;GHz, 512KB L1 cache and 1MB L2 cache&lt;br /&gt;
|-&lt;br /&gt;
! GPU&lt;br /&gt;
| PowerVR SGX544MP1 Comply with OpenGL ES 2.0 OpenCL 1x, DX9_3&lt;br /&gt;
|-&lt;br /&gt;
! Memory&lt;br /&gt;
| 2 GB LPDDR3 (shared with GPU)&lt;br /&gt;
|-&lt;br /&gt;
! Storage&lt;br /&gt;
| On Board 8GB eMMC Flash, Micro SD-Card slot, SATA 2.0 Port (USB-to-SATA bridge)&lt;br /&gt;
|-&lt;br /&gt;
! Network&lt;br /&gt;
| 10/100/1000 Mbit/s Ethernet (Realtek RTL8211E/D) + Wi-Fi 802.11 b/g/n (AP6212) + Bluetooth BT4.0&lt;br /&gt;
|-&lt;br /&gt;
! Video Input(s)&lt;br /&gt;
| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
! Video Output(s)&lt;br /&gt;
| HDMI 1.4 (Type A Full), MIPI Display Serial Interface (DSI) for raw LCD Panel&lt;br /&gt;
|-&lt;br /&gt;
! Audio Input(s)&lt;br /&gt;
| On board microphone&lt;br /&gt;
|-&lt;br /&gt;
! Audio Output(s)&lt;br /&gt;
| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
! USB ports&lt;br /&gt;
| USB 2.0 PORT (x2), USB OTG (x1)&lt;br /&gt;
|-&lt;br /&gt;
! Remote&lt;br /&gt;
| IR Receiver (x1)&lt;br /&gt;
|-&lt;br /&gt;
! GPIO&lt;br /&gt;
| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). Some of I/O Pin can be used for specific functions as UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
! Switches&lt;br /&gt;
| Reset, Power and U-boot &lt;br /&gt;
|-&lt;br /&gt;
! LED&lt;br /&gt;
| Power Status and 8P8C&lt;br /&gt;
|-&lt;br /&gt;
! Power Source&lt;br /&gt;
| 5 volt @2A via DC Power and/or Micro USB (OTG)&lt;br /&gt;
|-&lt;br /&gt;
! Size &amp;amp; Weight&lt;br /&gt;
| 92x60mm, 48g&lt;br /&gt;
|-&lt;br /&gt;
! OS&lt;br /&gt;
| Android and Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M3 has a 40-pin GPIO header that matches that of the Model Raspberry Pi 3. Following is the Banana Pi GPIO Pinout:&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;4&amp;quot;| '''40 PIN GPIO define of Banana pi BPI-M3'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name||	Default Function||	Function2：GPIO||	Function3&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P01||	VCC-3V3	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P02||	DCIN||  ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P03||	TWI2-SDA||	PH5-EINT5||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P04||	DCIN|| ||　&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P05||	TWI2-SCK||	PH4-EINT4||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P06||	GND|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P07||	S-PWM||	PL10-S-EINT10||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P08||	UART2-TX||	PB0-EINT0||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P09||	GND|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P10||	UART2-RX||	PB1-EINT1||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P11||	PC4	PC4|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P12||	UART2-CTS||	PB3-EINT3||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P13||	PC7||	PC7	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P14||	GND	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P15||	PC17||	PC17||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P16||	UART2-RTS||	PB2-EINT2||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P17||	VCC-3V3	||  ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P18||	PL8-ENT8||	PL8-S-ENT8||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P19||	SPI0_MOSI||	PC0||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P20||	GND	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P21||	SPI0_MISO||	PC1	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P22||	PL9-EINT9||	PL9-S-EINT9	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P23||	SPI0_CLK||	PC2	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P24||	SPI0_CS||	PC3||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P25||	GND|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P26||	PH10-ENT10||	PH10-ENT10||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P27||	TWI1-SDA||	PH3-EINT3||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P28||	TWI1-SCK||	PH2-EINT2||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P29||	PC18||	PC18||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P30||	GND|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P31||	I2S1-BCLK||	PG10-EINT10||	UART3-TX&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P32||	I2S1-DIN||	PG13-EINT13||	UART3-CTS&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P33||	I2S1-LRCK||	PG11-EINT11||	UART3-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P34||	GND	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P35||	I2S1-DOUT||	PG12-EINT12||	UART3-RTS&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P36||	PE5||	PE5	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P37||	PE4||	PE4	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P38||	OWA-DOUT||	PE18||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P39||	GND	|| ||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P40||	PE19||	PE19||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CSI”.&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;4&amp;quot;| '''CSI camera GPIO of Banana pi BPI-M3'''&lt;br /&gt;
|-&lt;br /&gt;
|CSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P01||	IPSOUT	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P02||	AFVCC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P03||	IPSOUT	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P04||	IOVDD	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P05||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P06||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P07||	CSI2-D3N||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P08||	AVDD-CSI||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P09||	CSI2-D3P||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P10||	DVDD-CSI-R||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P11||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P12||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P13||	CSI2-D2N||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P14||	CSI-RST-R||	PE16&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P15||	CSI2-D2P||	|&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P16||	CSI-STBY-R||	PE17&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P17||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P18||	CSI-PCLK||	PE0&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P19||	CSI2-CKN||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P20||	CSI-MCLK||	PE1&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P21||	CSI2-CKP||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P22||	CSI-HSYNC||	PE2&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P23||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P24||	CSI-VSYNC||	PE3&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P25||	CSI2-D1N||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P26||	CSI-D9||	PE13&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P27||	CSI2-D1P||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P28||	CSI-D8||	PE12&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P29||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P30||	CSI-D7||	PE11&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P31||	CSI2-D0N||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P32||	CSI-D6||	PE10&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P33||	CSI2-D0P||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P34||	CSI-D5||	PE9&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P35||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P36||	CSI-D4||	PE8&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P37||	CSI-SCK||	PE14&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P38||	CSI-D3||	PE7&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P39||	CSI-SDA||	PE15&lt;br /&gt;
|-&lt;br /&gt;
|CN7-P40||	CSI-D2||	PE6&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Display specification'''&lt;br /&gt;
&lt;br /&gt;
MIPI DSI (Display Serial Interface)：&lt;br /&gt;
&lt;br /&gt;
The display Connector is a 40-pin FPC connector which can connect external LCD panel (MIPI DSI) and touch screen (I2C) module as well. The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “DSI”.&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;4&amp;quot;| '''MIPI DSI PIN define of Banana pi BPI-M3'''&lt;br /&gt;
|-&lt;br /&gt;
|DSI Pin Name||	Default Function||	Function2：GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P01||	VCC-MIPI||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P02||	IPSOUT||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P03||	VCC-MIPI||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P04||	IPSOUT||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P05||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P06||	IPSOUT||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P07||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P08||	IPSOUT||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P09||	NC||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P10||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P11||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P12||	DSI-D0N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P13||	NC||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P14||	DSI-D0P	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P15||	NC	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P16||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P17||	TWI0-SDA||	PH1-EINT1&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P18||	DSI-D1N||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P19||	TWI0-SCK||	PH0-EINT0&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P20||	DSI-D1P	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P21||	TP-INT||	PL7-S-EINT7&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P22||	GND||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P23||	TP-RST||	PL6-S-EINT6&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P24||	DSI-CKN	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P25||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P26||	DSI-CKP||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P27||	LCD-BL-EN||	PD29&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P28||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P29||	LCD-RST||	PD26&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P30||	DSI-D2N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P31||	LCD-PWR-EN||	PD27&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P32||	DSI-D2P||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P33||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P34||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P35||	LCD-PWM||	PD28&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P36||	DSI-D3N	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P37||	GND	||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P38||	DSI-D3P||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P39||	AP-RESET#||&lt;br /&gt;
|-&lt;br /&gt;
|CN6-P40||	GND	|||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The header CON4 is the UART interface.For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Uart debug pin of Banana pi BPI-M3'''&lt;br /&gt;
|-&lt;br /&gt;
|CON2 Pin Name	||Default Function||	GPIO&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P03||	UART0-TXD||	PB9&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P02||	UART0-RXD||	PB10&lt;br /&gt;
|-&lt;br /&gt;
|CON2 P01||	GND||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
==Android==&lt;br /&gt;
*How to burn android image to eMMC under windows ： https://bananapi.gitbooks.io/bpi-m3/content/en/how_to_burn_android_image_to_emmc.html&lt;br /&gt;
*BPI-M3 How to control GPIO on Android ：https://bananapi.gitbooks.io/bpi-m3/content/en/howtocontrolgpioonandroid.html&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
*How to burn Linux image to eMMC : https://bananapi.gitbooks.io/bpi-m3/content/en/howtoburnlinuximagetoemmc.html&lt;br /&gt;
*GPU for kernel 3.4 : https://bananapi.gitbooks.io/bpi-m3/content/en/gpuforkernel34.html&lt;br /&gt;
*How to rotate display screen : https://bananapi.gitbooks.io/bpi-m3/content/en/howtorotatedisplayscreen.html&lt;br /&gt;
*how to use fatload uEnv.txt &amp;amp; script.bin &amp;amp; kernel uImage : https://bananapi.gitbooks.io/bpi-m3/content/en/howtousefatloaduenvtxtscriptbinkernel_ui.html&lt;br /&gt;
&lt;br /&gt;
==Opnewrt==&lt;br /&gt;
==TinaLinux==&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
*[https://bananapi.gitbooks.io/bpi-m3/content/en/howtosetupdockerenvtobuildgithubsourcecod.html How to setup docker env. to build github source code ]&lt;br /&gt;
*[https://bananapi.gitbooks.io/bpi-m3/content/en/howtocompilebpi-m3-bspkernelonbpi-m3.html How to compile BPI-M3-bsp kernel on BPI-M3]&lt;br /&gt;
*[https://bananapi.gitbooks.io/bpi-m3/content/en/bpi-m3crosscompileteach.html  BPI-M3 BSP Cross Compile teach]&lt;br /&gt;
*[https://bananapi.gitbooks.io/bpi-m3/content/en/bpi-m3fixrootmydeviceissueforsecurityalert.html BPI-M3 fix rootmydevice issue for Security Alert]&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
* BPI-M3 android 5.1 source code ： https://drive.google.com/open?id=0B\_YnvHgh2rwjaGhIeUE0eERTZU0&lt;br /&gt;
*BPI-M3 Linux BSP code : https://github.com/BPI-SINOVOIP/BPI-M3-bsp&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
*BPI-M3 schematic diagram :[https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing  google driver]&lt;br /&gt;
*BPI-M3 DXF file : https://drive.google.com/file/d/0B4PAo2nW2KfnNm54VjBlUXhXekU/view&lt;br /&gt;
*BPI-M3 3D design file : https://drive.google.com/file/d/0B4PAo2nW2KfnYXVGWXBURDFSeTA/view&lt;br /&gt;
*A83T chip Datasheet V1.4 : https://drive.google.com/file/d/0B4PAo2nW2KfnM2VqeTR3SXpGdVE/view?usp=sharing &lt;br /&gt;
*Allwinner A83T chip User_Manual V1.5.1 : https://drive.google.com/file/d/0B4PAo2nW2KfnRjlQaU9uR0J0elE/view?usp=sharing&lt;br /&gt;
*android 5.0 development document（chinese）：https://drive.google.com/file/d/0B4PAo2nW2KfnekpvMnlNZ2p6NWs/view?usp=sharing&lt;br /&gt;
*allwinner chip online datasheet and documents : http://dl.linux-sunxi.org/&lt;br /&gt;
*linux-sunxi wiki : http://linux-sunxi.org/Banana_Pi_M3&lt;br /&gt;
*BPI-M3 quality guarantee&lt;br /&gt;
::BPI-M3 WIFI Lab test report : https://bananapi.gitbooks.io/bpi-m3/content/en/bpi-m3wifilabtest.html&lt;br /&gt;
::BPI-M3 Validation test report : https://bananapi.gitbooks.io/bpi-m3/content/en/bpi-m3validationtest.html&lt;br /&gt;
::BPI-M3 CE,FCC RoHS Certification : http://forum.banana-pi.org/t/bpi-m3-ce-fcc-rohs-certification/984&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
==Android 5.1.1 V5==&lt;br /&gt;
*2018-06-05 update &lt;br /&gt;
*HDMI-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1mLXOAH_LPT-uqtwWvgvJXw4Vo95tFr_z&lt;br /&gt;
::Baidu Cloud : https://pan.baidu.com/s/1byqwqzz9SOIWHYfOabXKNw&lt;br /&gt;
&lt;br /&gt;
*LCD-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1DAxQIws0eAVPAm0riH5HXc8M36SH_-sC&lt;br /&gt;
::Baidu Cloud : https://pan.baidu.com/s/19l7a6Z75FuZb_f9Ls0fN5w&lt;br /&gt;
&lt;br /&gt;
*2017-05-11 update &lt;br /&gt;
*HDMI-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjcXkxczlmOWxWV00&lt;br /&gt;
::Baidu Cloud : https://pan.baidu.com/s/1pKF3Ggj&lt;br /&gt;
::MD5: d7b7abf3443a49fb0f178ccf2f6e82d0 &lt;br /&gt;
*LCD-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjSkM5NHFWYVdlakk&lt;br /&gt;
::Baidu Cloud : https://pan.baidu.com/s/1mi2YOeG &lt;br /&gt;
::MD5: b27dd45ac5fd1fd3b02db8ffd92c2871 &lt;br /&gt;
*forum pthread : http://forum.banana-pi.org/t/bpi-m3-new-image-android-5-1-version-v5-2017-05-11/3241&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim3_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1iq0gCOAIHjE7bgxeccNPtFp9iK0AtzRM/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1FjNBqpJ0Kv83EpiKt9sZmw?pwd=mtk5 (pincode: mtk5)&lt;br /&gt;
&lt;br /&gt;
*2021-08-03 release, Ubuntu Mate Desktop 16.04 with kernel 3.4.39&lt;br /&gt;
::Download: [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FImages%2FBPI-M3%2FUbuntu16.04%2F2021-08-03-ubuntu-16.04-mate-desktop-bpi-m3-sd-emmc.img.zip 2021-08-03-ubuntu-16.04-mate-desktop-bpi-m3-sd-emmc.img.zip]&lt;br /&gt;
::MD5: 4cd6cfb9ed3a2d382dbc32bb478ac149&lt;br /&gt;
&lt;br /&gt;
*2021-08-03 release, Ubuntu Server 16.04 with kernel 3.4.39&lt;br /&gt;
::Download: [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FImages%2FBPI-M3%2FUbuntu16.04%2F2021-08-03-ubuntu-16.04-server-bpi-m3-sd-emmc.img.zip 2021-08-03-ubuntu-16.04-server-bpi-m3-sd-emmc.img.zip]&lt;br /&gt;
::MD5: ea5abe3fd6988931df85a2376808501a&lt;br /&gt;
&lt;br /&gt;
*2018-07-18 BPI-M3 Ubuntu 16.04 Mate Desktop (new eMMC)&lt;br /&gt;
::Features Map ：http://wiki.banana-pi.org/M3_Image_Map#Ubuntu_16.04&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1DlOrt08yUY9hAETiUXBiyoyPFHrOxtvq&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1ND5QqoBevzM2TykwqZCkAA&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-new-emmc-ubuntu16-04-debian9-release-2018-07-18/6294&lt;br /&gt;
&lt;br /&gt;
*2018-07-18 M3 Ubuntu Server (new eMMC)&lt;br /&gt;
::Features Map : http://wiki.banana-pi.org/M3_Image_Map#Ubuntu_Lite&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1Yyd2BepHjyhgXhSmnFh_0Az6YoXPEI3J&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/10vSo0AmIiMrVLNPkQ63leQ&lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-new-emmc-ubuntu16-04-debian9-release-2018-07-18/6294&lt;br /&gt;
&lt;br /&gt;
*2018-05-31 update ubuntu 16.04 mate desktop&lt;br /&gt;
**HDMI verison baidu cloud :　https://pan.baidu.com/s/1UDktbDgGtXpbqIZn_TI1Tg&lt;br /&gt;
&lt;br /&gt;
*2017-07-13 update ubuntu 16.04 mate desktop&lt;br /&gt;
* Image Link: &lt;br /&gt;
**HDMI version Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjRThoaHliWVVyZGM/view?usp=sharing &lt;br /&gt;
**HDMI verison baidu cloud :　http://pan.baidu.com/s/1nu6hJs9&lt;br /&gt;
**Forum pthread: http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-ubuntu-16-04-mate-desktop-beta-bpi-m3-ov8865-sd-emmc-2017-07-13/3542&lt;br /&gt;
**LCD 7 verison Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjVldzUENFQXpiTHc/view?usp=sharing&lt;br /&gt;
**LCD 7 version baidu cloud :　http://pan.baidu.com/s/1o8Uc4Y2 &lt;br /&gt;
**Forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-ubuntu-16-04-mate-desktop-beta-bpi-m3-lcd7-ov8865-sd-emmc-img-2017-7-13/3543&lt;br /&gt;
**LCD 5 Version Google Drive:https://drive.google.com/file/d/0B_YnvHgh2rwjUlpIVjB6LVVmMGc/view?usp=sharing &lt;br /&gt;
**LCD 5 Version baidu cloud : http://pan.baidu.com/s/1hsIJygG &lt;br /&gt;
** Forum thread:http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-ubuntu-16-04-mate-desktop-beta-bpi-m3-lcd5-ov8865-sd-emmc-img-2017-7-13/3544&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim3_bullseye_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1vrM4WLq74O4FEOAmBjUwJGbzZptq3hYi/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1w00wkfX15G6D60W2WH52ug?pwd=awza (pincode: awza) &lt;br /&gt;
&lt;br /&gt;
*2018-07-18 BPI-M3 Debian Jessie 9 (new eMMC)&lt;br /&gt;
::Features Map : http://wiki.banana-pi.org/M3_Image_Map#Debian_Jessie_9&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1M997Uf-RVqdFKJkXMjgY0w3fHyiOq4iG&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1yQYG1iOEIrJADV_j-qvdwQ&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-new-emmc-ubuntu16-04-debian9-release-2018-07-18/6294&lt;br /&gt;
&lt;br /&gt;
==Armbian==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim3_focal_current_5.15.82_xfce_desktop.img&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim3_jammy_edge_6.1.11_xfce_desktop.img&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim3_bullseye_edge_6.1.0_xfce_desktop.img&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888 1&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link 2&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m3-new-armbian-image/15138&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapim3_bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1Cr0KY0oVqSly-DOipgd_x_a4gQ0oPxm7/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/18M5Tsc91z57NUzBm4rcqlg?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-release-armbian-bullseye/14450&lt;br /&gt;
&lt;br /&gt;
*Armbian with 4.17.y for M3&lt;br /&gt;
::Test build:http://ix.io/1fUK&lt;br /&gt;
::Broken: wired, wireless network, Bluetooth, ...&lt;br /&gt;
::Works: serial console, 8 cores, DVFS, USB, SATA, HDMI, DRM video driver, ...&lt;br /&gt;
::image:https://forum.armbian.com/topic/474-banana-pi-m3/?do=findComment&amp;amp;comment=57400&lt;br /&gt;
::Forum pthread:http://forum.banana-pi.org/t/armbian-with-4-17-y-for-m3/6174&lt;br /&gt;
&lt;br /&gt;
==Rasbian==&lt;br /&gt;
*2021-08-03 release, Raspbian Stretch with kernel 3.4.39&lt;br /&gt;
::Download: [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FImages%2FBPI-M3%2FRaspbian%2F2021-08-03-raspbian-stretch-bpi-m3-sd-emmc.img.zip 2021-08-03-raspbian-stretch-bpi-m3-sd-emmc.img.zip]&lt;br /&gt;
::MD5: a9890cedbd779a29ff551a7fc5e1eae6&lt;br /&gt;
&lt;br /&gt;
* 2018-5-28 update : Raspbian 8.0 V1.1 &lt;br /&gt;
::Image Link: &lt;br /&gt;
::::Google Drive:  https://drive.google.com/open?id=1DSZru8UQRikI6pImLZIt1DmySVozy0FA&lt;br /&gt;
::::baidu cloud : https://pan.baidu.com/s/1Pz_6btHxj6F9w_6aw90Dww&lt;br /&gt;
::Forum thread:&lt;br /&gt;
:::: http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-release-raspbian-jessie-8-0-2018-5-28-v1-1/5847&lt;br /&gt;
&lt;br /&gt;
==Arch Linux ==&lt;br /&gt;
*2018-08-19 ArchLinux-4.18.1-1-ARCH : Kernel: 4.18.1-1-ARCH U-Boot: 2018.09-rc1&lt;br /&gt;
::U-Boot: 2018.09-rc1,Kernel: 4.18.1-1-ARCH,Ethernet works,Wifi works,HDMI works,LCD needs to be checked(I would appreciate if someone can check it),GPIO works(WiringPi),BPI tools included,I2C enabled(In TDB file)&lt;br /&gt;
::source code on github : https://github.com/apankevych/BananaPi-M3-Linux-4.18.1-1-ARCH&lt;br /&gt;
::download Image link:https://drive.google.com/file/d/1ia3JSmHH8ksia4e8doalUGSBHnytOgx4/view?usp=sharing&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bananapi-bpi-m3-new-image-archlinux-4-18-1-1-arch-2018-08-19/6544&lt;br /&gt;
&lt;br /&gt;
*2018-07-19 Arch Linux sunxi kernel-4.18-rc3 and uboot- 2018.01 thank Andriy_Pankevych do this great work.&lt;br /&gt;
:: Google drive : https://drive.google.com/open?id=1Ve91MG_7d1haawqqmiBo4qCugvF1iLyn&lt;br /&gt;
:: Source code: https://github.com/apankevych/BananaPi-M3-Linux-4.18.0-rc3&lt;br /&gt;
:: Forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-arch-linux-sunxi-kernel-4-18-rc3-and-uboot-2018-01-2018-07-19/6312&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
==Simplenas==&lt;br /&gt;
*simplenas image : https://simplenas.com/download/other/banana-m3&lt;br /&gt;
&lt;br /&gt;
==Lakka TV==&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Others image==&lt;br /&gt;
*http://forum.banana-pi.org/c/bpi-m3/M2image&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1&amp;diff=14208</id>
		<title>Banana Pi BPI-M1</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1&amp;diff=14208"/>
				<updated>2023-03-22T06:41:12Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M1]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M1_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1_2.jpg|thumb|Overview]]&lt;br /&gt;
[[File:BPI-M1_3d.jpg|thumb|BPI-M1 3D ]]&lt;br /&gt;
[[File:White-2.JPG|thumb|BPI-M1 with plastic case]]&lt;br /&gt;
[[File:MultiQB_front.jpg|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] : smart home gateway]]&lt;br /&gt;
[[File:IMG_3036.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :3G Information security terminal]]&lt;br /&gt;
[[File:IMG_3085.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :4G Industrial safety tablets]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi BPI-M1 is a business card-sized and low-power single-board computer featuring a high performance AllWinner A20 dual-core SoC at 1 GHz, 1 GB of DDR3 SDRAM, Gigabit Ethernet, SATA, USB, and HDMI connections. It can run a variety of operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
&lt;br /&gt;
It is the first open source hardware launched by the banana pie team, and also a classic product with the largest cumulative sales of banana pie.There are still a lot of business clients that apply to various projects.A20 chip&lt;br /&gt;
&lt;br /&gt;
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding.&lt;br /&gt;
&lt;br /&gt;
[[File:A_BPI-M1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A20 Dual-core 1.0GHz CPU&lt;br /&gt;
* Mali-400 MP2 with Open GL ES 2.0/1.1.&lt;br /&gt;
* 1 GB DDR3 memory.&lt;br /&gt;
* 1x SATA interface.&lt;br /&gt;
* 1x Gigabit LAN &lt;br /&gt;
* 1x USB otg and 2x USB 2.0&lt;br /&gt;
* 1X MIC&lt;br /&gt;
* AV vide out&lt;br /&gt;
* HDMI out&lt;br /&gt;
* IR &lt;br /&gt;
* CSI camera interface&lt;br /&gt;
* DSI display interface&lt;br /&gt;
* 26 PIN gpio&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Quick Start Banana pi SBC]]&lt;br /&gt;
*[[Getting Started with M1]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M1_interface.jpg]]&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;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Banana Pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU|| A20 ARM Cortex -A7 Dual-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU|| ARM Mali 400 MP2; Complies with OpenGL ES 2.0/1.1	&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 1GB DDR3&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Ethernet [[Modular connector|8P8C]] ([[1000BASE-T]])&lt;br /&gt;
|-&lt;br /&gt;
| Video Input|| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs|| HDMI, CVBS, LVDS/RGB&lt;br /&gt;
|-&lt;br /&gt;
| Audio Outputs|| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volts DC via Micro USB or GPIO&lt;br /&gt;
|-&lt;br /&gt;
| USB 2.0 ports|| 2 (direct from Allwinner A20 chip)&lt;br /&gt;
|-&lt;br /&gt;
| GPIO|| GPIO, UART, I2C BUS, SPI BUS, WITH TWO CHIP SELECTS, [[CAN bus]], ADC, PWM, +3.3V, +5V, GND&lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Key &amp;amp; 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Storage|| SATA 2.0, &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1 has a 26-pin GPIO header . Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M1_26_pin.png]]&lt;br /&gt;
&lt;br /&gt;
Note: 5V1,5V2 only support output,not support input&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
CSI Camera Connector The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CON1″.&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| CSI GPIO Pin || Pin Name || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P01 || LINEINL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P02 || LINEINR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P03 || VCC-CSI ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P04 || ADC\_X1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P06 || ADC\_X2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P07 || FMINL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P08 || ADC\_Y1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P09 || FMINR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P10 || ADC\_Y2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P11 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P12 || CSI-FLASH || PH17 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P13 || LRADC0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P14 || TWI1-SDA || PB19 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P15 || LRADC1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P16 || TWI1-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P17 || CSI-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P18 || CSI0-STBY-EN || PH19 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P19 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P20 || CSI-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P21 || CSI-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P22 || CSI0-PWR-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P23 || CSI-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P24 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P25 || CSI-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P26 || CSI0-RESET\# || PH14 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P27 || CSI-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P28 || CSI-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P29 || CSI-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P30 || CSI-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P31 || CSI-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P32 || CSI1-STBY-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P33 || RESET\# ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P34 || CSI1-RESET\# || PH13 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P35 || CSI-IO0 || PH11 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P36 || HPR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P37 || HPL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P38 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P40 || IPSOUT ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''LVDS \(LCD display interface\)'''&lt;br /&gt;
&lt;br /&gt;
The LVDS Connector is a 40-pin FPC connector which can connect external LCD panel \(LVDS\) and touch screen \(I2C\) module as well. The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “CON2″.&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;4&amp;quot;| '''LVDS  GPIO of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| LVDS Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| || ||Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || TWI3-SDA || || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P04 || TWI3-SCK || || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P05 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P06 || LCD0-IO0 || || PH7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P07 || LCDIO-03 || || PH12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P08 || LCD0-IO1 || || PH8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P09 || LCD0-D0 || LVDS0-VP0 || PD0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P10 || PWM0 || || PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P11 || LCD0-D1 || LVDS0-VN0 || PD1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P12 || LCD0-IO2 || || PH9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P13 || LCD0-D2 || LVDS0-VP1 || PD2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P14 || LCD0-DE || || PD25 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P15 || LCD0-D3 || LVDS0-VN1 || PD3&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P16 || LCD0-VSYNC || || PD27 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P17 || LCD0-D4 || LVDS0-VP2 || PD4 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P18 || LCD0-HSYNC || || PD26 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P19 || LCD0-D5 || LVDS0-VN2 || PD5 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P20 || LCD0-CS || || PH6 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P21 || LCD0-D6 || LVDS0-VPC || PD6 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P22 || LCD0-CLK || || PD24 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P23 || LCD0-D7 || LVDS0-VNC || PD7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P24 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P25 || LCD0-D8 || LVDS0-VP3 || PD8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P26 || LCD0-D23 || || PD23 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P27 || LCD0-D9 || LVDS0-VN3 || PD9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P28 || LCD0-D22 || || PD22 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P29 || LCD0-D10 || || PD10 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P30 || LCD0-D21 || || PD21 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P31 || LCD0-D11 || || PD11 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P32 || LCD0-D20 || || PD20 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P33 ||LCD0-D12 || || PD12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P34 || LCD0-D19 || || PD19 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P35 || LCD0-D13 || || PD13 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P36 || LCD0-D18 || || PD18 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P37 || LCD0-D14 || || PD14&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P38 || LCD0-D17 || || PD17 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P39 || LCD0-D15 || || PD15 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P40 || LCD0-D16 || || PD16 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper J11 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Jumper J11 of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| || || Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin1 || TXD || UART0-TX || PB22 &lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin2 || RXD || UART0-RX || PB23 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The jumper J12 provides the power source including 3.3V and 5V. There is a pair of UART TX/RX signals output here.&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;4&amp;quot;| '''Jumper J12 of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| ||  ||Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin1 || 5V || ||&lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin2 || 3.3V || || &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin3 || NC || IO-7 || PH5 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin4 || RXD || UART7\_RX || PI21 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin5 || NC ||IO-8 || PH3 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin6 || TXD || UART7\_TX || PI20 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin7 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin8 || GND || ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''All GPIO define list:'''&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M1_all_pin.png]]&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
* Linux kernel 3.4 Source code : https://github.com/BPI-SINOVOIP/BPI-M1-bsp&lt;br /&gt;
&lt;br /&gt;
* Android 4.4 source code&lt;br /&gt;
:LCD7 type: https://github.com/BPI-SINOVOIP/BPI-A20-Android-4.4&lt;br /&gt;
&lt;br /&gt;
* Android 4.2.2 source code&lt;br /&gt;
:HDMI type: https://github.com/BPI-SINOVOIP/BPI-A20-Android&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
&lt;br /&gt;
* schematic diagram:https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing&lt;br /&gt;
* BPI-M1 DXF file download link　:　[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfkd0QmxaU3F2bHBWdkFiS09vT3VoZkVyNW93OXFjM0dHRVdGazhRWmFzZDQ&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs google drive]&lt;br /&gt;
*BPI-M1 3D design file download link :[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfl95clI4ZzRKUmRENWhMcmwzUlVrYW1Ic3BXZENtUjJQcjk5TXc0RHBKdlU&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs　google drive]&lt;br /&gt;
*CE FCC RoHS : [https://bananapi.gitbooks.io/bpi-m1/content/en/bpi-m1_ce_fcc_rohs_certification.html BPI-M1 CE,FCC,RoHS ] &lt;br /&gt;
*Arch linux wiki for BPI-M1:https://wiki.archlinux.org/index.php/Banana_Pi&lt;br /&gt;
*Nas for BPI-M1/BPI-M1+ : https://www.hackster.io/jeffbaocai/bananapi-pro-nas-0815dc?ref=platform&amp;amp;ref_id=8064_popular___&amp;amp;offset=3&lt;br /&gt;
*NetBSD/evbarm on Allwinner SoCs : https://wiki.netbsd.org/ports/evbarm/allwinner/#index1h1&lt;br /&gt;
*Gentoo for banana pi : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
*openSUSE for banana pi : https://en.opensuse.org/HCL:BananaPi&lt;br /&gt;
*How to booting from SSD using Lubuntu / Raspbian ：https://bananapi.gitbooks.io/bpi-m1/content/en/howtobootingfromssdusinglubunturaspbian.html&lt;br /&gt;
*Building the cluster on BPI :　https://www.hackster.io/Penguinfly/banana-pi-cluster-47d566&lt;br /&gt;
* Allwinner documents:&lt;br /&gt;
::allwinner chip online datasheet and documents: http://dl.linux-sunxi.org/&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android 4.4==&lt;br /&gt;
*2018-07-28 update android 4.4 LCD version image &lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map &lt;br /&gt;
::Baidu Drive:https://pan.baidu.com/s/1DfSIiMvW_I-kFjTZMtcVsA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1qcH9baIhOphsDdlH_yBADuBiZsvrSKnt&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
* Release Date: 2018-07-26&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1HErsANQ4PsnwQJ-tH0AdTg&lt;br /&gt;
::Google Drive:&lt;br /&gt;
&lt;br /&gt;
==Ubuntu Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapi_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/1WtPL8Hfr9aaE3VRnpgR_R7VYsc7O3Y9P/view?usp=sharing&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1fM-in68EK_ABvSJ7XiY0Ag?pwd=yft7 (pincode: yft7)&lt;br /&gt;
&lt;br /&gt;
*Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
*2018-7-28 update :Ubuntu Server16.04 HDMI Version Image Link：&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1GYH8oDK3T_WcUFn-0t9YmQ&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=13XTvWe90yvRdqNWiKCLZ0HcMgo33y2r6&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
* Release Date: 2018-07-26&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1Tw_99XBZVOmKyavNxCXv3w&lt;br /&gt;
::Google Drive:&lt;br /&gt;
&lt;br /&gt;
==Debian Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapi_BPI-M1_bullseye_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1px0h0se8EiRuBiGGxT40hWpU3RWzPedK/view?usp=sharing&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1Vclux6Wb-ToJGOaGQxV6Hg?pwd=m4a3 (pincode: m4a3)&lt;br /&gt;
&lt;br /&gt;
*2019-9-18 update. Debian 10 buster mate desktop with grub support (boot-2019.07 + kernel 5.1.1)&lt;br /&gt;
::google drive:https://drive.google.com/file/d/1uGYn3BZ9k1K1iqmmZhlCy6pXeeNwfU6P/view?usp=sharing&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m1-m1-r1-new-image-debian-10-buster-mate-desktop-with-grub-support-boot-2019-07-kernel-5-1-1/9916&lt;br /&gt;
&lt;br /&gt;
== Armbian image ==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapi_jammy_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapi_jammy_edge_6.1.11.img.xz&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive:  https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m1-new-armbian-image/15157&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapi BPI-M1_bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1ZSFOd-nVFbAn_xB9AXckx9SEKQvnMB2J/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/12R8mIf7_45HDtruqEvktBw?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m1-new-image-release-armbian-bullseye/14446/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Armbian Xenial and Armbian Jessie &lt;br /&gt;
::Image lownload link :https://www.armbian.com/bananapi/&lt;br /&gt;
&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
===Official OpenWRT===&lt;br /&gt;
*BPI-M1/BPI-M1+/BPI-R1 use A20 chip,so easy to run openwrt&lt;br /&gt;
*wiki : https://wiki.openwrt.org/toh/lamobo/r1&lt;br /&gt;
*openwrt support for allwinner :https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;s[]=pi&lt;br /&gt;
*image download : https://downloads.openwrt.org/chaos_calmer/15.05/sunxi/generic/uboot-sunxi-Lamobo_R1/&lt;br /&gt;
*opwrt for Allwinner Soc : https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;amp;s[]=pi&lt;br /&gt;
&lt;br /&gt;
===BPI BSP for OpenWRT===&lt;br /&gt;
*How to build OpenWRT image from github : https://bananapi.gitbooks.io/bpi-m1/content/en/howtobuildopenwrtimagefromgithub.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
==OpenSuse==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/opensuse.html&lt;br /&gt;
&lt;br /&gt;
==OpenMediaVault==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/openmediavault.html&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/arch_linux.html&lt;br /&gt;
&lt;br /&gt;
==Gentoo Linux==&lt;br /&gt;
*Gentoo Linux have officeal support banana pi BPI-M1, so you also can use on BPI-M1+,and BPI-R1, all is base on allwinner A20 chip.&lt;br /&gt;
*gentoo linux wiki : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
&lt;br /&gt;
==RaspBSD==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/raspbsdonbpi-m1.html&lt;br /&gt;
&lt;br /&gt;
==CentOS==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/centos7linuxforbpi.html&lt;br /&gt;
&lt;br /&gt;
==DietPi==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/dietpi.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD/NetBSD==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/freebsdnetbsd.html&lt;br /&gt;
&lt;br /&gt;
==Lakka TV==&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
==Simplenas==&lt;br /&gt;
*simplenas image : https://simplenas.com/download/other/banana-pi-m1&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1%2B&amp;diff=14207</id>
		<title>Banana Pi BPI-M1+</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1%2B&amp;diff=14207"/>
				<updated>2023-03-22T06:40:21Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M1%2B]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_2.jpg|thumb|Overview]]&lt;br /&gt;
[[File:BPI-M1+_3d.jpg|thumb|BPI-M1+ 3D]]&lt;br /&gt;
[[File:MultiQB_front.jpg|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] : smart home gateway]]&lt;br /&gt;
[[File:IMG_3036.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :3G Information security terminal]]&lt;br /&gt;
[[File:IMG_3085.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :4G Industrial safety tablets]]&lt;br /&gt;
[[File:BPI-M1+_case.jpg|thumb|BPI-M1+ case]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1+ upgrade is an open-source single-board computer that adds more connectivity to the classic board. It features the same high performance AllWinner A20 dual-core SoC at 1GHz, 1GB of DDR3 SDRAM, Gigabit Ethernet, SATA, USB, and HDMI connections found in classic BPI-M1+ ; but the Banana Pi M1+ features onboard WiFi g/b/n. The board supports all classic projects and even more because of the onboard WIFi chip. Like its sibling, it can run operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
&lt;br /&gt;
[[File:A_BPI-M1+.jpg]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi M1+ is our upgraded M1 board. We feel like the onboard WiFi adds a lot more features to the board and makes it more convient for users to set up their linx desktop or router projects. &lt;br /&gt;
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. With a Banana Pi, we want you to explore and experience the world of DIY projects and portable computing. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A20 Dual-core 1.0GHz CPU&lt;br /&gt;
* Mali-400 MP2 with Open GL ES 2.0/1.1.&lt;br /&gt;
* 1 GB DDR3 memory.&lt;br /&gt;
* Wifi support onboard&lt;br /&gt;
* 1x SATA interface.&lt;br /&gt;
* 1x Gigabit LAN &lt;br /&gt;
* 1x USB otg and 2x USB 2.0&lt;br /&gt;
* 1X MIC&lt;br /&gt;
* AV out&lt;br /&gt;
* HDMI out&lt;br /&gt;
* IR &lt;br /&gt;
* CSI camera interface&lt;br /&gt;
* DSI display interface&lt;br /&gt;
* 40 PIN gpio&lt;br /&gt;
* 3.7V lithium battery interface&lt;br /&gt;
&lt;br /&gt;
==Get startting ==&lt;br /&gt;
*How to burn image : [[Quick Start Banana pi SBC]]&lt;br /&gt;
*How to development : [[Getting Started with M1P]]&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
===Hardware interface===&lt;br /&gt;
[[File:BPI-M1_plus_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;4&amp;quot;| '''Banana Pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| CPU&lt;br /&gt;
| A20 ARM Cortex -A7 Dual-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU&lt;br /&gt;
| ARM Mali400MP2Complies with OpenGL ES 2.0/1.1	&lt;br /&gt;
|-&lt;br /&gt;
| Memory&lt;br /&gt;
| 1GB DDR3&lt;br /&gt;
|-&lt;br /&gt;
| Network&lt;br /&gt;
| 10/100/1000 Ethernet &lt;br /&gt;
|-&lt;br /&gt;
| wifi&amp;amp;BT&lt;br /&gt;
| Wifi support onboard&lt;br /&gt;
|-&lt;br /&gt;
| Video Input&lt;br /&gt;
| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs&lt;br /&gt;
| HDMI, CVBS, LVDS/RGB&lt;br /&gt;
|-&lt;br /&gt;
| Audio Outputs&lt;br /&gt;
| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Power Source&lt;br /&gt;
| 5V/2A via Micro USB (DC in only) and / or Micro USB OTG&lt;br /&gt;
|-&lt;br /&gt;
| USB 2.0 ports&lt;br /&gt;
| 2(direct from Allwinner A20 chip)&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| GPIO, UART, I2C BUS, SPI BUS, WITH TWO CHIP SELECTS, [[CAN bus]], ADC, PWM, +3.3V, +5V, GND&lt;br /&gt;
|-&lt;br /&gt;
| LED&lt;br /&gt;
| Power Key &amp;amp; 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Storage&lt;br /&gt;
| SATA 2.0&lt;br /&gt;
|-&lt;br /&gt;
| OS&lt;br /&gt;
| Android 4.4, Android 4.2, Raspbian, Lubuntu, Open Suse, Debian&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===GPIO PIN define ===&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1+ has a 40-pin GPIO header . Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
[[File:Gpio define.png]]&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P01 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P02 || VCC-DC ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P03 || TWI2-SDA || PB21 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P04 || VCC-DC ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P05 || TWI2-SCK || PB20 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P06 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P07 || PWM1 || PI3 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P08 || UART3\_TX ||PH0 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P09 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P10 || UART3\_RX || PH1 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P11 || UART2\_RX || PI19 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P12 || PH2 || PH2 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P13 || UART2\_TX || PI18 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P14 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P15 || UART2\_CTS || PI17 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P16 || CAN\_TX || PH20 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P17 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P18 || CAN\_RX || PH21 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P19 || SPI0\_MOSI || PI12 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P20 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P21 || SPI0\_MISO || PI13 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P22 || UART2\_RTS || PI16 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P23 || SPI0\_CLK || PI11 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P24 || SPI0\_CS0 || PI10 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P25 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P26 || SPI0\_CS1 || PI14 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P27 || TWI3-SDA || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P28 || TWI3-SCK || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P29 || I2S\_MCLK || PB5 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P30 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P31 || I2S\_BCLK || PB6 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P32 || I2S\_DI || PB12 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P33 || I2S\_LRCK || PB7 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P34 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P35 || I2S\_DO0 || PB8 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P36 || UART7\_RX || PI21 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P37 || IR0\_TX || PB3 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P38 || UART7\_TX || PI20 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P40 || SPDIF\_DO || PB13 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings.The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CON1″.&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;4&amp;quot;| '''CSI PIN of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|  CSI Pin Name || Default Function Pin name || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P01 || LINEINL ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P02 || LINEINR ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P03 || VCC-CSI ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P04 || ADC\_X1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P06 || ADC\_X2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P07 || FMINL ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P08 || ADC\_Y1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P09 || FMINR ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P10 || ADC\_Y2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P11 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P12 || CSI-FLASH || PH17 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P13 || LRADC0 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P14 || TWI1-SDA || PB19 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P15 || LRADC1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P16 || TWI1-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P17 || CSI-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P18 || CSI0-STBY-EN || PH19 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P19 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P20 || CSI-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P21 || CSI-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P22 || CSI0-PWR-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P23 || CSI-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P24 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P25 || CSI-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P26 || CSI0-RESET\# || PH14 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P27 || CSI-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P28 || CSI-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P29 || CSI-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P30 || CSI-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P31 || CSI-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P32 || CSI1-STBY-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P33 || AP-RESET\# ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P34 || CSI1-RESET\# || PH13 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P35 || CSI-IO0 || PH11 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P36 || HPR ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P37 || HPL ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P38 || IPSOUT &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P40 || IPSOUT || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''LVDS \(LCD display interface\)'''&lt;br /&gt;
&lt;br /&gt;
The LVDS Connector is a 40-pin FPC connector which can connect external LCD panel \(LVDS\) and touch screen \(I2C\) module as well.The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “CON2″.&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;4&amp;quot;| '''LVDS PIN of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
| LVDS Pin || Default Function || Function2 || Function3：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || TWI3-SDA || || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P04 || TWI3-SCK || || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P05 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P06 || LCD0-IO0 || || PH7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P07 || LCDIO-03 || || PH12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P08 || LCD0-IO1 || || PH8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P09 || LCD0-D0 || LVDS0-VP0 || PD0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P10 || PWM0 || ||  PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P11 || LCD0-D1 || LVDS0-VN0 || PD1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P12 || LCD0-IO2 || || PH9 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P13 || LCD0-D2 || LVDS0-VP1 || PD2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P14 || LCD0-DE || || PD25 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P15 || LCD0-D3 || LVDS0-VN1 || PD3 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P16 || LCD0-VSYNC || || PD27 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P17 || LCD0-D4 || LVDS0-VP2 || PD4 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P18 || LCD0-HSYNC || || PD26 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P19 || LCD0-D5 || LVDS0-VN2 || PD5 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P20 || LCD0-CS || || PH6 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P21 || LCD0-D6 || LVDS0-VPC || PD6 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P22 || LCD0-CLK || || PD24 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P23 || LCD0-D7 || LVDS0-VNC || PD7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P24 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P25 || LCD0-D8 ||LVDS0-VP3 || PD8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P26 || LCD0-D23 || || PD23 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P27 || LCD0-D9 || LVDS0-VN3 || PD9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P28 || LCD0-D22 || || PD22 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P29 || LCD0-D10 || || PD10 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P30 || LCD0-D21 || || PD21 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P31 || LCD0-D11 || || PD11 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P32 || LCD0-D20 || || PD20 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P33 || LCD0-D12 || || PD12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P34 || LCD0-D19 || || PD19 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P35 || LCD0-D13 || || PD13 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P36 || LCD0-D18 || || PD18 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P37 || LCD0-D14 || || PD14 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P38 || LCD0-D17 || || PD17 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P39 || LCD0-D15 || || PD15 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P40 || LCD0-D16 || || PD16 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper J11header CON4 is the UART interface.For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''UART debug PIN of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|  Pin Name || Default Function || GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CON4 P03 || UART0-TXD || PB22 &lt;br /&gt;
|-&lt;br /&gt;
|  CON4 P02 || UART0-RXD || PB23 &lt;br /&gt;
|-&lt;br /&gt;
|  CON4 P01 ||GND || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
* Linux kernel 3.4 Source code : https://github.com/BPI-SINOVOIP/BPI-M1-bsp&lt;br /&gt;
&lt;br /&gt;
* Android 4.4 source code&lt;br /&gt;
:LCD7 type: https://github.com/BPI-SINOVOIP/BPI-A20-Android-4.4&lt;br /&gt;
&lt;br /&gt;
* Android 4.2.2 source code&lt;br /&gt;
:HDMI type: https://github.com/BPI-SINOVOIP/BPI-A20-Android&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
* schematic diagram: [https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing google drive]&lt;br /&gt;
* BPI-M1+ DXF file download link　:　[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfkd0QmxaU3F2bHBWdkFiS09vT3VoZkVyNW93OXFjM0dHRVdGazhRWmFzZDQ&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs google drive]&lt;br /&gt;
*BPI-M1+ 3D design file download link :[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfl95clI4ZzRKUmRENWhMcmwzUlVrYW1Ic3BXZENtUjJQcjk5TXc0RHBKdlU&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs　google drive]&lt;br /&gt;
*CE FCC RoHS : [https://bananapi.gitbooks.io/bpi-m1/content/en/bpi-m1_ce_fcc_rohs_certification.html BPI-M1 CE,FCC,RoHS ] &lt;br /&gt;
*Arch linux wiki for BPI-M1:https://wiki.archlinux.org/index.php/Banana_Pi&lt;br /&gt;
*Nas for BPI-M1/BPI-M1+ : https://www.hackster.io/jeffbaocai/bananapi-pro-nas-0815dc?ref=platform&amp;amp;ref_id=8064_popular___&amp;amp;offset=3&lt;br /&gt;
*NetBSD/evbarm on Allwinner SoCs : https://wiki.netbsd.org/ports/evbarm/allwinner/#index1h1&lt;br /&gt;
*Gentoo for banana pi : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
*openSUSE for banana pi : https://en.opensuse.org/HCL:BananaPi&lt;br /&gt;
*How to booting from SSD using Lubuntu / Raspbian ：https://bananapi.gitbooks.io/bpi-m1/content/en/howtobootingfromssdusinglubunturaspbian.html&lt;br /&gt;
*Building the cluster on BPI :　https://www.hackster.io/Penguinfly/banana-pi-cluster-47d566&lt;br /&gt;
* Allwinner documents:&lt;br /&gt;
::allwinner chip online datasheet and documents: http://dl.linux-sunxi.org/&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
==Android 4.4==&lt;br /&gt;
*2018-07-28 update android 4.4 LCD version image &lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map &lt;br /&gt;
::Baidu Drive:https://pan.baidu.com/s/1DfSIiMvW_I-kFjTZMtcVsA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1qcH9baIhOphsDdlH_yBADuBiZsvrSKnt&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
== Armbian image ==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim1plus_jammy_edge_6.1.11_xfce_desktop.img.xz,This release is for banana pi M1 Plus board, which is based on Armbian operation system.&lt;br /&gt;
jammy edge version with 6.1.11 kernel.&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888 1&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link 2&lt;br /&gt;
::Discuss on forum : https://forum.banana-pi.org/t/banana-pi-bpi-m1-plus-new-armbian-image/15158&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapi BPI-M1+ bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1AMEfQIygT8949sfkX6HIjap7WKpQox4i/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1ePzBiwN0wEd8j3muk1HOlA?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m1-new-image-release-armbian-bullseye/14447/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Armbian Xenial and Armbian Jessie &lt;br /&gt;
::Image lownload link :https://www.armbian.com/banana-pi-plus/&lt;br /&gt;
&lt;br /&gt;
==Ubuntu linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim1plus_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1hlPkFx-NhGoCxYlHCqe4q9LwuQ0GosQL/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1SOeRKjVmTqTb6rMD71SfAw?pwd=wbnt (pincode: wbnt) &lt;br /&gt;
&lt;br /&gt;
*Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
==Debian Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim1plus_bullseye_edge_5.19.6_xfce_desktop&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1XpumxbOR74FSLayoICh4ZN4G3uZ_o0Fo/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1JtqdKE4AsAwCc6i_Wys_VA?pwd=6kgc (pincode: 6kgc)&lt;br /&gt;
&lt;br /&gt;
*2019-9-18 update. Debian 10 buster mate desktop with grub support (boot-2019.07 + kernel 5.1.1)&lt;br /&gt;
::google driver:https://drive.google.com/file/d/1FhbaO6pDBu5jSPYq1ghd7YKG-KvFy33Q/view?usp=sharing&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m1-m1-r1-new-image-debian-10-buster-mate-desktop-with-grub-support-boot-2019-07-kernel-5-1-1/9916&lt;br /&gt;
&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
===Officeal OpenWRT===&lt;br /&gt;
*BPI-M1/BPI-M1+/BPI-R1 use A20 chip,so easy to run openwrt&lt;br /&gt;
*wiki : https://wiki.openwrt.org/toh/lamobo/r1&lt;br /&gt;
*openwrt support for allwinner :https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;s[]=pi&lt;br /&gt;
*image download : https://downloads.openwrt.org/chaos_calmer/15.05/sunxi/generic/uboot-sunxi-Lamobo_R1/&lt;br /&gt;
*opwrt for Allwinner Soc : https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;amp;s[]=pi&lt;br /&gt;
&lt;br /&gt;
===BPI BSP for OpenWRT===&lt;br /&gt;
*How to build OpenWRT image from github : https://bananapi.gitbooks.io/bpi-m1/content/en/howtobuildopenwrtimagefromgithub.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
==OpenSuse==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/opensuse.html&lt;br /&gt;
&lt;br /&gt;
==OpenMediaVault==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/openmediavault.html&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/arch_linux.html&lt;br /&gt;
&lt;br /&gt;
==Gentoo Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/gentoolinux.html&lt;br /&gt;
&lt;br /&gt;
==RaspBSD==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/raspbsdonbpi-m1.html&lt;br /&gt;
&lt;br /&gt;
==CentOS==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/centos7linuxforbpi.html&lt;br /&gt;
&lt;br /&gt;
==DietPi==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/dietpi.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD/NetBSD==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/freebsdnetbsd.html&lt;br /&gt;
&lt;br /&gt;
==Lakka TV==&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
==Simplenas==&lt;br /&gt;
*simplenas image : https://simplenas.com/download/other/banana-pi-m1&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1%2B&amp;diff=14206</id>
		<title>Banana Pi BPI-M1+</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1%2B&amp;diff=14206"/>
				<updated>2023-03-22T06:39:38Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M1%2B]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_2.jpg|thumb|Overview]]&lt;br /&gt;
[[File:BPI-M1+_3d.jpg|thumb|BPI-M1+ 3D]]&lt;br /&gt;
[[File:MultiQB_front.jpg|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] : smart home gateway]]&lt;br /&gt;
[[File:IMG_3036.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :3G Information security terminal]]&lt;br /&gt;
[[File:IMG_3085.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :4G Industrial safety tablets]]&lt;br /&gt;
[[File:BPI-M1+_case.jpg|thumb|BPI-M1+ case]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1+ upgrade is an open-source single-board computer that adds more connectivity to the classic board. It features the same high performance AllWinner A20 dual-core SoC at 1GHz, 1GB of DDR3 SDRAM, Gigabit Ethernet, SATA, USB, and HDMI connections found in classic BPI-M1+ ; but the Banana Pi M1+ features onboard WiFi g/b/n. The board supports all classic projects and even more because of the onboard WIFi chip. Like its sibling, it can run operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
&lt;br /&gt;
[[File:A_BPI-M1+.jpg]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi M1+ is our upgraded M1 board. We feel like the onboard WiFi adds a lot more features to the board and makes it more convient for users to set up their linx desktop or router projects. &lt;br /&gt;
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. With a Banana Pi, we want you to explore and experience the world of DIY projects and portable computing. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A20 Dual-core 1.0GHz CPU&lt;br /&gt;
* Mali-400 MP2 with Open GL ES 2.0/1.1.&lt;br /&gt;
* 1 GB DDR3 memory.&lt;br /&gt;
* Wifi support onboard&lt;br /&gt;
* 1x SATA interface.&lt;br /&gt;
* 1x Gigabit LAN &lt;br /&gt;
* 1x USB otg and 2x USB 2.0&lt;br /&gt;
* 1X MIC&lt;br /&gt;
* AV out&lt;br /&gt;
* HDMI out&lt;br /&gt;
* IR &lt;br /&gt;
* CSI camera interface&lt;br /&gt;
* DSI display interface&lt;br /&gt;
* 40 PIN gpio&lt;br /&gt;
* 3.7V lithium battery interface&lt;br /&gt;
&lt;br /&gt;
==Get startting ==&lt;br /&gt;
*How to burn image : [[Quick Start Banana pi SBC]]&lt;br /&gt;
*How to development : [[Getting Started with M1P]]&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
===Hardware interface===&lt;br /&gt;
[[File:BPI-M1_plus_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;4&amp;quot;| '''Banana Pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| CPU&lt;br /&gt;
| A20 ARM Cortex -A7 Dual-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU&lt;br /&gt;
| ARM Mali400MP2Complies with OpenGL ES 2.0/1.1	&lt;br /&gt;
|-&lt;br /&gt;
| Memory&lt;br /&gt;
| 1GB DDR3&lt;br /&gt;
|-&lt;br /&gt;
| Network&lt;br /&gt;
| 10/100/1000 Ethernet &lt;br /&gt;
|-&lt;br /&gt;
| wifi&amp;amp;BT&lt;br /&gt;
| Wifi support onboard&lt;br /&gt;
|-&lt;br /&gt;
| Video Input&lt;br /&gt;
| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs&lt;br /&gt;
| HDMI, CVBS, LVDS/RGB&lt;br /&gt;
|-&lt;br /&gt;
| Audio Outputs&lt;br /&gt;
| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Power Source&lt;br /&gt;
| 5V/2A via Micro USB (DC in only) and / or Micro USB OTG&lt;br /&gt;
|-&lt;br /&gt;
| USB 2.0 ports&lt;br /&gt;
| 2(direct from Allwinner A20 chip)&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| GPIO, UART, I2C BUS, SPI BUS, WITH TWO CHIP SELECTS, [[CAN bus]], ADC, PWM, +3.3V, +5V, GND&lt;br /&gt;
|-&lt;br /&gt;
| LED&lt;br /&gt;
| Power Key &amp;amp; 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Storage&lt;br /&gt;
| SATA 2.0&lt;br /&gt;
|-&lt;br /&gt;
| OS&lt;br /&gt;
| Android 4.4, Android 4.2, Raspbian, Lubuntu, Open Suse, Debian&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===GPIO PIN define ===&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1+ has a 40-pin GPIO header . Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
[[File:Gpio define.png]]&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P01 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P02 || VCC-DC ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P03 || TWI2-SDA || PB21 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P04 || VCC-DC ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P05 || TWI2-SCK || PB20 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P06 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P07 || PWM1 || PI3 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P08 || UART3\_TX ||PH0 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P09 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P10 || UART3\_RX || PH1 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P11 || UART2\_RX || PI19 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P12 || PH2 || PH2 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P13 || UART2\_TX || PI18 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P14 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P15 || UART2\_CTS || PI17 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P16 || CAN\_TX || PH20 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P17 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P18 || CAN\_RX || PH21 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P19 || SPI0\_MOSI || PI12 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P20 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P21 || SPI0\_MISO || PI13 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P22 || UART2\_RTS || PI16 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P23 || SPI0\_CLK || PI11 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P24 || SPI0\_CS0 || PI10 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P25 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P26 || SPI0\_CS1 || PI14 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P27 || TWI3-SDA || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P28 || TWI3-SCK || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P29 || I2S\_MCLK || PB5 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P30 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P31 || I2S\_BCLK || PB6 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P32 || I2S\_DI || PB12 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P33 || I2S\_LRCK || PB7 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P34 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P35 || I2S\_DO0 || PB8 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P36 || UART7\_RX || PI21 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P37 || IR0\_TX || PB3 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P38 || UART7\_TX || PI20 &lt;br /&gt;
|-&lt;br /&gt;
| CON3-P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON3-P40 || SPDIF\_DO || PB13 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings.The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CON1″.&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;4&amp;quot;| '''CSI PIN of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|  CSI Pin Name || Default Function Pin name || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P01 || LINEINL ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P02 || LINEINR ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P03 || VCC-CSI ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P04 || ADC\_X1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P06 || ADC\_X2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P07 || FMINL ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P08 || ADC\_Y1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P09 || FMINR ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P10 || ADC\_Y2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P11 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P12 || CSI-FLASH || PH17 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P13 || LRADC0 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P14 || TWI1-SDA || PB19 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P15 || LRADC1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P16 || TWI1-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P17 || CSI-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P18 || CSI0-STBY-EN || PH19 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P19 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P20 || CSI-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P21 || CSI-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P22 || CSI0-PWR-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P23 || CSI-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P24 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P25 || CSI-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P26 || CSI0-RESET\# || PH14 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P27 || CSI-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P28 || CSI-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P29 || CSI-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P30 || CSI-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P31 || CSI-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P32 || CSI1-STBY-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P33 || AP-RESET\# ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P34 || CSI1-RESET\# || PH13 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P35 || CSI-IO0 || PH11 &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P36 || HPR ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P37 || HPL ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P38 || IPSOUT &lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON1 P40 || IPSOUT || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''LVDS \(LCD display interface\)'''&lt;br /&gt;
&lt;br /&gt;
The LVDS Connector is a 40-pin FPC connector which can connect external LCD panel \(LVDS\) and touch screen \(I2C\) module as well.The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “CON2″.&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;4&amp;quot;| '''LVDS PIN of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
| LVDS Pin || Default Function || Function2 || Function3：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || TWI3-SDA || || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P04 || TWI3-SCK || || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P05 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P06 || LCD0-IO0 || || PH7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P07 || LCDIO-03 || || PH12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P08 || LCD0-IO1 || || PH8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P09 || LCD0-D0 || LVDS0-VP0 || PD0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P10 || PWM0 || ||  PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P11 || LCD0-D1 || LVDS0-VN0 || PD1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P12 || LCD0-IO2 || || PH9 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P13 || LCD0-D2 || LVDS0-VP1 || PD2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P14 || LCD0-DE || || PD25 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P15 || LCD0-D3 || LVDS0-VN1 || PD3 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P16 || LCD0-VSYNC || || PD27 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P17 || LCD0-D4 || LVDS0-VP2 || PD4 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P18 || LCD0-HSYNC || || PD26 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P19 || LCD0-D5 || LVDS0-VN2 || PD5 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P20 || LCD0-CS || || PH6 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P21 || LCD0-D6 || LVDS0-VPC || PD6 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P22 || LCD0-CLK || || PD24 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P23 || LCD0-D7 || LVDS0-VNC || PD7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P24 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P25 || LCD0-D8 ||LVDS0-VP3 || PD8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P26 || LCD0-D23 || || PD23 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P27 || LCD0-D9 || LVDS0-VN3 || PD9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P28 || LCD0-D22 || || PD22 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P29 || LCD0-D10 || || PD10 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P30 || LCD0-D21 || || PD21 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P31 || LCD0-D11 || || PD11 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P32 || LCD0-D20 || || PD20 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P33 || LCD0-D12 || || PD12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P34 || LCD0-D19 || || PD19 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P35 || LCD0-D13 || || PD13 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P36 || LCD0-D18 || || PD18 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P37 || LCD0-D14 || || PD14 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P38 || LCD0-D17 || || PD17 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P39 || LCD0-D15 || || PD15 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P40 || LCD0-D16 || || PD16 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper J11header CON4 is the UART interface.For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''UART debug PIN of Banana pi BPI-M1+'''&lt;br /&gt;
|-&lt;br /&gt;
|  Pin Name || Default Function || GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CON4 P03 || UART0-TXD || PB22 &lt;br /&gt;
|-&lt;br /&gt;
|  CON4 P02 || UART0-RXD || PB23 &lt;br /&gt;
|-&lt;br /&gt;
|  CON4 P01 ||GND || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
* Linux kernel 3.4 Source code : https://github.com/BPI-SINOVOIP/BPI-M1-bsp&lt;br /&gt;
&lt;br /&gt;
* Android 4.4 source code&lt;br /&gt;
:LCD7 type: https://github.com/BPI-SINOVOIP/BPI-A20-Android-4.4&lt;br /&gt;
&lt;br /&gt;
* Android 4.2.2 source code&lt;br /&gt;
:HDMI type: https://github.com/BPI-SINOVOIP/BPI-A20-Android&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
* schematic diagram: [https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing google drive]&lt;br /&gt;
* BPI-M1+ DXF file download link　:　[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfkd0QmxaU3F2bHBWdkFiS09vT3VoZkVyNW93OXFjM0dHRVdGazhRWmFzZDQ&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs google drive]&lt;br /&gt;
*BPI-M1+ 3D design file download link :[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfl95clI4ZzRKUmRENWhMcmwzUlVrYW1Ic3BXZENtUjJQcjk5TXc0RHBKdlU&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs　google drive]&lt;br /&gt;
*CE FCC RoHS : [https://bananapi.gitbooks.io/bpi-m1/content/en/bpi-m1_ce_fcc_rohs_certification.html BPI-M1 CE,FCC,RoHS ] &lt;br /&gt;
*Arch linux wiki for BPI-M1:https://wiki.archlinux.org/index.php/Banana_Pi&lt;br /&gt;
*Nas for BPI-M1/BPI-M1+ : https://www.hackster.io/jeffbaocai/bananapi-pro-nas-0815dc?ref=platform&amp;amp;ref_id=8064_popular___&amp;amp;offset=3&lt;br /&gt;
*NetBSD/evbarm on Allwinner SoCs : https://wiki.netbsd.org/ports/evbarm/allwinner/#index1h1&lt;br /&gt;
*Gentoo for banana pi : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
*openSUSE for banana pi : https://en.opensuse.org/HCL:BananaPi&lt;br /&gt;
*How to booting from SSD using Lubuntu / Raspbian ：https://bananapi.gitbooks.io/bpi-m1/content/en/howtobootingfromssdusinglubunturaspbian.html&lt;br /&gt;
*Building the cluster on BPI :　https://www.hackster.io/Penguinfly/banana-pi-cluster-47d566&lt;br /&gt;
* Allwinner documents:&lt;br /&gt;
::allwinner chip online datasheet and documents: http://dl.linux-sunxi.org/&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
==Android 4.4==&lt;br /&gt;
*2018-07-28 update android 4.4 LCD version image &lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map &lt;br /&gt;
::Baidu Drive:https://pan.baidu.com/s/1DfSIiMvW_I-kFjTZMtcVsA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1qcH9baIhOphsDdlH_yBADuBiZsvrSKnt&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
== Armbian image ==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim1plus_jammy_edge_6.1.11_xfce_desktop.img.xz&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/banana-pi-bpi-m1-plus-new-armbian-image/15158&lt;br /&gt;
&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapim1plus_jammy_edge_6.1.11_xfce_desktop.img.xz,This release is for banana pi M1 Plus board, which is based on Armbian operation system.&lt;br /&gt;
jammy edge version with 6.1.11 kernel.&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888 1&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link 2&lt;br /&gt;
::Discuss on forum : https://forum.banana-pi.org/t/banana-pi-bpi-m1-plus-new-armbian-image/15158&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapi BPI-M1+ bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1AMEfQIygT8949sfkX6HIjap7WKpQox4i/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1ePzBiwN0wEd8j3muk1HOlA?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m1-new-image-release-armbian-bullseye/14447/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Armbian Xenial and Armbian Jessie &lt;br /&gt;
::Image lownload link :https://www.armbian.com/banana-pi-plus/&lt;br /&gt;
&lt;br /&gt;
==Ubuntu linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim1plus_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1hlPkFx-NhGoCxYlHCqe4q9LwuQ0GosQL/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1SOeRKjVmTqTb6rMD71SfAw?pwd=wbnt (pincode: wbnt) &lt;br /&gt;
&lt;br /&gt;
*Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
==Debian Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapim1plus_bullseye_edge_5.19.6_xfce_desktop&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1XpumxbOR74FSLayoICh4ZN4G3uZ_o0Fo/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1JtqdKE4AsAwCc6i_Wys_VA?pwd=6kgc (pincode: 6kgc)&lt;br /&gt;
&lt;br /&gt;
*2019-9-18 update. Debian 10 buster mate desktop with grub support (boot-2019.07 + kernel 5.1.1)&lt;br /&gt;
::google driver:https://drive.google.com/file/d/1FhbaO6pDBu5jSPYq1ghd7YKG-KvFy33Q/view?usp=sharing&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m1-m1-r1-new-image-debian-10-buster-mate-desktop-with-grub-support-boot-2019-07-kernel-5-1-1/9916&lt;br /&gt;
&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
===Officeal OpenWRT===&lt;br /&gt;
*BPI-M1/BPI-M1+/BPI-R1 use A20 chip,so easy to run openwrt&lt;br /&gt;
*wiki : https://wiki.openwrt.org/toh/lamobo/r1&lt;br /&gt;
*openwrt support for allwinner :https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;s[]=pi&lt;br /&gt;
*image download : https://downloads.openwrt.org/chaos_calmer/15.05/sunxi/generic/uboot-sunxi-Lamobo_R1/&lt;br /&gt;
*opwrt for Allwinner Soc : https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;amp;s[]=pi&lt;br /&gt;
&lt;br /&gt;
===BPI BSP for OpenWRT===&lt;br /&gt;
*How to build OpenWRT image from github : https://bananapi.gitbooks.io/bpi-m1/content/en/howtobuildopenwrtimagefromgithub.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
==OpenSuse==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/opensuse.html&lt;br /&gt;
&lt;br /&gt;
==OpenMediaVault==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/openmediavault.html&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/arch_linux.html&lt;br /&gt;
&lt;br /&gt;
==Gentoo Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/gentoolinux.html&lt;br /&gt;
&lt;br /&gt;
==RaspBSD==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/raspbsdonbpi-m1.html&lt;br /&gt;
&lt;br /&gt;
==CentOS==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/centos7linuxforbpi.html&lt;br /&gt;
&lt;br /&gt;
==DietPi==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/dietpi.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD/NetBSD==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/freebsdnetbsd.html&lt;br /&gt;
&lt;br /&gt;
==Lakka TV==&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
==Simplenas==&lt;br /&gt;
*simplenas image : https://simplenas.com/download/other/banana-pi-m1&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1&amp;diff=14205</id>
		<title>Banana Pi BPI-M1</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1&amp;diff=14205"/>
				<updated>2023-03-22T06:36:11Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M1]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M1_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1_2.jpg|thumb|Overview]]&lt;br /&gt;
[[File:BPI-M1_3d.jpg|thumb|BPI-M1 3D ]]&lt;br /&gt;
[[File:White-2.JPG|thumb|BPI-M1 with plastic case]]&lt;br /&gt;
[[File:MultiQB_front.jpg|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] : smart home gateway]]&lt;br /&gt;
[[File:IMG_3036.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :3G Information security terminal]]&lt;br /&gt;
[[File:IMG_3085.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :4G Industrial safety tablets]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi BPI-M1 is a business card-sized and low-power single-board computer featuring a high performance AllWinner A20 dual-core SoC at 1 GHz, 1 GB of DDR3 SDRAM, Gigabit Ethernet, SATA, USB, and HDMI connections. It can run a variety of operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
&lt;br /&gt;
It is the first open source hardware launched by the banana pie team, and also a classic product with the largest cumulative sales of banana pie.There are still a lot of business clients that apply to various projects.A20 chip&lt;br /&gt;
&lt;br /&gt;
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding.&lt;br /&gt;
&lt;br /&gt;
[[File:A_BPI-M1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A20 Dual-core 1.0GHz CPU&lt;br /&gt;
* Mali-400 MP2 with Open GL ES 2.0/1.1.&lt;br /&gt;
* 1 GB DDR3 memory.&lt;br /&gt;
* 1x SATA interface.&lt;br /&gt;
* 1x Gigabit LAN &lt;br /&gt;
* 1x USB otg and 2x USB 2.0&lt;br /&gt;
* 1X MIC&lt;br /&gt;
* AV vide out&lt;br /&gt;
* HDMI out&lt;br /&gt;
* IR &lt;br /&gt;
* CSI camera interface&lt;br /&gt;
* DSI display interface&lt;br /&gt;
* 26 PIN gpio&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Quick Start Banana pi SBC]]&lt;br /&gt;
*[[Getting Started with M1]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M1_interface.jpg]]&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;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Banana Pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU|| A20 ARM Cortex -A7 Dual-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU|| ARM Mali 400 MP2; Complies with OpenGL ES 2.0/1.1	&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 1GB DDR3&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Ethernet [[Modular connector|8P8C]] ([[1000BASE-T]])&lt;br /&gt;
|-&lt;br /&gt;
| Video Input|| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs|| HDMI, CVBS, LVDS/RGB&lt;br /&gt;
|-&lt;br /&gt;
| Audio Outputs|| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volts DC via Micro USB or GPIO&lt;br /&gt;
|-&lt;br /&gt;
| USB 2.0 ports|| 2 (direct from Allwinner A20 chip)&lt;br /&gt;
|-&lt;br /&gt;
| GPIO|| GPIO, UART, I2C BUS, SPI BUS, WITH TWO CHIP SELECTS, [[CAN bus]], ADC, PWM, +3.3V, +5V, GND&lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Key &amp;amp; 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Storage|| SATA 2.0, &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1 has a 26-pin GPIO header . Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M1_26_pin.png]]&lt;br /&gt;
&lt;br /&gt;
Note: 5V1,5V2 only support output,not support input&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
CSI Camera Connector The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CON1″.&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| CSI GPIO Pin || Pin Name || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P01 || LINEINL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P02 || LINEINR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P03 || VCC-CSI ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P04 || ADC\_X1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P06 || ADC\_X2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P07 || FMINL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P08 || ADC\_Y1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P09 || FMINR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P10 || ADC\_Y2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P11 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P12 || CSI-FLASH || PH17 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P13 || LRADC0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P14 || TWI1-SDA || PB19 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P15 || LRADC1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P16 || TWI1-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P17 || CSI-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P18 || CSI0-STBY-EN || PH19 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P19 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P20 || CSI-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P21 || CSI-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P22 || CSI0-PWR-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P23 || CSI-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P24 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P25 || CSI-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P26 || CSI0-RESET\# || PH14 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P27 || CSI-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P28 || CSI-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P29 || CSI-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P30 || CSI-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P31 || CSI-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P32 || CSI1-STBY-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P33 || RESET\# ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P34 || CSI1-RESET\# || PH13 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P35 || CSI-IO0 || PH11 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P36 || HPR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P37 || HPL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P38 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P40 || IPSOUT ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''LVDS \(LCD display interface\)'''&lt;br /&gt;
&lt;br /&gt;
The LVDS Connector is a 40-pin FPC connector which can connect external LCD panel \(LVDS\) and touch screen \(I2C\) module as well. The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “CON2″.&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;4&amp;quot;| '''LVDS  GPIO of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| LVDS Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| || ||Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || TWI3-SDA || || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P04 || TWI3-SCK || || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P05 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P06 || LCD0-IO0 || || PH7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P07 || LCDIO-03 || || PH12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P08 || LCD0-IO1 || || PH8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P09 || LCD0-D0 || LVDS0-VP0 || PD0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P10 || PWM0 || || PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P11 || LCD0-D1 || LVDS0-VN0 || PD1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P12 || LCD0-IO2 || || PH9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P13 || LCD0-D2 || LVDS0-VP1 || PD2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P14 || LCD0-DE || || PD25 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P15 || LCD0-D3 || LVDS0-VN1 || PD3&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P16 || LCD0-VSYNC || || PD27 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P17 || LCD0-D4 || LVDS0-VP2 || PD4 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P18 || LCD0-HSYNC || || PD26 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P19 || LCD0-D5 || LVDS0-VN2 || PD5 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P20 || LCD0-CS || || PH6 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P21 || LCD0-D6 || LVDS0-VPC || PD6 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P22 || LCD0-CLK || || PD24 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P23 || LCD0-D7 || LVDS0-VNC || PD7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P24 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P25 || LCD0-D8 || LVDS0-VP3 || PD8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P26 || LCD0-D23 || || PD23 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P27 || LCD0-D9 || LVDS0-VN3 || PD9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P28 || LCD0-D22 || || PD22 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P29 || LCD0-D10 || || PD10 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P30 || LCD0-D21 || || PD21 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P31 || LCD0-D11 || || PD11 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P32 || LCD0-D20 || || PD20 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P33 ||LCD0-D12 || || PD12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P34 || LCD0-D19 || || PD19 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P35 || LCD0-D13 || || PD13 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P36 || LCD0-D18 || || PD18 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P37 || LCD0-D14 || || PD14&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P38 || LCD0-D17 || || PD17 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P39 || LCD0-D15 || || PD15 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P40 || LCD0-D16 || || PD16 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper J11 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Jumper J11 of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| || || Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin1 || TXD || UART0-TX || PB22 &lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin2 || RXD || UART0-RX || PB23 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The jumper J12 provides the power source including 3.3V and 5V. There is a pair of UART TX/RX signals output here.&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;4&amp;quot;| '''Jumper J12 of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| ||  ||Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin1 || 5V || ||&lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin2 || 3.3V || || &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin3 || NC || IO-7 || PH5 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin4 || RXD || UART7\_RX || PI21 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin5 || NC ||IO-8 || PH3 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin6 || TXD || UART7\_TX || PI20 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin7 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin8 || GND || ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''All GPIO define list:'''&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M1_all_pin.png]]&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
* Linux kernel 3.4 Source code : https://github.com/BPI-SINOVOIP/BPI-M1-bsp&lt;br /&gt;
&lt;br /&gt;
* Android 4.4 source code&lt;br /&gt;
:LCD7 type: https://github.com/BPI-SINOVOIP/BPI-A20-Android-4.4&lt;br /&gt;
&lt;br /&gt;
* Android 4.2.2 source code&lt;br /&gt;
:HDMI type: https://github.com/BPI-SINOVOIP/BPI-A20-Android&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
&lt;br /&gt;
* schematic diagram:https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing&lt;br /&gt;
* BPI-M1 DXF file download link　:　[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfkd0QmxaU3F2bHBWdkFiS09vT3VoZkVyNW93OXFjM0dHRVdGazhRWmFzZDQ&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs google drive]&lt;br /&gt;
*BPI-M1 3D design file download link :[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfl95clI4ZzRKUmRENWhMcmwzUlVrYW1Ic3BXZENtUjJQcjk5TXc0RHBKdlU&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs　google drive]&lt;br /&gt;
*CE FCC RoHS : [https://bananapi.gitbooks.io/bpi-m1/content/en/bpi-m1_ce_fcc_rohs_certification.html BPI-M1 CE,FCC,RoHS ] &lt;br /&gt;
*Arch linux wiki for BPI-M1:https://wiki.archlinux.org/index.php/Banana_Pi&lt;br /&gt;
*Nas for BPI-M1/BPI-M1+ : https://www.hackster.io/jeffbaocai/bananapi-pro-nas-0815dc?ref=platform&amp;amp;ref_id=8064_popular___&amp;amp;offset=3&lt;br /&gt;
*NetBSD/evbarm on Allwinner SoCs : https://wiki.netbsd.org/ports/evbarm/allwinner/#index1h1&lt;br /&gt;
*Gentoo for banana pi : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
*openSUSE for banana pi : https://en.opensuse.org/HCL:BananaPi&lt;br /&gt;
*How to booting from SSD using Lubuntu / Raspbian ：https://bananapi.gitbooks.io/bpi-m1/content/en/howtobootingfromssdusinglubunturaspbian.html&lt;br /&gt;
*Building the cluster on BPI :　https://www.hackster.io/Penguinfly/banana-pi-cluster-47d566&lt;br /&gt;
* Allwinner documents:&lt;br /&gt;
::allwinner chip online datasheet and documents: http://dl.linux-sunxi.org/&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android 4.4==&lt;br /&gt;
*2018-07-28 update android 4.4 LCD version image &lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map &lt;br /&gt;
::Baidu Drive:https://pan.baidu.com/s/1DfSIiMvW_I-kFjTZMtcVsA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1qcH9baIhOphsDdlH_yBADuBiZsvrSKnt&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
* Release Date: 2018-07-26&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1HErsANQ4PsnwQJ-tH0AdTg&lt;br /&gt;
::Google Drive:&lt;br /&gt;
&lt;br /&gt;
==Ubuntu Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapi_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/1WtPL8Hfr9aaE3VRnpgR_R7VYsc7O3Y9P/view?usp=sharing&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1fM-in68EK_ABvSJ7XiY0Ag?pwd=yft7 (pincode: yft7)&lt;br /&gt;
&lt;br /&gt;
*Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
*2018-7-28 update :Ubuntu Server16.04 HDMI Version Image Link：&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1GYH8oDK3T_WcUFn-0t9YmQ&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=13XTvWe90yvRdqNWiKCLZ0HcMgo33y2r6&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
* Release Date: 2018-07-26&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1Tw_99XBZVOmKyavNxCXv3w&lt;br /&gt;
::Google Drive:&lt;br /&gt;
&lt;br /&gt;
==Debian Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapi_BPI-M1_bullseye_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1px0h0se8EiRuBiGGxT40hWpU3RWzPedK/view?usp=sharing&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1Vclux6Wb-ToJGOaGQxV6Hg?pwd=m4a3 (pincode: m4a3)&lt;br /&gt;
&lt;br /&gt;
*2019-9-18 update. Debian 10 buster mate desktop with grub support (boot-2019.07 + kernel 5.1.1)&lt;br /&gt;
::google drive:https://drive.google.com/file/d/1uGYn3BZ9k1K1iqmmZhlCy6pXeeNwfU6P/view?usp=sharing&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m1-m1-r1-new-image-debian-10-buster-mate-desktop-with-grub-support-boot-2019-07-kernel-5-1-1/9916&lt;br /&gt;
&lt;br /&gt;
== Armbian image ==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapi_jammy_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapi_jammy_edge_6.1.11.img.xz&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive:  https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapi BPI-M1_bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1ZSFOd-nVFbAn_xB9AXckx9SEKQvnMB2J/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/12R8mIf7_45HDtruqEvktBw?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m1-new-image-release-armbian-bullseye/14446/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Armbian Xenial and Armbian Jessie &lt;br /&gt;
::Image lownload link :https://www.armbian.com/bananapi/&lt;br /&gt;
&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
===Official OpenWRT===&lt;br /&gt;
*BPI-M1/BPI-M1+/BPI-R1 use A20 chip,so easy to run openwrt&lt;br /&gt;
*wiki : https://wiki.openwrt.org/toh/lamobo/r1&lt;br /&gt;
*openwrt support for allwinner :https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;s[]=pi&lt;br /&gt;
*image download : https://downloads.openwrt.org/chaos_calmer/15.05/sunxi/generic/uboot-sunxi-Lamobo_R1/&lt;br /&gt;
*opwrt for Allwinner Soc : https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;amp;s[]=pi&lt;br /&gt;
&lt;br /&gt;
===BPI BSP for OpenWRT===&lt;br /&gt;
*How to build OpenWRT image from github : https://bananapi.gitbooks.io/bpi-m1/content/en/howtobuildopenwrtimagefromgithub.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
==OpenSuse==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/opensuse.html&lt;br /&gt;
&lt;br /&gt;
==OpenMediaVault==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/openmediavault.html&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/arch_linux.html&lt;br /&gt;
&lt;br /&gt;
==Gentoo Linux==&lt;br /&gt;
*Gentoo Linux have officeal support banana pi BPI-M1, so you also can use on BPI-M1+,and BPI-R1, all is base on allwinner A20 chip.&lt;br /&gt;
*gentoo linux wiki : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
&lt;br /&gt;
==RaspBSD==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/raspbsdonbpi-m1.html&lt;br /&gt;
&lt;br /&gt;
==CentOS==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/centos7linuxforbpi.html&lt;br /&gt;
&lt;br /&gt;
==DietPi==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/dietpi.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD/NetBSD==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/freebsdnetbsd.html&lt;br /&gt;
&lt;br /&gt;
==Lakka TV==&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
==Simplenas==&lt;br /&gt;
*simplenas image : https://simplenas.com/download/other/banana-pi-m1&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1&amp;diff=14204</id>
		<title>Banana Pi BPI-M1</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1&amp;diff=14204"/>
				<updated>2023-03-22T06:35:47Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M1]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M1_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1_2.jpg|thumb|Overview]]&lt;br /&gt;
[[File:BPI-M1_3d.jpg|thumb|BPI-M1 3D ]]&lt;br /&gt;
[[File:White-2.JPG|thumb|BPI-M1 with plastic case]]&lt;br /&gt;
[[File:MultiQB_front.jpg|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] : smart home gateway]]&lt;br /&gt;
[[File:IMG_3036.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :3G Information security terminal]]&lt;br /&gt;
[[File:IMG_3085.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :4G Industrial safety tablets]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi BPI-M1 is a business card-sized and low-power single-board computer featuring a high performance AllWinner A20 dual-core SoC at 1 GHz, 1 GB of DDR3 SDRAM, Gigabit Ethernet, SATA, USB, and HDMI connections. It can run a variety of operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
&lt;br /&gt;
It is the first open source hardware launched by the banana pie team, and also a classic product with the largest cumulative sales of banana pie.There are still a lot of business clients that apply to various projects.A20 chip&lt;br /&gt;
&lt;br /&gt;
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding.&lt;br /&gt;
&lt;br /&gt;
[[File:A_BPI-M1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A20 Dual-core 1.0GHz CPU&lt;br /&gt;
* Mali-400 MP2 with Open GL ES 2.0/1.1.&lt;br /&gt;
* 1 GB DDR3 memory.&lt;br /&gt;
* 1x SATA interface.&lt;br /&gt;
* 1x Gigabit LAN &lt;br /&gt;
* 1x USB otg and 2x USB 2.0&lt;br /&gt;
* 1X MIC&lt;br /&gt;
* AV vide out&lt;br /&gt;
* HDMI out&lt;br /&gt;
* IR &lt;br /&gt;
* CSI camera interface&lt;br /&gt;
* DSI display interface&lt;br /&gt;
* 26 PIN gpio&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Quick Start Banana pi SBC]]&lt;br /&gt;
*[[Getting Started with M1]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M1_interface.jpg]]&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;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Banana Pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU|| A20 ARM Cortex -A7 Dual-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU|| ARM Mali 400 MP2; Complies with OpenGL ES 2.0/1.1	&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 1GB DDR3&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Ethernet [[Modular connector|8P8C]] ([[1000BASE-T]])&lt;br /&gt;
|-&lt;br /&gt;
| Video Input|| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs|| HDMI, CVBS, LVDS/RGB&lt;br /&gt;
|-&lt;br /&gt;
| Audio Outputs|| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volts DC via Micro USB or GPIO&lt;br /&gt;
|-&lt;br /&gt;
| USB 2.0 ports|| 2 (direct from Allwinner A20 chip)&lt;br /&gt;
|-&lt;br /&gt;
| GPIO|| GPIO, UART, I2C BUS, SPI BUS, WITH TWO CHIP SELECTS, [[CAN bus]], ADC, PWM, +3.3V, +5V, GND&lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Key &amp;amp; 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Storage|| SATA 2.0, &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1 has a 26-pin GPIO header . Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M1_26_pin.png]]&lt;br /&gt;
&lt;br /&gt;
Note: 5V1,5V2 only support output,not support input&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
CSI Camera Connector The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CON1″.&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| CSI GPIO Pin || Pin Name || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P01 || LINEINL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P02 || LINEINR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P03 || VCC-CSI ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P04 || ADC\_X1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P06 || ADC\_X2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P07 || FMINL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P08 || ADC\_Y1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P09 || FMINR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P10 || ADC\_Y2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P11 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P12 || CSI-FLASH || PH17 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P13 || LRADC0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P14 || TWI1-SDA || PB19 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P15 || LRADC1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P16 || TWI1-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P17 || CSI-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P18 || CSI0-STBY-EN || PH19 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P19 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P20 || CSI-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P21 || CSI-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P22 || CSI0-PWR-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P23 || CSI-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P24 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P25 || CSI-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P26 || CSI0-RESET\# || PH14 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P27 || CSI-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P28 || CSI-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P29 || CSI-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P30 || CSI-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P31 || CSI-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P32 || CSI1-STBY-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P33 || RESET\# ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P34 || CSI1-RESET\# || PH13 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P35 || CSI-IO0 || PH11 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P36 || HPR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P37 || HPL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P38 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P40 || IPSOUT ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''LVDS \(LCD display interface\)'''&lt;br /&gt;
&lt;br /&gt;
The LVDS Connector is a 40-pin FPC connector which can connect external LCD panel \(LVDS\) and touch screen \(I2C\) module as well. The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “CON2″.&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;4&amp;quot;| '''LVDS  GPIO of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| LVDS Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| || ||Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || TWI3-SDA || || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P04 || TWI3-SCK || || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P05 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P06 || LCD0-IO0 || || PH7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P07 || LCDIO-03 || || PH12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P08 || LCD0-IO1 || || PH8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P09 || LCD0-D0 || LVDS0-VP0 || PD0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P10 || PWM0 || || PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P11 || LCD0-D1 || LVDS0-VN0 || PD1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P12 || LCD0-IO2 || || PH9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P13 || LCD0-D2 || LVDS0-VP1 || PD2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P14 || LCD0-DE || || PD25 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P15 || LCD0-D3 || LVDS0-VN1 || PD3&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P16 || LCD0-VSYNC || || PD27 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P17 || LCD0-D4 || LVDS0-VP2 || PD4 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P18 || LCD0-HSYNC || || PD26 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P19 || LCD0-D5 || LVDS0-VN2 || PD5 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P20 || LCD0-CS || || PH6 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P21 || LCD0-D6 || LVDS0-VPC || PD6 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P22 || LCD0-CLK || || PD24 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P23 || LCD0-D7 || LVDS0-VNC || PD7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P24 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P25 || LCD0-D8 || LVDS0-VP3 || PD8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P26 || LCD0-D23 || || PD23 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P27 || LCD0-D9 || LVDS0-VN3 || PD9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P28 || LCD0-D22 || || PD22 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P29 || LCD0-D10 || || PD10 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P30 || LCD0-D21 || || PD21 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P31 || LCD0-D11 || || PD11 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P32 || LCD0-D20 || || PD20 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P33 ||LCD0-D12 || || PD12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P34 || LCD0-D19 || || PD19 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P35 || LCD0-D13 || || PD13 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P36 || LCD0-D18 || || PD18 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P37 || LCD0-D14 || || PD14&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P38 || LCD0-D17 || || PD17 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P39 || LCD0-D15 || || PD15 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P40 || LCD0-D16 || || PD16 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper J11 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Jumper J11 of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| || || Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin1 || TXD || UART0-TX || PB22 &lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin2 || RXD || UART0-RX || PB23 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The jumper J12 provides the power source including 3.3V and 5V. There is a pair of UART TX/RX signals output here.&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;4&amp;quot;| '''Jumper J12 of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| ||  ||Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin1 || 5V || ||&lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin2 || 3.3V || || &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin3 || NC || IO-7 || PH5 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin4 || RXD || UART7\_RX || PI21 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin5 || NC ||IO-8 || PH3 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin6 || TXD || UART7\_TX || PI20 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin7 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin8 || GND || ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''All GPIO define list:'''&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M1_all_pin.png]]&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
* Linux kernel 3.4 Source code : https://github.com/BPI-SINOVOIP/BPI-M1-bsp&lt;br /&gt;
&lt;br /&gt;
* Android 4.4 source code&lt;br /&gt;
:LCD7 type: https://github.com/BPI-SINOVOIP/BPI-A20-Android-4.4&lt;br /&gt;
&lt;br /&gt;
* Android 4.2.2 source code&lt;br /&gt;
:HDMI type: https://github.com/BPI-SINOVOIP/BPI-A20-Android&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
&lt;br /&gt;
* schematic diagram:https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing&lt;br /&gt;
* BPI-M1 DXF file download link　:　[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfkd0QmxaU3F2bHBWdkFiS09vT3VoZkVyNW93OXFjM0dHRVdGazhRWmFzZDQ&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs google drive]&lt;br /&gt;
*BPI-M1 3D design file download link :[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfl95clI4ZzRKUmRENWhMcmwzUlVrYW1Ic3BXZENtUjJQcjk5TXc0RHBKdlU&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs　google drive]&lt;br /&gt;
*CE FCC RoHS : [https://bananapi.gitbooks.io/bpi-m1/content/en/bpi-m1_ce_fcc_rohs_certification.html BPI-M1 CE,FCC,RoHS ] &lt;br /&gt;
*Arch linux wiki for BPI-M1:https://wiki.archlinux.org/index.php/Banana_Pi&lt;br /&gt;
*Nas for BPI-M1/BPI-M1+ : https://www.hackster.io/jeffbaocai/bananapi-pro-nas-0815dc?ref=platform&amp;amp;ref_id=8064_popular___&amp;amp;offset=3&lt;br /&gt;
*NetBSD/evbarm on Allwinner SoCs : https://wiki.netbsd.org/ports/evbarm/allwinner/#index1h1&lt;br /&gt;
*Gentoo for banana pi : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
*openSUSE for banana pi : https://en.opensuse.org/HCL:BananaPi&lt;br /&gt;
*How to booting from SSD using Lubuntu / Raspbian ：https://bananapi.gitbooks.io/bpi-m1/content/en/howtobootingfromssdusinglubunturaspbian.html&lt;br /&gt;
*Building the cluster on BPI :　https://www.hackster.io/Penguinfly/banana-pi-cluster-47d566&lt;br /&gt;
* Allwinner documents:&lt;br /&gt;
::allwinner chip online datasheet and documents: http://dl.linux-sunxi.org/&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android 4.4==&lt;br /&gt;
*2018-07-28 update android 4.4 LCD version image &lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map &lt;br /&gt;
::Baidu Drive:https://pan.baidu.com/s/1DfSIiMvW_I-kFjTZMtcVsA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1qcH9baIhOphsDdlH_yBADuBiZsvrSKnt&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
* Release Date: 2018-07-26&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1HErsANQ4PsnwQJ-tH0AdTg&lt;br /&gt;
::Google Drive:&lt;br /&gt;
&lt;br /&gt;
==Ubuntu Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapi_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/1WtPL8Hfr9aaE3VRnpgR_R7VYsc7O3Y9P/view?usp=sharing&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1fM-in68EK_ABvSJ7XiY0Ag?pwd=yft7 (pincode: yft7)&lt;br /&gt;
&lt;br /&gt;
*Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
*2018-7-28 update :Ubuntu Server16.04 HDMI Version Image Link：&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1GYH8oDK3T_WcUFn-0t9YmQ&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=13XTvWe90yvRdqNWiKCLZ0HcMgo33y2r6&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
* Release Date: 2018-07-26&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1Tw_99XBZVOmKyavNxCXv3w&lt;br /&gt;
::Google Drive:&lt;br /&gt;
&lt;br /&gt;
==Debian Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapi_BPI-M1_bullseye_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1px0h0se8EiRuBiGGxT40hWpU3RWzPedK/view?usp=sharing&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1Vclux6Wb-ToJGOaGQxV6Hg?pwd=m4a3 (pincode: m4a3)&lt;br /&gt;
&lt;br /&gt;
*2019-9-18 update. Debian 10 buster mate desktop with grub support (boot-2019.07 + kernel 5.1.1)&lt;br /&gt;
::google drive:https://drive.google.com/file/d/1uGYn3BZ9k1K1iqmmZhlCy6pXeeNwfU6P/view?usp=sharing&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m1-m1-r1-new-image-debian-10-buster-mate-desktop-with-grub-support-boot-2019-07-kernel-5-1-1/9916&lt;br /&gt;
&lt;br /&gt;
== Armbian image ==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapi_jammy_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapi_jammy_edge_6.1.11.img.xz&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive:  https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapi BPI-M1_bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1ZSFOd-nVFbAn_xB9AXckx9SEKQvnMB2J/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/12R8mIf7_45HDtruqEvktBw?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m1-new-image-release-armbian-bullseye/14446/2&lt;br /&gt;
&lt;br /&gt;
*Armbian Xenial and Armbian Jessie &lt;br /&gt;
::Image lownload link :https://www.armbian.com/bananapi/&lt;br /&gt;
&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
===Official OpenWRT===&lt;br /&gt;
*BPI-M1/BPI-M1+/BPI-R1 use A20 chip,so easy to run openwrt&lt;br /&gt;
*wiki : https://wiki.openwrt.org/toh/lamobo/r1&lt;br /&gt;
*openwrt support for allwinner :https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;s[]=pi&lt;br /&gt;
*image download : https://downloads.openwrt.org/chaos_calmer/15.05/sunxi/generic/uboot-sunxi-Lamobo_R1/&lt;br /&gt;
*opwrt for Allwinner Soc : https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;amp;s[]=pi&lt;br /&gt;
&lt;br /&gt;
===BPI BSP for OpenWRT===&lt;br /&gt;
*How to build OpenWRT image from github : https://bananapi.gitbooks.io/bpi-m1/content/en/howtobuildopenwrtimagefromgithub.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
==OpenSuse==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/opensuse.html&lt;br /&gt;
&lt;br /&gt;
==OpenMediaVault==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/openmediavault.html&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/arch_linux.html&lt;br /&gt;
&lt;br /&gt;
==Gentoo Linux==&lt;br /&gt;
*Gentoo Linux have officeal support banana pi BPI-M1, so you also can use on BPI-M1+,and BPI-R1, all is base on allwinner A20 chip.&lt;br /&gt;
*gentoo linux wiki : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
&lt;br /&gt;
==RaspBSD==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/raspbsdonbpi-m1.html&lt;br /&gt;
&lt;br /&gt;
==CentOS==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/centos7linuxforbpi.html&lt;br /&gt;
&lt;br /&gt;
==DietPi==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/dietpi.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD/NetBSD==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/freebsdnetbsd.html&lt;br /&gt;
&lt;br /&gt;
==Lakka TV==&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
==Simplenas==&lt;br /&gt;
*simplenas image : https://simplenas.com/download/other/banana-pi-m1&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1&amp;diff=14203</id>
		<title>Banana Pi BPI-M1</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M1&amp;diff=14203"/>
				<updated>2023-03-22T06:35:25Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Armbian image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M1]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M1_1.jpg|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1_2.jpg|thumb|Overview]]&lt;br /&gt;
[[File:BPI-M1_3d.jpg|thumb|BPI-M1 3D ]]&lt;br /&gt;
[[File:White-2.JPG|thumb|BPI-M1 with plastic case]]&lt;br /&gt;
[[File:MultiQB_front.jpg|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] : smart home gateway]]&lt;br /&gt;
[[File:IMG_3036.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :3G Information security terminal]]&lt;br /&gt;
[[File:IMG_3085.JPG|thumb|BPI-M1/M1+ for BPI 4.0 [[Successful case]] :4G Industrial safety tablets]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi BPI-M1 is a business card-sized and low-power single-board computer featuring a high performance AllWinner A20 dual-core SoC at 1 GHz, 1 GB of DDR3 SDRAM, Gigabit Ethernet, SATA, USB, and HDMI connections. It can run a variety of operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
&lt;br /&gt;
It is the first open source hardware launched by the banana pie team, and also a classic product with the largest cumulative sales of banana pie.There are still a lot of business clients that apply to various projects.A20 chip&lt;br /&gt;
&lt;br /&gt;
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding.&lt;br /&gt;
&lt;br /&gt;
[[File:A_BPI-M1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A20 Dual-core 1.0GHz CPU&lt;br /&gt;
* Mali-400 MP2 with Open GL ES 2.0/1.1.&lt;br /&gt;
* 1 GB DDR3 memory.&lt;br /&gt;
* 1x SATA interface.&lt;br /&gt;
* 1x Gigabit LAN &lt;br /&gt;
* 1x USB otg and 2x USB 2.0&lt;br /&gt;
* 1X MIC&lt;br /&gt;
* AV vide out&lt;br /&gt;
* HDMI out&lt;br /&gt;
* IR &lt;br /&gt;
* CSI camera interface&lt;br /&gt;
* DSI display interface&lt;br /&gt;
* 26 PIN gpio&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Quick Start Banana pi SBC]]&lt;br /&gt;
*[[Getting Started with M1]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M1_interface.jpg]]&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;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Banana Pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU|| A20 ARM Cortex -A7 Dual-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU|| ARM Mali 400 MP2; Complies with OpenGL ES 2.0/1.1	&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 1GB DDR3&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Ethernet [[Modular connector|8P8C]] ([[1000BASE-T]])&lt;br /&gt;
|-&lt;br /&gt;
| Video Input|| A CSI input connector allows for the connection of a designed camera module&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs|| HDMI, CVBS, LVDS/RGB&lt;br /&gt;
|-&lt;br /&gt;
| Audio Outputs|| 3.5mm jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volts DC via Micro USB or GPIO&lt;br /&gt;
|-&lt;br /&gt;
| USB 2.0 ports|| 2 (direct from Allwinner A20 chip)&lt;br /&gt;
|-&lt;br /&gt;
| GPIO|| GPIO, UART, I2C BUS, SPI BUS, WITH TWO CHIP SELECTS, [[CAN bus]], ADC, PWM, +3.3V, +5V, GND&lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Key &amp;amp; 8P8C&lt;br /&gt;
|-&lt;br /&gt;
| Storage|| SATA 2.0, &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M1 has a 26-pin GPIO header . Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M1_26_pin.png]]&lt;br /&gt;
&lt;br /&gt;
Note: 5V1,5V2 only support output,not support input&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
CSI Camera Connector The CSI Camera Connector is a 40-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CON1″.&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;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| CSI GPIO Pin || Pin Name || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P01 || LINEINL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P02 || LINEINR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P03 || VCC-CSI ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P04 || ADC\_X1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P06 || ADC\_X2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P07 || FMINL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P08 || ADC\_Y1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P09 || FMINR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P10 || ADC\_Y2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P11 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P12 || CSI-FLASH || PH17 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P13 || LRADC0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P14 || TWI1-SDA || PB19 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P15 || LRADC1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P16 || TWI1-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P17 || CSI-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P18 || CSI0-STBY-EN || PH19 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P19 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P20 || CSI-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P21 || CSI-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P22 || CSI0-PWR-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P23 || CSI-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P24 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P25 || CSI-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P26 || CSI0-RESET\# || PH14 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P27 || CSI-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P28 || CSI-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P29 || CSI-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P30 || CSI-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P31 || CSI-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P32 || CSI1-STBY-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P33 || RESET\# ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P34 || CSI1-RESET\# || PH13 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P35 || CSI-IO0 || PH11 &lt;br /&gt;
|-&lt;br /&gt;
| CON1 P36 || HPR ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P37 || HPL ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P38 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P39 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1 P40 || IPSOUT ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''LVDS \(LCD display interface\)'''&lt;br /&gt;
&lt;br /&gt;
The LVDS Connector is a 40-pin FPC connector which can connect external LCD panel \(LVDS\) and touch screen \(I2C\) module as well. The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “CON2″.&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;4&amp;quot;| '''LVDS  GPIO of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| LVDS Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| || ||Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || TWI3-SDA || || PI1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || IPSOUT\(5V output\) || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P04 || TWI3-SCK || || PI0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P05 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P06 || LCD0-IO0 || || PH7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P07 || LCDIO-03 || || PH12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P08 || LCD0-IO1 || || PH8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P09 || LCD0-D0 || LVDS0-VP0 || PD0 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P10 || PWM0 || || PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P11 || LCD0-D1 || LVDS0-VN0 || PD1 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P12 || LCD0-IO2 || || PH9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P13 || LCD0-D2 || LVDS0-VP1 || PD2 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P14 || LCD0-DE || || PD25 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P15 || LCD0-D3 || LVDS0-VN1 || PD3&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P16 || LCD0-VSYNC || || PD27 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P17 || LCD0-D4 || LVDS0-VP2 || PD4 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P18 || LCD0-HSYNC || || PD26 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P19 || LCD0-D5 || LVDS0-VN2 || PD5 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P20 || LCD0-CS || || PH6 |&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P21 || LCD0-D6 || LVDS0-VPC || PD6 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P22 || LCD0-CLK || || PD24 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P23 || LCD0-D7 || LVDS0-VNC || PD7 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P24 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P25 || LCD0-D8 || LVDS0-VP3 || PD8 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P26 || LCD0-D23 || || PD23 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P27 || LCD0-D9 || LVDS0-VN3 || PD9 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P28 || LCD0-D22 || || PD22 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P29 || LCD0-D10 || || PD10 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P30 || LCD0-D21 || || PD21 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P31 || LCD0-D11 || || PD11 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P32 || LCD0-D20 || || PD20 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P33 ||LCD0-D12 || || PD12 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P34 || LCD0-D19 || || PD19 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P35 || LCD0-D13 || || PD13 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P36 || LCD0-D18 || || PD18 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P37 || LCD0-D14 || || PD14&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P38 || LCD0-D17 || || PD17 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P39 || LCD0-D15 || || PD15 &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P40 || LCD0-D16 || || PD16 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper J11 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&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;4&amp;quot;| '''Jumper J11 of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| || || Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin1 || TXD || UART0-TX || PB22 &lt;br /&gt;
|-&lt;br /&gt;
| J11 Pin2 || RXD || UART0-RX || PB23 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The jumper J12 provides the power source including 3.3V and 5V. There is a pair of UART TX/RX signals output here.&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;4&amp;quot;| '''Jumper J12 of Banana pi BPI-M1'''&lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin || Pin Name || Multiplex Function Select || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| ||  ||Multi 1 || Multi 2 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin1 || 5V || ||&lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin2 || 3.3V || || &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin3 || NC || IO-7 || PH5 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin4 || RXD || UART7\_RX || PI21 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin5 || NC ||IO-8 || PH3 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin6 || TXD || UART7\_TX || PI20 &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin7 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| J12 Pin8 || GND || ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''All GPIO define list:'''&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M1_all_pin.png]]&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
* Linux kernel 3.4 Source code : https://github.com/BPI-SINOVOIP/BPI-M1-bsp&lt;br /&gt;
&lt;br /&gt;
* Android 4.4 source code&lt;br /&gt;
:LCD7 type: https://github.com/BPI-SINOVOIP/BPI-A20-Android-4.4&lt;br /&gt;
&lt;br /&gt;
* Android 4.2.2 source code&lt;br /&gt;
:HDMI type: https://github.com/BPI-SINOVOIP/BPI-A20-Android&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
&lt;br /&gt;
* schematic diagram:https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing&lt;br /&gt;
* BPI-M1 DXF file download link　:　[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfkd0QmxaU3F2bHBWdkFiS09vT3VoZkVyNW93OXFjM0dHRVdGazhRWmFzZDQ&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs google drive]&lt;br /&gt;
*BPI-M1 3D design file download link :[https://drive.google.com/folderview?id=0B4PAo2nW2Kfnfl95clI4ZzRKUmRENWhMcmwzUlVrYW1Ic3BXZENtUjJQcjk5TXc0RHBKdlU&amp;amp;usp=sharing&amp;amp;tid=0B4PAo2nW2Kfndjh6SW9MS2xKSWs　google drive]&lt;br /&gt;
*CE FCC RoHS : [https://bananapi.gitbooks.io/bpi-m1/content/en/bpi-m1_ce_fcc_rohs_certification.html BPI-M1 CE,FCC,RoHS ] &lt;br /&gt;
*Arch linux wiki for BPI-M1:https://wiki.archlinux.org/index.php/Banana_Pi&lt;br /&gt;
*Nas for BPI-M1/BPI-M1+ : https://www.hackster.io/jeffbaocai/bananapi-pro-nas-0815dc?ref=platform&amp;amp;ref_id=8064_popular___&amp;amp;offset=3&lt;br /&gt;
*NetBSD/evbarm on Allwinner SoCs : https://wiki.netbsd.org/ports/evbarm/allwinner/#index1h1&lt;br /&gt;
*Gentoo for banana pi : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
*openSUSE for banana pi : https://en.opensuse.org/HCL:BananaPi&lt;br /&gt;
*How to booting from SSD using Lubuntu / Raspbian ：https://bananapi.gitbooks.io/bpi-m1/content/en/howtobootingfromssdusinglubunturaspbian.html&lt;br /&gt;
*Building the cluster on BPI :　https://www.hackster.io/Penguinfly/banana-pi-cluster-47d566&lt;br /&gt;
* Allwinner documents:&lt;br /&gt;
::allwinner chip online datasheet and documents: http://dl.linux-sunxi.org/&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Android 4.4==&lt;br /&gt;
*2018-07-28 update android 4.4 LCD version image &lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map &lt;br /&gt;
::Baidu Drive:https://pan.baidu.com/s/1DfSIiMvW_I-kFjTZMtcVsA&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=1qcH9baIhOphsDdlH_yBADuBiZsvrSKnt&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
* Release Date: 2018-07-26&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1HErsANQ4PsnwQJ-tH0AdTg&lt;br /&gt;
::Google Drive:&lt;br /&gt;
&lt;br /&gt;
==Ubuntu Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapi_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/1WtPL8Hfr9aaE3VRnpgR_R7VYsc7O3Y9P/view?usp=sharing&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1fM-in68EK_ABvSJ7XiY0Ag?pwd=yft7 (pincode: yft7)&lt;br /&gt;
&lt;br /&gt;
*Banana Pi new image: Ubuntu 16.04 with Allwinner BSP, use MPV play 1080P video,Allwinner BSP kernel 3.4 , BPI-M2 Ultra/Berry use kernel 3.10&lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1DEO7JdMfDhHynC83K7JMxgnNxf1gV82S&lt;br /&gt;
::discuss on forum: https://forum.banana-pi.org/t/banana-pi-new-image-ubuntu-16-04-with-allwinner-bsp-use-mpv-play-1080p-video/13272&lt;br /&gt;
&lt;br /&gt;
*2018-7-28 update :Ubuntu Server16.04 HDMI Version Image Link：&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M1_Image_Map&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1GYH8oDK3T_WcUFn-0t9YmQ&lt;br /&gt;
::Google Drive: https://drive.google.com/open?id=13XTvWe90yvRdqNWiKCLZ0HcMgo33y2r6&lt;br /&gt;
::Forum pthtread :http://forum.banana-pi.org/t/bananapi-m1-m1p-r1-new-image-release-20180728/6357&lt;br /&gt;
&lt;br /&gt;
* Release Date: 2018-07-26&lt;br /&gt;
::Baidu Drive: https://pan.baidu.com/s/1Tw_99XBZVOmKyavNxCXv3w&lt;br /&gt;
::Google Drive:&lt;br /&gt;
&lt;br /&gt;
==Debian Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-09-07 Armbian_22.11.0-trunk_Bananapi_BPI-M1_bullseye_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1px0h0se8EiRuBiGGxT40hWpU3RWzPedK/view?usp=sharing&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1Vclux6Wb-ToJGOaGQxV6Hg?pwd=m4a3 (pincode: m4a3)&lt;br /&gt;
&lt;br /&gt;
*2019-9-18 update. Debian 10 buster mate desktop with grub support (boot-2019.07 + kernel 5.1.1)&lt;br /&gt;
::google drive:https://drive.google.com/file/d/1uGYn3BZ9k1K1iqmmZhlCy6pXeeNwfU6P/view?usp=sharing&lt;br /&gt;
::forum pthread:http://forum.banana-pi.org/t/bpi-m1-m1-r1-new-image-debian-10-buster-mate-desktop-with-grub-support-boot-2019-07-kernel-5-1-1/9916&lt;br /&gt;
&lt;br /&gt;
== Armbian image ==&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapi_jammy_current_5.15.93.img.xz&lt;br /&gt;
*Armbian_23.02.0-trunk_Bananapi_jammy_edge_6.1.11.img.xz&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1hkkl22uVjvRct1V7N4OK2w?pwd=8888&lt;br /&gt;
::Google Drive:  https://drive.google.com/drive/folders/1VpvVkYMqgmSnmfKXQSrEY2B6wRa-cggL?usp=share_link&lt;br /&gt;
&lt;br /&gt;
*2022-12-06 Armbian_22.11.0-trunk_Bananapi BPI-M1_bullseye_edge_6.0.9.img.xz&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1ZSFOd-nVFbAn_xB9AXckx9SEKQvnMB2J/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/12R8mIf7_45HDtruqEvktBw?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on forum: https://forum.banana-pi.org/t/bananapi-bpi-m1-new-image-release-armbian-bullseye/14446/2&lt;br /&gt;
&lt;br /&gt;
*Armbian Xenial and Armbian Jessie &lt;br /&gt;
::Image lownload link :https://www.armbian.com/bananapi/&lt;br /&gt;
&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
===Official OpenWRT===&lt;br /&gt;
*BPI-M1/BPI-M1+/BPI-R1 use A20 chip,so easy to run openwrt&lt;br /&gt;
*wiki : https://wiki.openwrt.org/toh/lamobo/r1&lt;br /&gt;
*openwrt support for allwinner :https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;s[]=pi&lt;br /&gt;
*image download : https://downloads.openwrt.org/chaos_calmer/15.05/sunxi/generic/uboot-sunxi-Lamobo_R1/&lt;br /&gt;
*opwrt for Allwinner Soc : https://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi?s[]=banana&amp;amp;amp;s[]=pi&lt;br /&gt;
&lt;br /&gt;
===BPI BSP for OpenWRT===&lt;br /&gt;
*How to build OpenWRT image from github : https://bananapi.gitbooks.io/bpi-m1/content/en/howtobuildopenwrtimagefromgithub.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
FreeBSD on Allwinner (sunxi) systems for banana pi&lt;br /&gt;
&lt;br /&gt;
Banana pi as the official partner of Allwinner , must banana pi product use Allwinner chip design . such as A20/A31S/H3/H2+/A64/A83T , and FreeBSD have support many Allwinner . so easy to use on banana pi board.&lt;br /&gt;
*Allwinner A20 (sun7i), a dual-core Cortex-A7 BPI-M1/BPI-M1+/BPI-R1&lt;br /&gt;
*Allwinner A31 and A31s (sun6i), a quad-core Cortex-A7 BPI-M2&lt;br /&gt;
*Allwinner A64 (sun50i), a quad-core Cortex-A53 BPI-M64 &lt;br /&gt;
*Allwinner A83T (sun8i), an octa-core Cortex-A7 BPI-M3 &lt;br /&gt;
*Allwinner H3 (sun8i), a quad-core Cortex-A7 BPI-M2+/BPI-M2+ EDU/&lt;br /&gt;
&lt;br /&gt;
https://wiki.freebsd.org/FreeBSD/arm/Allwinner&lt;br /&gt;
&lt;br /&gt;
==OpenSuse==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/opensuse.html&lt;br /&gt;
&lt;br /&gt;
==OpenMediaVault==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/openmediavault.html&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/arch_linux.html&lt;br /&gt;
&lt;br /&gt;
==Gentoo Linux==&lt;br /&gt;
*Gentoo Linux have officeal support banana pi BPI-M1, so you also can use on BPI-M1+,and BPI-R1, all is base on allwinner A20 chip.&lt;br /&gt;
*gentoo linux wiki : https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way&lt;br /&gt;
&lt;br /&gt;
==RaspBSD==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/raspbsdonbpi-m1.html&lt;br /&gt;
&lt;br /&gt;
==CentOS==&lt;br /&gt;
*inmage and how to :  https://bananapi.gitbooks.io/bpi-m1/content/en/centos7linuxforbpi.html&lt;br /&gt;
&lt;br /&gt;
==DietPi==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/dietpi.html&lt;br /&gt;
&lt;br /&gt;
==FreeBSD/NetBSD==&lt;br /&gt;
*inmage and how to : https://bananapi.gitbooks.io/bpi-m1/content/en/freebsdnetbsd.html&lt;br /&gt;
&lt;br /&gt;
==Lakka TV==&lt;br /&gt;
*Banana Pi M2+ with H3 chip &lt;br /&gt;
*Banana Pi M3 with A83T chip&lt;br /&gt;
*BPI-M1 and BPI-M1+ use A20 chip &lt;br /&gt;
*more about this : https://bananapi.gitbooks.io/bpi-m3/content/en/lakkatv.html&lt;br /&gt;
&lt;br /&gt;
http://mirror.lakka.tv/nightly/&lt;br /&gt;
&lt;br /&gt;
==Simplenas==&lt;br /&gt;
*simplenas image : https://simplenas.com/download/other/banana-pi-m1&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M3&amp;diff=14186</id>
		<title>Getting Started with M3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M3&amp;diff=14186"/>
				<updated>2023-03-20T01:26:34Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Load your image on M3 EMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M3]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
==BPI-M3==&lt;br /&gt;
[[File:Banana_pi_BPI-M3_1.jpg|thumb|Overview: [[Banana Pi BPI-M3]]]]&lt;br /&gt;
[[File:M3_respbian.png|thumb|Overview: BPI-M3 respbian linux]]&lt;br /&gt;
[[File:BPI-m3_debian.jpg|thumb|Overview: BPI-M3 debian linux]]&lt;br /&gt;
[[File:Bpi-m3_ubutnu.jpg|thumb|Overview: BPI-M3 ubuntu linux]]&lt;br /&gt;
&lt;br /&gt;
   Banana Pi M3 is a super charged single board computer with an Octa-core processor and 2GB of RAM. Along side the elite processing unit, it features Gigabit Ethernet, 2 USB, SATA, WiFi, Bluetooth, and HDMI connection. It can run on a variety of operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian. &lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M3]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Octa-core 1.8GHz Powerful CPU&lt;br /&gt;
* 2 GB LPDDR3 memory&lt;br /&gt;
* 8 GB eMMC storage&lt;br /&gt;
* WiFi &amp;amp; Bluetooth onboard&lt;br /&gt;
&lt;br /&gt;
=Development For Android=&lt;br /&gt;
===Load your first image on M3===&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  Ex: http://wiki.banana-pi.org/Banana_Pi_BPI-M3#Android_5.1.1_V5&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
===Load your image on M3 EMMC===&lt;br /&gt;
  1.The only different with sd card burning is the image burning mode item choice&lt;br /&gt;
   &lt;br /&gt;
  [[Image:M3_Android_Emmc_Burning.png | 600px]]&lt;br /&gt;
  &lt;br /&gt;
  2.After succeed to burn image to SD, then plug SD card in your M3&lt;br /&gt;
  &lt;br /&gt;
  3.Press power button, device will copy image to EMMC automatically&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Emmc_Copy.png]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
===How to buld M3 Bsp code===&lt;br /&gt;
  * Prepare a PC which runs ubuntu&lt;br /&gt;
  * Install Docker-ce on your PC，https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce (Install Docker Environment)&lt;br /&gt;
  * After install Docker, execute &amp;quot;docker pull sinovoip/bpi-build:ubuntu12.04&amp;quot;, to pull image (Pull Docker Image)&lt;br /&gt;
  * Then you pulled image, execute &amp;quot;docker run --privileged -d -p 2222:22 -v /media:/media sinovoip/bpi-build:ubuntu12.04&amp;quot; (Create A Port To Login Docker Image)&lt;br /&gt;
  * &amp;quot;ssh -p 2222 root@127.0.0.1 #default passwd is root&amp;quot; (Login In Docker Image)&lt;br /&gt;
  * Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/BPI-M3-bsp.git&amp;quot; on your ubuntu terminal (Git Clone M3 Bsp Code)&lt;br /&gt;
  * Execute &amp;quot;./build.sh&amp;quot; to build M3 bsp code (Build M3 Bsp Code)&lt;br /&gt;
  * After built, open a new terminal, you could copy the compile files out of docker image by executing &amp;quot;docker cp &amp;lt;your container id&amp;gt;:&amp;lt;your project path&amp;gt; &amp;lt;your pc path&amp;gt;&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  [[Image:docker_operate.png]]&lt;br /&gt;
&lt;br /&gt;
=Development For Linux=&lt;br /&gt;
Let's get start to develop on BPI-M3, see amazing things happen.&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M3&lt;br /&gt;
&lt;br /&gt;
  [[Image:M3_console_interface.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M3===&lt;br /&gt;
  1.You could download latest image from our forum&lt;br /&gt;
  * Here is the example link: http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-release-raspbian-jessie-8-0-2018-5-28-v1-1/5847&lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your system. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card.&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into M3, and press power button setup M3&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M3 EMMC===&lt;br /&gt;
  * Run your M3 with TF card&lt;br /&gt;
  * Copy &amp;quot;xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to your USB disk&lt;br /&gt;
  * Plug your USB disk in M3&lt;br /&gt;
  * After M3 recognise USB disk, execute &amp;quot;bpi-copy xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to install image on EMMC&lt;br /&gt;
  * Then power off M3, take TF card out, power on M3&lt;br /&gt;
&lt;br /&gt;
===Update your image===&lt;br /&gt;
For example, update your image to support new emmc5.1&lt;br /&gt;
&lt;br /&gt;
   * execute “bpi-tools”, to update your bpi tools;&lt;br /&gt;
   * execute “bpi-update -c bpi-m3.conf”, to download new driver to update your image&lt;br /&gt;
   * execute “file *.tgz”, to check download files’ type is compressed data&lt;br /&gt;
   * execute “bpi-bootsel”, you will see the bootloader path, “/usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz”&lt;br /&gt;
   * execute “bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz”, to update your bootloader&lt;br /&gt;
   * reboot&lt;br /&gt;
&lt;br /&gt;
===Make your own image===&lt;br /&gt;
====Make one raspbian image====&lt;br /&gt;
* Prepare a SD card which have installed Raspbian system&lt;br /&gt;
* Boot your SD card with M3, after M3 finish starting, copy your files and config your Raspbian, then poweroff M3&lt;br /&gt;
* Plug your SD card in Linux PC, &amp;quot;cd /media&amp;quot;, then &amp;quot;ln -s &amp;lt;your account&amp;gt; pi&amp;quot;&lt;br /&gt;
* Execute &amp;quot;bpi-migrate -c bpi-m3.conf -c raspbian-jessie-from-sd.conf -d /dev/sdx&amp;quot;&lt;br /&gt;
* Then you could get your own image now&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===Install Docker===&lt;br /&gt;
You could try armbian to install docker, here is the image: https://dl.armbian.com/bananapim3/Debian_stretch_dev.7z (Here Thanks for the armbian community)&lt;br /&gt;
&lt;br /&gt;
Download this image to your ubuntu PC (I am using ubuntu PC), then decompress it&lt;br /&gt;
&lt;br /&gt;
* 7z x Debian_stretch_xxx.img&lt;br /&gt;
* bpi-copy Debian_stretch_xxx.img /dev/sd&amp;lt; drive letter &amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  username: root, password: 1234&lt;br /&gt;
&lt;br /&gt;
Here are steps to install docker:&lt;br /&gt;
&lt;br /&gt;
* vim /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
* add this source：“deb http://http.debian.net/debian jessie-backports main”&lt;br /&gt;
&lt;br /&gt;
* apt-get update&lt;br /&gt;
&lt;br /&gt;
* apt-get install docker.io&lt;br /&gt;
&lt;br /&gt;
To have a test, if docker has installed in your image.&lt;br /&gt;
&lt;br /&gt;
* sudo docker run --rm hello-world&lt;br /&gt;
&lt;br /&gt;
===SATA===&lt;br /&gt;
1. Mount SATA on M3&lt;br /&gt;
* After insert sata interface, execute &amp;quot;fdisk -l&amp;quot;&lt;br /&gt;
* Then &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
  [[Image:M3_Sata.png]]&lt;br /&gt;
&lt;br /&gt;
2. If you meet some errors when you mount SATA, try these following commands:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;fdisk /dev/sdx&amp;quot; to create new partition , set your partition numbers and size, after created partitions, input &amp;quot;wq&amp;quot; to save and quit.&lt;br /&gt;
* &amp;quot;mkfs.ext2 /dev/sdx&amp;quot; to format the SATA&lt;br /&gt;
* &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. After you success to insert SATA, we could input following commands to test SATA interface:&lt;br /&gt;
* &amp;quot;time dd if=/dev/xxx of=/dev/null bs=1M count=1000&amp;quot; to test read speed&lt;br /&gt;
* &amp;quot;time dd if=/dev/zero of=/dev/sdx bs=1M count=1000&amp;quot; to test write speed&lt;br /&gt;
  [[Image:Sata_test.png]]&lt;br /&gt;
&lt;br /&gt;
===OTG===&lt;br /&gt;
1. On M3 console:&lt;br /&gt;
* Execute &amp;quot;./adbd.sh&amp;quot;, then execute &amp;quot;ps -ax | grep adbd&amp;quot; to see if adbd is set up&lt;br /&gt;
  [[Image:M2P_ADBD.png]]&lt;br /&gt;
&lt;br /&gt;
2. On PC terminal:&lt;br /&gt;
* If adbd was succeed to set up, insert OTG-USB interface to M3 and PC(with Ubuntu system)&lt;br /&gt;
* Execute &amp;quot;adb devices&amp;quot; to see if PC has recognised M3 OTG&lt;br /&gt;
* If yes, we could execute &amp;quot;adb shell&amp;quot; to connect M3 by adb now&lt;br /&gt;
  [[Image:M2P_ADBD_Shell.png]]&lt;br /&gt;
&lt;br /&gt;
===LCD 5&amp;quot; &amp;amp; LCD 7&amp;quot;===&lt;br /&gt;
* Execute &amp;quot;bpi-bootsel&amp;quot;, you'll see a list of boot files&lt;br /&gt;
* Find &amp;quot;BPI_M3_LCD7.img.gz&amp;quot;&lt;br /&gt;
* Then execute &amp;quot;bpi-bootsel /usr/lib/u-boot/bananapi/bpi-M3/BPI_M3_LCD7.img.gz&amp;quot;&lt;br /&gt;
  [[Image:M3_bootsel_lcd7.png]]&lt;br /&gt;
&lt;br /&gt;
===Touch screen===&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
1. On PC Terminal:&lt;br /&gt;
* Execute &amp;quot;iperf3 -s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. On M3 console:&lt;br /&gt;
* TCP test: &amp;quot;iperf3 -c serverIP&amp;quot;&lt;br /&gt;
* UDP test: &amp;quot;iperf3 -u -c serverIP&amp;quot;&lt;br /&gt;
[[Image:M3_Gmac_test.png]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands:&lt;br /&gt;
&lt;br /&gt;
[[Image:M3_bluetooth.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi on M3===&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpa_supplicant/wpa_supplicant.conf &lt;br /&gt;
 network={    &lt;br /&gt;
 ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
 psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
 priority=1 &lt;br /&gt;
 }&lt;br /&gt;
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640(The left one) camara and HDF8865(The right one).&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
[[Image:ov8865_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
&lt;br /&gt;
====Shell====&lt;br /&gt;
'''Ov5640'''&lt;br /&gt;
* We also have built-in command in &amp;quot;/usr/local/bin&amp;quot; to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
'''Ov8865'''&lt;br /&gt;
* &amp;quot;/test_ov8865.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===IR function===&lt;br /&gt;
* Execute &amp;quot;getevent&amp;quot;&lt;br /&gt;
* Use your IR device to send information to M3&lt;br /&gt;
[[Image:M3_IR.png]]&lt;br /&gt;
&lt;br /&gt;
===BPI-Tools===&lt;br /&gt;
====Install Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash - &amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Update Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;bpi-tools&amp;quot;&lt;br /&gt;
[[Image: Bpi-tools.png]]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi,GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to Update WiringPi====&lt;br /&gt;
* Execute &amp;quot;bpi-update -c pkglist.conf&amp;quot;&lt;br /&gt;
[[Image: Update_Pkglist.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;bpi-update -c bpi-pkg-bpi-wiringpi.conf&amp;quot;&lt;br /&gt;
[[Image: Update_WringPi.png]]&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===GPU===&lt;br /&gt;
* Execute &amp;quot;glmark2-es&amp;quot; to start OpenGL test&lt;br /&gt;
* glmark2 Score: 258&lt;br /&gt;
[[Image:M3_GPU_Test.png | 320px]]&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
* read only system change to read &amp;amp; write mode: &amp;quot;mount -o remount,rw /&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M3&amp;diff=14185</id>
		<title>Getting Started with M3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M3&amp;diff=14185"/>
				<updated>2023-03-20T01:26:18Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Load your first image on M3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M3]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
==BPI-M3==&lt;br /&gt;
[[File:Banana_pi_BPI-M3_1.jpg|thumb|Overview: [[Banana Pi BPI-M3]]]]&lt;br /&gt;
[[File:M3_respbian.png|thumb|Overview: BPI-M3 respbian linux]]&lt;br /&gt;
[[File:BPI-m3_debian.jpg|thumb|Overview: BPI-M3 debian linux]]&lt;br /&gt;
[[File:Bpi-m3_ubutnu.jpg|thumb|Overview: BPI-M3 ubuntu linux]]&lt;br /&gt;
&lt;br /&gt;
   Banana Pi M3 is a super charged single board computer with an Octa-core processor and 2GB of RAM. Along side the elite processing unit, it features Gigabit Ethernet, 2 USB, SATA, WiFi, Bluetooth, and HDMI connection. It can run on a variety of operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian. &lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M3]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Octa-core 1.8GHz Powerful CPU&lt;br /&gt;
* 2 GB LPDDR3 memory&lt;br /&gt;
* 8 GB eMMC storage&lt;br /&gt;
* WiFi &amp;amp; Bluetooth onboard&lt;br /&gt;
&lt;br /&gt;
=Development For Android=&lt;br /&gt;
===Load your first image on M3===&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  Ex: http://wiki.banana-pi.org/Banana_Pi_BPI-M3#Android_5.1.1_V5&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
===Load your image on M3 EMMC===&lt;br /&gt;
  1.The only different with sd card burning is the image burning mode item choice&lt;br /&gt;
   &lt;br /&gt;
  [[Image:M3_Android_Emmc_Burning.png | 600px]]&lt;br /&gt;
  &lt;br /&gt;
  2.After succeed to burn image to SD, then plug SD card in your M3&lt;br /&gt;
  &lt;br /&gt;
  3.Press power button, device will copy image to EMMC automatically&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Emmc_Copy.png]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/18Fo_JhYY02gmxtFw2Ps3rQ&lt;br /&gt;
&lt;br /&gt;
===How to buld M3 Bsp code===&lt;br /&gt;
  * Prepare a PC which runs ubuntu&lt;br /&gt;
  * Install Docker-ce on your PC，https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce (Install Docker Environment)&lt;br /&gt;
  * After install Docker, execute &amp;quot;docker pull sinovoip/bpi-build:ubuntu12.04&amp;quot;, to pull image (Pull Docker Image)&lt;br /&gt;
  * Then you pulled image, execute &amp;quot;docker run --privileged -d -p 2222:22 -v /media:/media sinovoip/bpi-build:ubuntu12.04&amp;quot; (Create A Port To Login Docker Image)&lt;br /&gt;
  * &amp;quot;ssh -p 2222 root@127.0.0.1 #default passwd is root&amp;quot; (Login In Docker Image)&lt;br /&gt;
  * Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/BPI-M3-bsp.git&amp;quot; on your ubuntu terminal (Git Clone M3 Bsp Code)&lt;br /&gt;
  * Execute &amp;quot;./build.sh&amp;quot; to build M3 bsp code (Build M3 Bsp Code)&lt;br /&gt;
  * After built, open a new terminal, you could copy the compile files out of docker image by executing &amp;quot;docker cp &amp;lt;your container id&amp;gt;:&amp;lt;your project path&amp;gt; &amp;lt;your pc path&amp;gt;&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  [[Image:docker_operate.png]]&lt;br /&gt;
&lt;br /&gt;
=Development For Linux=&lt;br /&gt;
Let's get start to develop on BPI-M3, see amazing things happen.&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M3&lt;br /&gt;
&lt;br /&gt;
  [[Image:M3_console_interface.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M3===&lt;br /&gt;
  1.You could download latest image from our forum&lt;br /&gt;
  * Here is the example link: http://forum.banana-pi.org/t/banana-pi-bpi-m3-new-image-release-raspbian-jessie-8-0-2018-5-28-v1-1/5847&lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your system. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card.&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into M3, and press power button setup M3&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M3 EMMC===&lt;br /&gt;
  * Run your M3 with TF card&lt;br /&gt;
  * Copy &amp;quot;xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to your USB disk&lt;br /&gt;
  * Plug your USB disk in M3&lt;br /&gt;
  * After M3 recognise USB disk, execute &amp;quot;bpi-copy xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to install image on EMMC&lt;br /&gt;
  * Then power off M3, take TF card out, power on M3&lt;br /&gt;
&lt;br /&gt;
===Update your image===&lt;br /&gt;
For example, update your image to support new emmc5.1&lt;br /&gt;
&lt;br /&gt;
   * execute “bpi-tools”, to update your bpi tools;&lt;br /&gt;
   * execute “bpi-update -c bpi-m3.conf”, to download new driver to update your image&lt;br /&gt;
   * execute “file *.tgz”, to check download files’ type is compressed data&lt;br /&gt;
   * execute “bpi-bootsel”, you will see the bootloader path, “/usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz”&lt;br /&gt;
   * execute “bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz”, to update your bootloader&lt;br /&gt;
   * reboot&lt;br /&gt;
&lt;br /&gt;
===Make your own image===&lt;br /&gt;
====Make one raspbian image====&lt;br /&gt;
* Prepare a SD card which have installed Raspbian system&lt;br /&gt;
* Boot your SD card with M3, after M3 finish starting, copy your files and config your Raspbian, then poweroff M3&lt;br /&gt;
* Plug your SD card in Linux PC, &amp;quot;cd /media&amp;quot;, then &amp;quot;ln -s &amp;lt;your account&amp;gt; pi&amp;quot;&lt;br /&gt;
* Execute &amp;quot;bpi-migrate -c bpi-m3.conf -c raspbian-jessie-from-sd.conf -d /dev/sdx&amp;quot;&lt;br /&gt;
* Then you could get your own image now&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===Install Docker===&lt;br /&gt;
You could try armbian to install docker, here is the image: https://dl.armbian.com/bananapim3/Debian_stretch_dev.7z (Here Thanks for the armbian community)&lt;br /&gt;
&lt;br /&gt;
Download this image to your ubuntu PC (I am using ubuntu PC), then decompress it&lt;br /&gt;
&lt;br /&gt;
* 7z x Debian_stretch_xxx.img&lt;br /&gt;
* bpi-copy Debian_stretch_xxx.img /dev/sd&amp;lt; drive letter &amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  username: root, password: 1234&lt;br /&gt;
&lt;br /&gt;
Here are steps to install docker:&lt;br /&gt;
&lt;br /&gt;
* vim /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
* add this source：“deb http://http.debian.net/debian jessie-backports main”&lt;br /&gt;
&lt;br /&gt;
* apt-get update&lt;br /&gt;
&lt;br /&gt;
* apt-get install docker.io&lt;br /&gt;
&lt;br /&gt;
To have a test, if docker has installed in your image.&lt;br /&gt;
&lt;br /&gt;
* sudo docker run --rm hello-world&lt;br /&gt;
&lt;br /&gt;
===SATA===&lt;br /&gt;
1. Mount SATA on M3&lt;br /&gt;
* After insert sata interface, execute &amp;quot;fdisk -l&amp;quot;&lt;br /&gt;
* Then &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
  [[Image:M3_Sata.png]]&lt;br /&gt;
&lt;br /&gt;
2. If you meet some errors when you mount SATA, try these following commands:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;fdisk /dev/sdx&amp;quot; to create new partition , set your partition numbers and size, after created partitions, input &amp;quot;wq&amp;quot; to save and quit.&lt;br /&gt;
* &amp;quot;mkfs.ext2 /dev/sdx&amp;quot; to format the SATA&lt;br /&gt;
* &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. After you success to insert SATA, we could input following commands to test SATA interface:&lt;br /&gt;
* &amp;quot;time dd if=/dev/xxx of=/dev/null bs=1M count=1000&amp;quot; to test read speed&lt;br /&gt;
* &amp;quot;time dd if=/dev/zero of=/dev/sdx bs=1M count=1000&amp;quot; to test write speed&lt;br /&gt;
  [[Image:Sata_test.png]]&lt;br /&gt;
&lt;br /&gt;
===OTG===&lt;br /&gt;
1. On M3 console:&lt;br /&gt;
* Execute &amp;quot;./adbd.sh&amp;quot;, then execute &amp;quot;ps -ax | grep adbd&amp;quot; to see if adbd is set up&lt;br /&gt;
  [[Image:M2P_ADBD.png]]&lt;br /&gt;
&lt;br /&gt;
2. On PC terminal:&lt;br /&gt;
* If adbd was succeed to set up, insert OTG-USB interface to M3 and PC(with Ubuntu system)&lt;br /&gt;
* Execute &amp;quot;adb devices&amp;quot; to see if PC has recognised M3 OTG&lt;br /&gt;
* If yes, we could execute &amp;quot;adb shell&amp;quot; to connect M3 by adb now&lt;br /&gt;
  [[Image:M2P_ADBD_Shell.png]]&lt;br /&gt;
&lt;br /&gt;
===LCD 5&amp;quot; &amp;amp; LCD 7&amp;quot;===&lt;br /&gt;
* Execute &amp;quot;bpi-bootsel&amp;quot;, you'll see a list of boot files&lt;br /&gt;
* Find &amp;quot;BPI_M3_LCD7.img.gz&amp;quot;&lt;br /&gt;
* Then execute &amp;quot;bpi-bootsel /usr/lib/u-boot/bananapi/bpi-M3/BPI_M3_LCD7.img.gz&amp;quot;&lt;br /&gt;
  [[Image:M3_bootsel_lcd7.png]]&lt;br /&gt;
&lt;br /&gt;
===Touch screen===&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
1. On PC Terminal:&lt;br /&gt;
* Execute &amp;quot;iperf3 -s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. On M3 console:&lt;br /&gt;
* TCP test: &amp;quot;iperf3 -c serverIP&amp;quot;&lt;br /&gt;
* UDP test: &amp;quot;iperf3 -u -c serverIP&amp;quot;&lt;br /&gt;
[[Image:M3_Gmac_test.png]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands:&lt;br /&gt;
&lt;br /&gt;
[[Image:M3_bluetooth.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi on M3===&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpa_supplicant/wpa_supplicant.conf &lt;br /&gt;
 network={    &lt;br /&gt;
 ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
 psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
 priority=1 &lt;br /&gt;
 }&lt;br /&gt;
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640(The left one) camara and HDF8865(The right one).&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
[[Image:ov8865_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
&lt;br /&gt;
====Shell====&lt;br /&gt;
'''Ov5640'''&lt;br /&gt;
* We also have built-in command in &amp;quot;/usr/local/bin&amp;quot; to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
'''Ov8865'''&lt;br /&gt;
* &amp;quot;/test_ov8865.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===IR function===&lt;br /&gt;
* Execute &amp;quot;getevent&amp;quot;&lt;br /&gt;
* Use your IR device to send information to M3&lt;br /&gt;
[[Image:M3_IR.png]]&lt;br /&gt;
&lt;br /&gt;
===BPI-Tools===&lt;br /&gt;
====Install Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash - &amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Update Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;bpi-tools&amp;quot;&lt;br /&gt;
[[Image: Bpi-tools.png]]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi,GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to Update WiringPi====&lt;br /&gt;
* Execute &amp;quot;bpi-update -c pkglist.conf&amp;quot;&lt;br /&gt;
[[Image: Update_Pkglist.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;bpi-update -c bpi-pkg-bpi-wiringpi.conf&amp;quot;&lt;br /&gt;
[[Image: Update_WringPi.png]]&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===GPU===&lt;br /&gt;
* Execute &amp;quot;glmark2-es&amp;quot; to start OpenGL test&lt;br /&gt;
* glmark2 Score: 258&lt;br /&gt;
[[Image:M3_GPU_Test.png | 320px]]&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
* read only system change to read &amp;amp; write mode: &amp;quot;mount -o remount,rw /&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Ultra_%26_Berry&amp;diff=14184</id>
		<title>Getting Started with M2 Ultra &amp; Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Ultra_%26_Berry&amp;diff=14184"/>
				<updated>2023-03-20T01:19:17Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
==BPI-M2U==&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Ultra_4.JPG|thumb|Overview [[Banana Pi BPI-M2U ]]]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|Overview [[Banana Pi BPI-M2 Berry]]]]&lt;br /&gt;
[[File:M2p_respbian.png|thumb|Overview: BPI-M2U respbian linux]]&lt;br /&gt;
&lt;br /&gt;
   Banana Pi BPI-M2 Ultra is a quad-core mini single board computer built with Allwinner R40 SoC. It features 2GB of RAM and 8GB eMMC. It also has onboard WiFi and BT. On the ports side, the BPI-M2 Ultra has 2 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, a DC power port, and last but not least, a SATA port.. &lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M2U]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad Core ARM Cortex A7 CPU R40&lt;br /&gt;
* 2GB DDR3 SDRAM&lt;br /&gt;
* 8 GB eMMC storage&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard&lt;br /&gt;
* SATA Interface&lt;br /&gt;
&lt;br /&gt;
==BPI-M2 Berry==&lt;br /&gt;
   Banana Pi BPI-M2 Berry is a quad-core mini single board computer built with Allwinner V40 SoC. It features 1GB of RAM . It also has onboard WiFi and BT. On the ports side, the BPI-M2 Ultra has 4 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, a DC power port, and last but not least, a SATA port..&lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M2 Berry]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad Core ARM Cortex A7 CPU V40.&lt;br /&gt;
* 1GB DDR3 SDRAM.&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard.&lt;br /&gt;
* SATA Interface&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
Let's get start to develop on BPI-M2U, see amazing things happen.&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Linux===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Windows System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M2P&lt;br /&gt;
&lt;br /&gt;
  1.You could download the latest image from our forum.&lt;br /&gt;
  * Here is an example image link: http://forum.banana-pi.org/t/banana-pi-bpi-m2u-berry-new-image-release-raspbian-jessie-8-0-2018-5-24/5812.&lt;br /&gt;
    &lt;br /&gt;
  2.Put the TF card into a TF-USB adapter and plug it to your PC USB interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Download the flashing tools &amp;quot;BalenaEtcher&amp;quot; and start it.&lt;br /&gt;
  &lt;br /&gt;
  4.Click &amp;quot;Flash from file&amp;quot; to select your image file.(.img or .zip)&lt;br /&gt;
  &lt;br /&gt;
  5.Click &amp;quot;Select target&amp;quot; to choose your USB device.&lt;br /&gt;
  &lt;br /&gt;
  6.Start to flash and wait for burning completely.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:Etcher.jpg | 600px]]&lt;br /&gt;
&lt;br /&gt;
===Android===&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M2U EMMC===&lt;br /&gt;
  1.Bootup your M2U with Micro SD card&lt;br /&gt;
  2.Copy &amp;quot;xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to your USB disk&lt;br /&gt;
  3.Plug your USB disk in M2U&lt;br /&gt;
  4.Mount the USB disk and flash the image file to eMMC&lt;br /&gt;
&lt;br /&gt;
  * bpi-tools&lt;br /&gt;
  curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools|sudo -E bash&lt;br /&gt;
  mount /dev/sda1 /mnt&lt;br /&gt;
  cd /mnt&lt;br /&gt;
  bpi-copy xxx-sd-emmc-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  * dd command&lt;br /&gt;
  mount /dev/sda1 /mnt&lt;br /&gt;
  cd /mnt&lt;br /&gt;
  unzip -p xxx-sd-emmc-xxx.img.zip |pv| dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
  5.Then power off M2U, take TF card out, power on M2U&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===How to build uboot &amp;amp; kernel===&lt;br /&gt;
====Install tools====&lt;br /&gt;
* apt-get udpate&lt;br /&gt;
* apt-get install gcc-arm-linux-gnueabihf u-boot-tools&lt;br /&gt;
* apt-get install pv&lt;br /&gt;
* curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
====Clone code====&lt;br /&gt;
* git clone: https://github.com/BPI-SINOVOIP/BPI-M2U-bsp.git&lt;br /&gt;
* ./build.sh&lt;br /&gt;
===SATA===&lt;br /&gt;
1. Mount SATA on M2U&lt;br /&gt;
&lt;br /&gt;
  [[Image:M2U_Sata.png]]&lt;br /&gt;
&lt;br /&gt;
* After insert sata interface, execute &amp;quot;fdisk -l&amp;quot;&lt;br /&gt;
  [[Image:M2U_Sata_fdisk_l.png]]&lt;br /&gt;
&lt;br /&gt;
* Then &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. If you meet some errors when you mount SATA, try these following commands:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;fdisk /dev/sdx&amp;quot; to create new partition , set your partition numbers and size, after created partitions, input &amp;quot;wq&amp;quot; to save and quit.&lt;br /&gt;
* &amp;quot;mkfs.ext2 /dev/sdx&amp;quot; to format the SATA&lt;br /&gt;
* &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. After you success to insert SATA, we could input following commands to test SATA interface:&lt;br /&gt;
* &amp;quot;time dd if=/dev/xxx of=/dev/null bs=1M count=1000&amp;quot; to test read speed&lt;br /&gt;
* &amp;quot;time dd if=/dev/zero of=/dev/sdx bs=1M count=1000&amp;quot; to test write speed&lt;br /&gt;
  [[Image:Sata_test.png]]&lt;br /&gt;
&lt;br /&gt;
===OTG===&lt;br /&gt;
1. On M2U console:&lt;br /&gt;
* Execute &amp;quot;./adbd.sh&amp;quot;, then execute &amp;quot;ps -ax | grep adbd&amp;quot; to see if adbd is set up&lt;br /&gt;
  [[Image:M2P_ADBD.png]]&lt;br /&gt;
&lt;br /&gt;
2. On PC terminal:&lt;br /&gt;
* If adbd was succeed to set up, insert OTG-USB interface to M2U and PC(with Ubuntu system)&lt;br /&gt;
* Execute &amp;quot;adb devices&amp;quot; to see if PC has recognised M2U OTG&lt;br /&gt;
* If yes, we could execute &amp;quot;adb shell&amp;quot; to connect M2U by adb now&lt;br /&gt;
  [[Image:M2P_ADBD_Shell.png]]&lt;br /&gt;
&lt;br /&gt;
===LCD 5&amp;quot; &amp;amp; LCD 7&amp;quot;===&lt;br /&gt;
* Execute &amp;quot;bpi-bootsel&amp;quot;, you'll see a list of boot files&lt;br /&gt;
* Find &amp;quot;BPI_M2U_LCD7.img.gz&amp;quot;&lt;br /&gt;
* Then execute &amp;quot;bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m2u/BPI_M2U_LCD7.img.gz&amp;quot;&lt;br /&gt;
  [[Image:M2U_bootsel_lcd7.png]]&lt;br /&gt;
&lt;br /&gt;
===Touch screen===&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
1. On PC Terminal:&lt;br /&gt;
* Execute &amp;quot;iperf3 -s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. On M2U console:&lt;br /&gt;
* TCP test: &amp;quot;iperf3 -c serverIP&amp;quot;&lt;br /&gt;
* UDP test: &amp;quot;iperf3 -u -c serverIP&amp;quot;&lt;br /&gt;
[[Image:M2U_Gmac_test.png]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands:&lt;br /&gt;
&lt;br /&gt;
[[Image:M2U_bluetooth.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi on M2U===&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpasupplicant/wpa_supplicant.conf &lt;br /&gt;
  network={    &lt;br /&gt;
  ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
  psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
  priority=1 &lt;br /&gt;
  }&lt;br /&gt;
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640 camara.&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
====Shell====&lt;br /&gt;
* We also have built-in command in &amp;quot;/usr/local/bin&amp;quot; to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
===IR function===&lt;br /&gt;
* Execute &amp;quot;getevent&amp;quot;&lt;br /&gt;
* Use your IR device to send information to M2U&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi,GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
* read only system change to read &amp;amp; write mode: &amp;quot;mount -o remount,rw /&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Install Qt5.7 &amp;amp; Qtcreator===&lt;br /&gt;
1.Prepare a 32Gb TF card&lt;br /&gt;
&lt;br /&gt;
2.Use GParted to resize root point '/' as 32Gb&lt;br /&gt;
&lt;br /&gt;
3.apt-get install libxcb*&lt;br /&gt;
&lt;br /&gt;
4.download qt5.7&lt;br /&gt;
&lt;br /&gt;
5.make &amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
6.apt-get install qtcreator&lt;br /&gt;
&lt;br /&gt;
7.Config qtcreator&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
=Reference Link=&lt;br /&gt;
&lt;br /&gt;
http://www.banana-pi.org/m2plus.html&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2M&amp;diff=14183</id>
		<title>Getting Started with M2M</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2M&amp;diff=14183"/>
				<updated>2023-03-20T01:18:45Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M2 Magic]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
==BPI-M2M==&lt;br /&gt;
[[File:Banana_pi_bpi-m2_magic_5.JPG|thumb|Overview:[[Banana Pi BPI-M2M ]]]]&lt;br /&gt;
[[File:M2M_ubuntu.png|thumb|Overview: BPI-M2M ubuntu linux]]&lt;br /&gt;
&lt;br /&gt;
   Banana Pi M2M is another ARM SoC powered development board that offers great computing performance in an ultra portable form factor. It is a 51mm square with Allwinner A33 Quad-core A7 SoC and 512MB DDR3 RAM. &lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M2M]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad Core ARM Cortex A7 CPU. R16&lt;br /&gt;
* 512MB DDR3 SDRAM&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Android==&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Prepare 8G/above TF card, USB-Serial cable.&lt;br /&gt;
:2. Connect USB-Serial to 40 pin header uart2 for kernel console debug.&lt;br /&gt;
&lt;br /&gt;
:'''Note: three pin header uart0 beside usb port is not debug uart for bpi release images''' because SDcard and uart0 are multiplex pin and default bpi images support both SD and eMMC. If you want bootup with emmc only and enable uart0 as debug port without SDcard support, please refer to [http://wiki.banana-pi.org/Getting_Started_with_M2M#Enable_uart0_for_emmc_only_image_debug enable uart0 debug for emmc only image] section.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M2M__debug_console.png | 240px]]  [[Image:M2M__pin_define.png | 240px]]&lt;br /&gt;
&lt;br /&gt;
:3. Install bpi-tools on your Linux PC, If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and download this tools manually.&lt;br /&gt;
  $ apt-get install pv&lt;br /&gt;
  $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
&lt;br /&gt;
:4. Download [http://wiki.banana-pi.org/Banana_Pi_BPI-M2M#Linux_2 latest linux image], and confirm that the md5 checksum is correct.&lt;br /&gt;
:5. Defautl login: pi/bananapi or root/bananapi.&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install image with bpi-tools on Linux, plug your sd card to your Linux PC&lt;br /&gt;
    $ sudo bpi-copy  xxx-bpi-m2m-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
:2. Install image with dd command on Linux, umount SDcard device /dev/sdX partitions if mounted automatically, Actually bpi-copy is the same as this dd command.&lt;br /&gt;
&lt;br /&gt;
    $ sudo apt-get install pv&lt;br /&gt;
    $ sudo unzip -p xxx-bpi-m2m-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:3. Install bpi image with Etcher on Windows, Linux and MacOS&lt;br /&gt;
::[https://www.balena.io/etcher/ Balena Etcher] is an open source project by Balena, Flash OS images to SD cards &amp;amp; USB drives&lt;br /&gt;
&lt;br /&gt;
===Install Image to EMMC===&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a SDcard  with Linux image flashed and bootup the board with this SDcard.&lt;br /&gt;
:2. Copy emmc image to udisk, plugin the udisk to board and mount it.&lt;br /&gt;
:3. Install with bpi-tools command&lt;br /&gt;
    $ sudo bpi-copy xxx-bpi-m2m-xxx.img.zip /dev/mmcblk1&lt;br /&gt;
:4. Or Install with dd command, umount mmcblk1p1 and mmcblk1p2 partition if mounted automatically, Actually bpi-copy is the same as this dd command&lt;br /&gt;
    $ sudo apt-get install pv&lt;br /&gt;
    $ sudo unzip -p xxxb-bpi-m2m-xxx.img.zip | pv | dd of=/dev/mmcblk1 bs=10M status=noxfer&lt;br /&gt;
:5. After flash complete,  power off safely and  eject the sdcard.&lt;br /&gt;
&lt;br /&gt;
'''Note: If the emmc was flashed android image before, you must erase the boot partition of android before step 3 or step 4.'''&lt;br /&gt;
&lt;br /&gt;
    root@bpi-iot-ros-ai:/# echo 0 &amp;gt; /sys/block/mmcblk1/mmcblk1boot0/force_ro                              &lt;br /&gt;
    root@bpi-iot-ros-ai:/# echo 0 &amp;gt; /sys/block/mmcblk1/mmcblk1boot1/force_ro                              &lt;br /&gt;
    root@bpi-iot-ros-ai:/# &lt;br /&gt;
    root@bpi-iot-ros-ai:/# dd if=/dev/zero of=/dev/mmcblk1boot0 bs=4096 count=1024                        &lt;br /&gt;
    1024+0 records in&lt;br /&gt;
    1024+0 records out&lt;br /&gt;
    4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.421164 s, 10.0 MB/s&lt;br /&gt;
    root@bpi-iot-ros-ai:/# dd if=/dev/zero of=/dev/mmcblk1boot1 bs=4096 count=1024                        &lt;br /&gt;
    1024+0 records in&lt;br /&gt;
    1024+0 records out&lt;br /&gt;
    4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.428427 s, 9.8 MB/s&lt;br /&gt;
&lt;br /&gt;
===Build Source Code ===&lt;br /&gt;
:1. Get the bsp source code&lt;br /&gt;
&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/BPI-M2M-bsp&lt;br /&gt;
&lt;br /&gt;
:2. Build the bsp source code&lt;br /&gt;
::Please read the source code [https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
==Advance Development==&lt;br /&gt;
&lt;br /&gt;
===Enable uart0 for emmc only image debug===&lt;br /&gt;
:1. Enable uart0 node and disable sdc0 node in sunxi-pack/sun8iw5p1/configs/BPI-M2M-LCD7/sys_config.fex.&lt;br /&gt;
&lt;br /&gt;
     --- a/sunxi-pack/sun8iw5p1/configs/BPI-M2M-LCD7/sys_config.fex&lt;br /&gt;
     +++ b/sunxi-pack/sun8iw5p1/configs/BPI-M2M-LCD7/sys_config.fex&lt;br /&gt;
    @@ -262,7 +262,7 @@ twi_sda         = port:PE13&amp;lt;3&amp;gt;&amp;lt;default&amp;gt;&amp;lt;default&amp;gt;&amp;lt;default&amp;gt;&lt;br /&gt;
     ;uart_type       = 2:2 wire,4:4 wire,8:8 wire, full function&lt;br /&gt;
     ;----------------------------------------------------------------------------------&lt;br /&gt;
     [uart0]&lt;br /&gt;
    -uart_used       = 0&lt;br /&gt;
    +uart_used       = 1&lt;br /&gt;
     uart_port       = 0&lt;br /&gt;
     uart_type       = 2&lt;br /&gt;
     uart_tx         = port:PF02&amp;lt;3&amp;gt;&amp;lt;1&amp;gt;&amp;lt;default&amp;gt;&amp;lt;default&amp;gt;&lt;br /&gt;
    @@ -803,7 +803,7 @@ led3_active_low             = 1&lt;br /&gt;
     ;     that supports SD3.0 cards and eMMC4.4+ flashes&lt;br /&gt;
     ;-------------------------------------------------------------------------------&lt;br /&gt;
     [mmc0_para]&lt;br /&gt;
    -sdc_used          = 1&lt;br /&gt;
    +sdc_used          = 0&lt;br /&gt;
     sdc_detmode       = 3&lt;br /&gt;
     sdc_buswidth      = 4&lt;br /&gt;
     sdc_d1            = port:PF00&amp;lt;2&amp;gt;&amp;lt;1&amp;gt;&amp;lt;2&amp;gt;&amp;lt;default&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:2. Build the bsp source code.&lt;br /&gt;
:3. Copy the bootloader file SD/bpi-m2m/100MB/BPI-M2M-LCD7-8k.img.gz to udisk. bpi also provide a [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FImages%2FBPI-M2M%2FUbuntu16.04%2FBPI-M2M-LCD7-eMMC-only-uart0-debug-8k.img.gz prebuild bootloader] for this requirement.&lt;br /&gt;
:4. Bootup the m2m board from emmc, plugin the udisk and mount it.&lt;br /&gt;
:5. Flash the bootloader to emmc&lt;br /&gt;
    $ sudo bpi-bootsel BPI-M2M-LCD7-8k.img.gz /dev/mmcblk0&lt;br /&gt;
:or&lt;br /&gt;
    $ sudo gunzip -c BPI-M2M-LCD7-8k.img.gz | dd of=/dev/mmcblk0 bs=1024 seek=8&lt;br /&gt;
    $ sync&lt;br /&gt;
    $ sudo umount /dev/sda1&lt;br /&gt;
&lt;br /&gt;
:6. Mout boot partition and set kernel debug console in uEnv.txt&lt;br /&gt;
    $ sudo mount -t vfat /dev/mmcblk0p1 /mnt&lt;br /&gt;
: Change &amp;quot;console=ttyS2,115200&amp;quot; to &amp;quot;console=ttyS0,115200&amp;quot; in /mnt/bananapi/bpi-m2m/linux/lcd7/uEnv.txt&lt;br /&gt;
    $ sudo umount /dev/mmcblk0p1&lt;br /&gt;
&lt;br /&gt;
:7. Safely poweroff the board and connect debug uart to uart0 three pin header.&lt;br /&gt;
&lt;br /&gt;
===Audio Path===&lt;br /&gt;
:1. 2-pin HP header output audio path&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;4&amp;quot;| '''2-pin HP header output audio path'''&lt;br /&gt;
|-&lt;br /&gt;
|Number id|| Ctl_name	 || value&lt;br /&gt;
|-&lt;br /&gt;
| 1|| headphone volume|| 0-63&lt;br /&gt;
|-&lt;br /&gt;
| 104|| AIF1IN0L Mux|| AIF1_DA0L&lt;br /&gt;
|-&lt;br /&gt;
| 103|| AIF1IN0R Mux|| AIF1_DA0R&lt;br /&gt;
|-&lt;br /&gt;
| 100|| DACL Mixer AIF1DA0L Switch|| 1&lt;br /&gt;
|-&lt;br /&gt;
| 96|| DACR Mixer AIF1DA0R Switch|| 1&lt;br /&gt;
|-&lt;br /&gt;
| 78|| HP_R Mux|| DACR HPR Switch&lt;br /&gt;
|-&lt;br /&gt;
| 77|| HP_L Mux|| DACL HPL Switch&lt;br /&gt;
|-&lt;br /&gt;
| 105|| Headphone Switch|| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:2. Mic 1 input audio path &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;4&amp;quot;| '''Mic 1 input audio path'''&lt;br /&gt;
|-&lt;br /&gt;
|Number id|| Ctl_name	 || value&lt;br /&gt;
|-&lt;br /&gt;
| 56|| AIF1OUT0L Mux|| AIF1_AD0L&lt;br /&gt;
|-&lt;br /&gt;
| 55|| AIF1OUT0R Mux|| AIF1_AD0R&lt;br /&gt;
|-&lt;br /&gt;
| 51|| AIF1 AD0L Mixer ADCL Switch|| 1&lt;br /&gt;
|-&lt;br /&gt;
| 47|| AIF1 AD0R Mixer ADCR Switch|| 1&lt;br /&gt;
|-&lt;br /&gt;
| 24|| ADCR Mux|| ADC&lt;br /&gt;
|-&lt;br /&gt;
| 25|| ADCL Mux|| ADC&lt;br /&gt;
|-&lt;br /&gt;
| 34|| LEFT ADC input Mixer MIC1 boost Switch|| 1&lt;br /&gt;
|-&lt;br /&gt;
| 27|| RIGHT ADC input Mixer MIC1 boost Switch|| 1&lt;br /&gt;
|-&lt;br /&gt;
| 4|| MIC1 boost amplifier gain|| 0-7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:3.Alsa configuration file /var/lib/alsa/alsa.state.bpi-m2m already enable 2-pin HP output and Mic 1 input audio path, and restore by /var/lib/bananapi/bpi-autorun.d/S10-audio-bpi-m2m.sh after system bootup.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands: &lt;br /&gt;
[[Image:M2M_BT_bluetoothctl.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi Client===&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
  $ sudo su&lt;br /&gt;
  # killall wpa_supplicant&lt;br /&gt;
  # wpa_passphrase &amp;lt;ssid&amp;gt; &amp;lt;passphrase&amp;gt; &amp;gt; /etc/wpa_supplicant/wpa_supplicant.conf              &lt;br /&gt;
  # ifconfig wlan0 up&lt;br /&gt;
  # iwlist wlan0 scan&lt;br /&gt;
  # wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
  # dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
There are some other command line ways, please google for them.&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640 camara.&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
&lt;br /&gt;
====Shell====&lt;br /&gt;
* We also have built-in command in /usr/local/bin to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi.GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to Update WiringPi====&lt;br /&gt;
* Execute &amp;quot;bpi-update -c pkglist.conf&amp;quot;&lt;br /&gt;
[[Image: Update_Pkglist.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;bpi-update -c bpi-pkg-bpi-wiringpi.conf&amp;quot;&lt;br /&gt;
[[Image: Update_WringPi.png]]&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
[[Image: WringPi_1602_LCD_m2m.png]]&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;br /&gt;
[[Image: WringPi_LED_Martix_m2m.png]]&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2P&amp;diff=14182</id>
		<title>Getting Started with M2P</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2P&amp;diff=14182"/>
				<updated>2023-03-20T01:18:06Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Development For Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M2+]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
[[File:Banana_pi_BPI-M2+_2.jpg|thumb|Overview: [[Banana Pi BPI-M2+ ]]]]&lt;br /&gt;
[[File:M2p_ubunu.jpg|thumb|Overview: BPI-M2+ Ubuntu linux]]&lt;br /&gt;
[[File:M2p_debian.jpg|thumb|Overview:BPI-M2+ Debian linux]]&lt;br /&gt;
[[File:Rasbian.jpg|thumb|Overview:BPI-M2+ Rasbian linux]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2+ is mini size development board that offers great computing performance in an ultra portable form factor.It is a 65mm*65mm fantastic mini size board with Allwinner H series chips. It comes with different versions but share the same interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M2+]]&lt;br /&gt;
*Burn image  : [[Quick Start Banana pi SBC]]&lt;br /&gt;
&lt;br /&gt;
==BPI-M2+ H3==&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad-core 1.2GHz Cortex-A7 H3&lt;br /&gt;
* 1GB DDR3&lt;br /&gt;
* 8GB eMMC onboard&lt;br /&gt;
* WiFi and BlueTooth onboard&lt;br /&gt;
* 10/100/1000Mbps Ethernet Port&lt;br /&gt;
&lt;br /&gt;
=Development For Android=&lt;br /&gt;
===Load your first image on M2P===&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  Ex: http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-image-android7-0-release-2018-6-30/6147&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
&lt;br /&gt;
  * Here is the example of M3&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png]]&lt;br /&gt;
&lt;br /&gt;
===Load your image on M2P EMMC===&lt;br /&gt;
  1.The only different with sd card burning is the image burning mode item choice&lt;br /&gt;
&lt;br /&gt;
  * Here is the example of M3&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Emmc_Burning.png]]&lt;br /&gt;
  &lt;br /&gt;
  2.After succeed to burn image to SD, then plug SD card in your M2P&lt;br /&gt;
  &lt;br /&gt;
  3.Press power button, device will copy image to EMMC automatically&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
=Development For Linux=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M2P&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M2P===&lt;br /&gt;
  1.You could download latest image from our forum&lt;br /&gt;
  * Here is the example forum thread link: http://forum.banana-pi.org/t/banana-pi-bpi-m2p-new-image-release-ubuntu-16-04-v1-1/5719&lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card.&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into M2P, and press power button setup M2P.&lt;br /&gt;
  &lt;br /&gt;
  5.Login user/password: pi/bananapi or root/bananapi.&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M2P EMMC===&lt;br /&gt;
  * Run your M2P with TF card&lt;br /&gt;
  * Copy &amp;quot;xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to your USB disk&lt;br /&gt;
  * Plug your USB disk in M2P&lt;br /&gt;
  * After M2P recognise USB disk, execute &amp;quot;bpi-copy xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to install image on EMMC&lt;br /&gt;
  * Then power off M2P, take TF card out, power on M2P with EMMC&lt;br /&gt;
&lt;br /&gt;
===Update your image===&lt;br /&gt;
For example, update your image to support new emmc5.1&lt;br /&gt;
&lt;br /&gt;
   * execute “bpi-tools”, to update your bpi tools;&lt;br /&gt;
   * execute “bpi-update -c bpi-m2p.conf”, to download new driver to update your image&lt;br /&gt;
   * execute “file *.tgz”, to check download files’ type is compressed data&lt;br /&gt;
   * execute “bpi-bootsel”, you will see the bootloader path, “/usr/lib/u-boot/bananapi/bpi-m2p/BPI_M2P_720P.img.gz”&lt;br /&gt;
   * execute “bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m2p/BPI_M2P_720P.img.gz”, to update your bootloader&lt;br /&gt;
   * reboot&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
&lt;br /&gt;
===How to build uboot &amp;amp; kernel===&lt;br /&gt;
====Install tools====&lt;br /&gt;
* apt-get udpate&lt;br /&gt;
* apt-get install gcc-arm-linux-gnueabihf u-boot-tools&lt;br /&gt;
* apt-get install pv&lt;br /&gt;
* curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
====Clone code====&lt;br /&gt;
* git clone: https://github.com/BPI-SINOVOIP/BPI-M2P-bsp.git&lt;br /&gt;
* ./build.sh&lt;br /&gt;
&lt;br /&gt;
===How to create an image ===&lt;br /&gt;
* Prepare a SD card which have installed system(Ubuntu/Raspbian/..)&lt;br /&gt;
* Boot your SD card with M2P, after M2P finish starting, copy your files and config your system, then poweroff M2P. [If you don't want to config your system, you can skip this step]&lt;br /&gt;
* Plug your SD card in PC(which is running Linux), &amp;quot;cd /media&amp;quot;, then &amp;quot;ln -s &amp;lt;your account&amp;gt; pi&amp;quot;&lt;br /&gt;
* Execute &amp;quot;bpi-migrate -c bpi-m2p.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx&amp;quot;&lt;br /&gt;
* Then you could get your own image now&lt;br /&gt;
&lt;br /&gt;
===GPIO Control===&lt;br /&gt;
* To access a GPIO pin you first need to export it with&lt;br /&gt;
  echo XX &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* with XX being the number of the desired pin. To obtain the correct number you have to calculate it from the pin name (like PH18)&lt;br /&gt;
  (position of letter in alphabet - 1) * 32 + pin number&lt;br /&gt;
   for PH18 this would be ( 8 - 1) * 32 + 18 = 224 + 18 = 242 (since 'h' is the 8th letter)&lt;br /&gt;
* echo &amp;quot;out/in&amp;quot; &amp;gt; /sys/class/gpio/gpio*NUMBER*/direction&lt;br /&gt;
* echo &amp;quot;0/1&amp;quot; &amp;gt; /sys/class/gpio/gpio*NUMBER*/value&lt;br /&gt;
&lt;br /&gt;
===OTG===&lt;br /&gt;
1. On M2P console:&lt;br /&gt;
* Execute &amp;quot;./adbd.sh&amp;quot;, then execute &amp;quot;ps -ax | grep adbd&amp;quot; to see if adbd is set up&lt;br /&gt;
&lt;br /&gt;
2. On PC terminal:&lt;br /&gt;
* If adbd was succeed to set up, insert OTG-USB interface to M2P and PC(with Ubuntu system)&lt;br /&gt;
* Execute &amp;quot;adb devices&amp;quot; to see if PC has recognised M2P OTG&lt;br /&gt;
* If yes, we could execute &amp;quot;adb shell&amp;quot; to connect M2P by adb now&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
* Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_GMAC.png]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands: &lt;br /&gt;
[[Image:M2P_BT_bluetoothctl.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_BT.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi on M2P===&lt;br /&gt;
&lt;br /&gt;
Driver code:&lt;br /&gt;
&lt;br /&gt;
*https://github.com/BPI-SINOVOIP/BPI_WiFi_Firmware&lt;br /&gt;
&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpasupplicant/wpa_supplicant.conf &lt;br /&gt;
  network={    &lt;br /&gt;
  ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
  psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
  priority=1 &lt;br /&gt;
  }&lt;br /&gt;
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Change Logo===&lt;br /&gt;
1.Download M2P bsp code&lt;br /&gt;
&lt;br /&gt;
* Execute command “git clone https://github.com/BPI-SINOVOIP/BPI-M2P-bsp”&lt;br /&gt;
&lt;br /&gt;
* After you cloned project, execute command “cd BPI-M2P-bsp”&lt;br /&gt;
&lt;br /&gt;
2.Change to your boot logo&lt;br /&gt;
&lt;br /&gt;
* Prepare a &amp;quot;.bmp&amp;quot; picture, here I rotate 180°, as follows :&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_1.png]]&lt;br /&gt;
&lt;br /&gt;
* Change your picture name as &amp;quot;bootlogo.bmp&amp;quot; &lt;br /&gt;
* put your picture to &amp;quot;sunxi-pack/chips/sun8iw7p1/configs/BPI-M2P-xxxP/&amp;quot;&lt;br /&gt;
Here I replaced “bootlogo.bmp” which is under &lt;br /&gt;
“sunxi-pack/chips/sun8iw7p1/configs/BPI-M2P-720P/” as an example：&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_2.png]]&lt;br /&gt;
&lt;br /&gt;
3.Build your code&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;./build.sh BPI-M2P-720P&amp;quot;&lt;br /&gt;
* choose 1&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_3.png]]&lt;br /&gt;
&lt;br /&gt;
* After you built the project, you will see “SD” directory&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_4.png]]&lt;br /&gt;
&lt;br /&gt;
4.Install a raspbian image on your SD card&lt;br /&gt;
&lt;br /&gt;
5.Plug your SD card into your Ubuntu PC&lt;br /&gt;
&lt;br /&gt;
(1) check your SD card was recognised as /dev/sdxx, as you can see, mine sd card was recognised as /dev/sde&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_5.png]]&lt;br /&gt;
&lt;br /&gt;
6.Then “cd SD/bpi-m2p/100MB”&lt;br /&gt;
&lt;br /&gt;
7.Execute command “bpi-bootsel BPI-M2P-720P.img.gz /dev/sde”&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_6.png]]&lt;br /&gt;
&lt;br /&gt;
8.Insert your updated SD card to board, and power on, you will see:&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640 camara.&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
[[Image:guvcview_ov5640.png]]&lt;br /&gt;
====Shell====&lt;br /&gt;
* We also have built-in command in /usr/local/bin to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
===IR function===&lt;br /&gt;
* Execute &amp;quot;getevent&amp;quot;&lt;br /&gt;
* Use your IR device to send information to M2P&lt;br /&gt;
[[Image:IR_getevent.png]]&lt;br /&gt;
&lt;br /&gt;
===BPI-Tools===&lt;br /&gt;
====Install Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash - &amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Update Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;bpi-tools&amp;quot;&lt;br /&gt;
[[Image: Bpi-tools.png]]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi.GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to Update WiringPi====&lt;br /&gt;
* Execute &amp;quot;bpi-update -c pkglist.conf&amp;quot;&lt;br /&gt;
[[Image: Update_Pkglist.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;bpi-update -c bpi-pkg-bpi-wiringpi.conf&amp;quot;&lt;br /&gt;
[[Image: Update_WringPi.png]]&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
[[Image: WringPi_1602_LCD.png]]&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
[[Image: WringPi_0.96_OLED.png]]&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;br /&gt;
[[Image: WringPi_LED_Martix.png]]&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
=Reference Link=&lt;br /&gt;
&lt;br /&gt;
http://www.banana-pi.org/m2plus.html&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2P&amp;diff=14181</id>
		<title>Getting Started with M2P</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2P&amp;diff=14181"/>
				<updated>2023-03-20T01:17:42Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Load your image on M2P EMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M2+]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
[[File:Banana_pi_BPI-M2+_2.jpg|thumb|Overview: [[Banana Pi BPI-M2+ ]]]]&lt;br /&gt;
[[File:M2p_ubunu.jpg|thumb|Overview: BPI-M2+ Ubuntu linux]]&lt;br /&gt;
[[File:M2p_debian.jpg|thumb|Overview:BPI-M2+ Debian linux]]&lt;br /&gt;
[[File:Rasbian.jpg|thumb|Overview:BPI-M2+ Rasbian linux]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2+ is mini size development board that offers great computing performance in an ultra portable form factor.It is a 65mm*65mm fantastic mini size board with Allwinner H series chips. It comes with different versions but share the same interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M2+]]&lt;br /&gt;
*Burn image  : [[Quick Start Banana pi SBC]]&lt;br /&gt;
&lt;br /&gt;
==BPI-M2+ H3==&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad-core 1.2GHz Cortex-A7 H3&lt;br /&gt;
* 1GB DDR3&lt;br /&gt;
* 8GB eMMC onboard&lt;br /&gt;
* WiFi and BlueTooth onboard&lt;br /&gt;
* 10/100/1000Mbps Ethernet Port&lt;br /&gt;
&lt;br /&gt;
=Development For Android=&lt;br /&gt;
===Load your first image on M2P===&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  Ex: http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-image-android7-0-release-2018-6-30/6147&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
&lt;br /&gt;
  * Here is the example of M3&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png]]&lt;br /&gt;
&lt;br /&gt;
===Load your image on M2P EMMC===&lt;br /&gt;
  1.The only different with sd card burning is the image burning mode item choice&lt;br /&gt;
&lt;br /&gt;
  * Here is the example of M3&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Emmc_Burning.png]]&lt;br /&gt;
  &lt;br /&gt;
  2.After succeed to burn image to SD, then plug SD card in your M2P&lt;br /&gt;
  &lt;br /&gt;
  3.Press power button, device will copy image to EMMC automatically&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
=Development For Linux=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M2P&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M2P===&lt;br /&gt;
  1.You could download latest image from our forum&lt;br /&gt;
  * Here is the example forum thread link: http://forum.banana-pi.org/t/banana-pi-bpi-m2p-new-image-release-ubuntu-16-04-v1-1/5719&lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card.&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into M2P, and press power button setup M2P.&lt;br /&gt;
  &lt;br /&gt;
  5.Login user/password: pi/bananapi or root/bananapi.&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M2P EMMC===&lt;br /&gt;
  * Run your M2P with TF card&lt;br /&gt;
  * Copy &amp;quot;xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to your USB disk&lt;br /&gt;
  * Plug your USB disk in M2P&lt;br /&gt;
  * After M2P recognise USB disk, execute &amp;quot;bpi-copy xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img&amp;quot; to install image on EMMC&lt;br /&gt;
  * Then power off M2P, take TF card out, power on M2P with EMMC&lt;br /&gt;
&lt;br /&gt;
===Update your image===&lt;br /&gt;
For example, update your image to support new emmc5.1&lt;br /&gt;
&lt;br /&gt;
   * execute “bpi-tools”, to update your bpi tools;&lt;br /&gt;
   * execute “bpi-update -c bpi-m2p.conf”, to download new driver to update your image&lt;br /&gt;
   * execute “file *.tgz”, to check download files’ type is compressed data&lt;br /&gt;
   * execute “bpi-bootsel”, you will see the bootloader path, “/usr/lib/u-boot/bananapi/bpi-m2p/BPI_M2P_720P.img.gz”&lt;br /&gt;
   * execute “bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m2p/BPI_M2P_720P.img.gz”, to update your bootloader&lt;br /&gt;
   * reboot&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
&lt;br /&gt;
===How to build uboot &amp;amp; kernel===&lt;br /&gt;
====Install tools====&lt;br /&gt;
* apt-get udpate&lt;br /&gt;
* apt-get install gcc-arm-linux-gnueabihf u-boot-tools&lt;br /&gt;
* apt-get install pv&lt;br /&gt;
* curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
====Clone code====&lt;br /&gt;
* git clone: https://github.com/BPI-SINOVOIP/BPI-M2P-bsp.git&lt;br /&gt;
* ./build.sh&lt;br /&gt;
&lt;br /&gt;
===How to create an image ===&lt;br /&gt;
* Prepare a SD card which have installed system(Ubuntu/Raspbian/..)&lt;br /&gt;
* Boot your SD card with M2P, after M2P finish starting, copy your files and config your system, then poweroff M2P. [If you don't want to config your system, you can skip this step]&lt;br /&gt;
* Plug your SD card in PC(which is running Linux), &amp;quot;cd /media&amp;quot;, then &amp;quot;ln -s &amp;lt;your account&amp;gt; pi&amp;quot;&lt;br /&gt;
* Execute &amp;quot;bpi-migrate -c bpi-m2p.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx&amp;quot;&lt;br /&gt;
* Then you could get your own image now&lt;br /&gt;
&lt;br /&gt;
===GPIO Control===&lt;br /&gt;
* To access a GPIO pin you first need to export it with&lt;br /&gt;
  echo XX &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* with XX being the number of the desired pin. To obtain the correct number you have to calculate it from the pin name (like PH18)&lt;br /&gt;
  (position of letter in alphabet - 1) * 32 + pin number&lt;br /&gt;
   for PH18 this would be ( 8 - 1) * 32 + 18 = 224 + 18 = 242 (since 'h' is the 8th letter)&lt;br /&gt;
* echo &amp;quot;out/in&amp;quot; &amp;gt; /sys/class/gpio/gpio*NUMBER*/direction&lt;br /&gt;
* echo &amp;quot;0/1&amp;quot; &amp;gt; /sys/class/gpio/gpio*NUMBER*/value&lt;br /&gt;
&lt;br /&gt;
===OTG===&lt;br /&gt;
1. On M2P console:&lt;br /&gt;
* Execute &amp;quot;./adbd.sh&amp;quot;, then execute &amp;quot;ps -ax | grep adbd&amp;quot; to see if adbd is set up&lt;br /&gt;
&lt;br /&gt;
2. On PC terminal:&lt;br /&gt;
* If adbd was succeed to set up, insert OTG-USB interface to M2P and PC(with Ubuntu system)&lt;br /&gt;
* Execute &amp;quot;adb devices&amp;quot; to see if PC has recognised M2P OTG&lt;br /&gt;
* If yes, we could execute &amp;quot;adb shell&amp;quot; to connect M2P by adb now&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
* Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_GMAC.png]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands: &lt;br /&gt;
[[Image:M2P_BT_bluetoothctl.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_BT.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi on M2P===&lt;br /&gt;
&lt;br /&gt;
Driver code:&lt;br /&gt;
&lt;br /&gt;
*https://github.com/BPI-SINOVOIP/BPI_WiFi_Firmware&lt;br /&gt;
&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpasupplicant/wpa_supplicant.conf &lt;br /&gt;
  network={    &lt;br /&gt;
  ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
  psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
  priority=1 &lt;br /&gt;
  }&lt;br /&gt;
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Change Logo===&lt;br /&gt;
1.Download M2P bsp code&lt;br /&gt;
&lt;br /&gt;
* Execute command “git clone https://github.com/BPI-SINOVOIP/BPI-M2P-bsp”&lt;br /&gt;
&lt;br /&gt;
* After you cloned project, execute command “cd BPI-M2P-bsp”&lt;br /&gt;
&lt;br /&gt;
2.Change to your boot logo&lt;br /&gt;
&lt;br /&gt;
* Prepare a &amp;quot;.bmp&amp;quot; picture, here I rotate 180°, as follows :&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_1.png]]&lt;br /&gt;
&lt;br /&gt;
* Change your picture name as &amp;quot;bootlogo.bmp&amp;quot; &lt;br /&gt;
* put your picture to &amp;quot;sunxi-pack/chips/sun8iw7p1/configs/BPI-M2P-xxxP/&amp;quot;&lt;br /&gt;
Here I replaced “bootlogo.bmp” which is under &lt;br /&gt;
“sunxi-pack/chips/sun8iw7p1/configs/BPI-M2P-720P/” as an example：&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_2.png]]&lt;br /&gt;
&lt;br /&gt;
3.Build your code&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;./build.sh BPI-M2P-720P&amp;quot;&lt;br /&gt;
* choose 1&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_3.png]]&lt;br /&gt;
&lt;br /&gt;
* After you built the project, you will see “SD” directory&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_4.png]]&lt;br /&gt;
&lt;br /&gt;
4.Install a raspbian image on your SD card&lt;br /&gt;
&lt;br /&gt;
5.Plug your SD card into your Ubuntu PC&lt;br /&gt;
&lt;br /&gt;
(1) check your SD card was recognised as /dev/sdxx, as you can see, mine sd card was recognised as /dev/sde&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_5.png]]&lt;br /&gt;
&lt;br /&gt;
6.Then “cd SD/bpi-m2p/100MB”&lt;br /&gt;
&lt;br /&gt;
7.Execute command “bpi-bootsel BPI-M2P-720P.img.gz /dev/sde”&lt;br /&gt;
&lt;br /&gt;
[[Image:M2P_CL_6.png]]&lt;br /&gt;
&lt;br /&gt;
8.Insert your updated SD card to board, and power on, you will see:&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640 camara.&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
[[Image:guvcview_ov5640.png]]&lt;br /&gt;
====Shell====&lt;br /&gt;
* We also have built-in command in /usr/local/bin to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
===IR function===&lt;br /&gt;
* Execute &amp;quot;getevent&amp;quot;&lt;br /&gt;
* Use your IR device to send information to M2P&lt;br /&gt;
[[Image:IR_getevent.png]]&lt;br /&gt;
&lt;br /&gt;
===BPI-Tools===&lt;br /&gt;
====Install Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash - &amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Update Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;bpi-tools&amp;quot;&lt;br /&gt;
[[Image: Bpi-tools.png]]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi.GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to Update WiringPi====&lt;br /&gt;
* Execute &amp;quot;bpi-update -c pkglist.conf&amp;quot;&lt;br /&gt;
[[Image: Update_Pkglist.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;bpi-update -c bpi-pkg-bpi-wiringpi.conf&amp;quot;&lt;br /&gt;
[[Image: Update_WringPi.png]]&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
[[Image: WringPi_1602_LCD.png]]&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
[[Image: WringPi_0.96_OLED.png]]&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;br /&gt;
[[Image: WringPi_LED_Martix.png]]&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
=Reference Link=&lt;br /&gt;
&lt;br /&gt;
http://www.banana-pi.org/m2plus.html&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Zero&amp;diff=14180</id>
		<title>Getting Started with M2 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Zero&amp;diff=14180"/>
				<updated>2023-03-20T01:15:06Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Load your first Android image on M1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M2 Zero]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|Overview [[Banana Pi BPI-M2 ZERO]]]]&lt;br /&gt;
[[File:M2Zero_raspbian.png|thumb|Overview: BPI-M2Z raspbian]]&lt;br /&gt;
[[File:BPI-M2_zero_android_4.4.JPG|thumb|Android 4.4]]&lt;br /&gt;
[[File:BPI-M2_zero_ubuntu.JPG|thumb|Ubuntu Linux]]&lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-ZERO]]&lt;br /&gt;
&lt;br /&gt;
==BPI-M2 Zero==&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2 Zero is an ultra compact single board computer measures only 60mm*30mm. It uses quad-core Cortex A7 allwinner H2+ processor, with 512MB RAM memory. It's ideal for light-weight systems with some space-limited applications. Like other members of Banana Pi, it supports both linux and android operating system.&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad Core ARM Cortex A7 CPU H2+&lt;br /&gt;
* 512MB SDRAM.&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard.&lt;br /&gt;
* Mini HDMI.&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Load your first Android image on M2 Zero===&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M2 Zero&lt;br /&gt;
  &lt;br /&gt;
  [[Image:Debug_console_wire.png]]&lt;br /&gt;
&lt;br /&gt;
  [[Image:M2_Zero_debug_console.png]]&lt;br /&gt;
&lt;br /&gt;
===Install Linux Image on M2 Zero===&lt;br /&gt;
Download [http://wiki.banana-pi.org/Banana_Pi_BPI-M2_ZERO#Linux latest Linux image], default login user/password is pi/bananapi or root/bananapi.&lt;br /&gt;
 &lt;br /&gt;
Install Image to SDcard on Linux PC with bpi-tools&lt;br /&gt;
:1. Install bpi-tools on your system&lt;br /&gt;
    $ apt-get install pv&lt;br /&gt;
    $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
:If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  &lt;br /&gt;
:2. Insert your SDcard into your PC&lt;br /&gt;
    $ bpi-copy xxx.img /dev/sdx&lt;br /&gt;
  &lt;br /&gt;
Install Image to SDcard with Ether on Windows, Linux and MacOS&lt;br /&gt;
:[https://www.balena.io/etcher/ Balena Etcher] is an open source project by Balena, Flash OS images to SD cards &amp;amp; USB drives&lt;br /&gt;
&lt;br /&gt;
Install Image to EMMC with SD Ubuntu&lt;br /&gt;
:1.Prepare a sd which is installed ubuntu image and bootup with sdcard&lt;br /&gt;
:2.Copy emmc image to udisk, plug in board, then mount udisk.&lt;br /&gt;
:3.After mount udisk, use command &amp;quot;bpi-copy xxx-emmc-xxx.img&amp;quot; to install image on Emmc.&lt;br /&gt;
:4.After success install, power off the board, eject the sdcard and poweron with emmc boot.&lt;br /&gt;
&lt;br /&gt;
===Update your image===&lt;br /&gt;
:1. Get the m2 zero bsp source code&lt;br /&gt;
    $ git clone https://github.com/BPI-SINOVOIP/BPI-M2P-bsp-4.4&lt;br /&gt;
&lt;br /&gt;
:2. Build the source code according to the README.md, and update the packages to the sdcard with bpi image flashed.&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
&lt;br /&gt;
===How to create an image ===&lt;br /&gt;
* Prepare a SD card which have installed system(Ubuntu/Raspbian/..)&lt;br /&gt;
* Boot your SD card with M2 Zero, after M2 Zero finish starting, copy your files and config your system, then poweroff M2 Zero. [If you don't want to config your system, you can skip this step]&lt;br /&gt;
* Plug your SD card in PC(which is running Linux), &amp;quot;cd /media&amp;quot;, then &amp;quot;ln -s &amp;lt;your account&amp;gt; pi&amp;quot;&lt;br /&gt;
* Execute &amp;quot;bpi-migrate -c bpi-m2z.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx&amp;quot;&lt;br /&gt;
* Then you could get your own image now&lt;br /&gt;
&lt;br /&gt;
===OTG===&lt;br /&gt;
1. On M2 Zero console:&lt;br /&gt;
* Execute &amp;quot;./adbd.sh&amp;quot;, then execute &amp;quot;ps -ax | grep adbd&amp;quot; to see if adbd is set up&lt;br /&gt;
&lt;br /&gt;
2. On PC terminal:&lt;br /&gt;
* If adbd was succeed to set up, insert OTG-USB interface to M2 Zero and PC(with Ubuntu system)&lt;br /&gt;
* Execute &amp;quot;adb devices&amp;quot; to see if PC has recognised M2 ZeroP OTG&lt;br /&gt;
* If yes, we could execute &amp;quot;adb shell&amp;quot; to connect M2 Zero by adb now&lt;br /&gt;
&lt;br /&gt;
===USB Ethernet===&lt;br /&gt;
* Prepare a USB to OTG wire, usb ethernet adapter &lt;br /&gt;
&lt;br /&gt;
[[Image:M2Zero_usb_network_wire.png]]&lt;br /&gt;
&lt;br /&gt;
* Use iperf3 to test network&lt;br /&gt;
[[Image:M2Zero_network.png]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands: &lt;br /&gt;
[[Image:M2Zero_bluetooth.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi Client===&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpasupplicant/wpa_supplicant.conf &lt;br /&gt;
 network={    &lt;br /&gt;
 ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
 psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
 priority=1 &lt;br /&gt;
 }&lt;br /&gt;
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640 camara.&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
====Shell====&lt;br /&gt;
* We also have built-in command in /usr/local/bin to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
===Display===&lt;br /&gt;
====How to change display resolution====&lt;br /&gt;
For Example： we change M2Z HDMI display 1080P.&lt;br /&gt;
&lt;br /&gt;
1. First, mount /dev/mmcblk0p1  /mnt, then enter to /mnt/bananapi/bpi-m2z/linux, find &amp;quot;sys_config.fex&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
2. &amp;quot;vim sys_config.fex&amp;quot;, change &amp;quot;screen0_output_mode = 5&amp;quot; to &amp;quot;screen0_output_mode = 10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Image: display_output.png]]&lt;br /&gt;
&lt;br /&gt;
3. After save changed, use &amp;quot;fex2bin&amp;quot; command to transfer sys_config.fex to bin file, &amp;quot;fex2bin sys_config.fex script.bin &amp;quot;, reboot.&lt;br /&gt;
&lt;br /&gt;
parameters meaning：&lt;br /&gt;
&lt;br /&gt;
[[Image: display_mode.png]]&lt;br /&gt;
&lt;br /&gt;
===BPI-Tools===&lt;br /&gt;
====Install Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash - &amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Update Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;bpi-tools&amp;quot;&lt;br /&gt;
[[Image: Bpi-tools.png]]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi,GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to Update WiringPi====&lt;br /&gt;
* Execute &amp;quot;bpi-update -c pkglist.conf&amp;quot;&lt;br /&gt;
[[Image: Update_Pkglist.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;bpi-update -c bpi-pkg-bpi-wiringpi.conf&amp;quot;&lt;br /&gt;
[[Image: Update_WringPi.png]]&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M1P&amp;diff=14179</id>
		<title>Getting Started with M1P</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M1P&amp;diff=14179"/>
				<updated>2023-03-20T01:13:17Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Load your first image on M1+ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M1+]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
==BPI-M1P==&lt;br /&gt;
[[File:Banana_pi_BPI-M1+_1.jpg|thumb|Overview [[Banana Pi BPI-M1+ ]]]]&lt;br /&gt;
[[File:M1P_ubuntu.png|thumb|Overview: BPI-M1P ubuntu linux]]&lt;br /&gt;
&lt;br /&gt;
   The Banana Pi M1+ features onboard WiFi g/b/n. The board supports all classic projects and even more because of the onboard WIFi chip. Like its sibling, it can run operating systems including Android, Lubuntu, Ubuntu, Debian, and Raspbian.&lt;br /&gt;
   The Banana Pi M1+ is our upgraded M1 board. We feel like the onboard WiFi adds a lot more features to the board and makes it more convient for users to set up their linx desktop or router projects. &lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M1+]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Dual-core 1.0GHz CPU&lt;br /&gt;
* 1 GB DDR3 memeory&lt;br /&gt;
* Mali-400 MP2 with Open GL ES 2.0/1.1&lt;br /&gt;
* WiFi onbaord&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
Let's get start to develop on BPI-M1P, see amazing things happen.&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with windows System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M1P&lt;br /&gt;
===Load the linux image on M1+===&lt;br /&gt;
  1.Download the latest image from the forum.&lt;br /&gt;
  &lt;br /&gt;
  2.Put the TF card into a card reader and plug it to your PC USB interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Download the flashing tools &amp;quot;BalenaEtcher&amp;quot; and start it.&lt;br /&gt;
  &lt;br /&gt;
  4.Click &amp;quot;Flash from file&amp;quot; to select your image file.(.img or .zip)&lt;br /&gt;
  &lt;br /&gt;
  5.Click &amp;quot;Select target&amp;quot; to choose your USB device.&lt;br /&gt;
  &lt;br /&gt;
  6.Start to flash and wait for a moment.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:Etcher.jpg | 600px]]&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Load your first image on M1+===&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  Ex:&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===SATA===&lt;br /&gt;
1. Mount SATA on M1P&lt;br /&gt;
* After insert sata interface, execute &amp;quot;fdisk -l&amp;quot;&lt;br /&gt;
* Then &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
  [[Image:M1P_Sata.png]]&lt;br /&gt;
&lt;br /&gt;
2. If you meet some errors when you mount SATA, try these following commands:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;fdisk /dev/sdx&amp;quot; to create new partition , set your partition numbers and size, after created partitions, input &amp;quot;wq&amp;quot; to save and quit.&lt;br /&gt;
* &amp;quot;mkfs.ext2 /dev/sdx&amp;quot; to format the SATA&lt;br /&gt;
* &amp;quot;mount /dev/sdx /mnt/xxx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. After you success to insert SATA, we could input following commands to test SATA interface:&lt;br /&gt;
* &amp;quot;time dd if=/dev/xxx of=/dev/null bs=1M count=1000&amp;quot; to test read speed&lt;br /&gt;
* &amp;quot;time dd if=/dev/zero of=/dev/sdx bs=1M count=1000&amp;quot; to test write speed&lt;br /&gt;
  [[Image:Sata_test.png]]&lt;br /&gt;
&lt;br /&gt;
===Touch screen===&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
1. On PC Terminal:&lt;br /&gt;
* Execute &amp;quot;iperf3 -s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. On M1P console:&lt;br /&gt;
* TCP test: &amp;quot;iperf3 -c serverIP&amp;quot;&lt;br /&gt;
* UDP test: &amp;quot;iperf3 -u -c serverIP&amp;quot;&lt;br /&gt;
[[Image:M1P_Gmac_test.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi on M1P===&lt;br /&gt;
====WiFi Client====&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpasupplicant/wpa_supplicant.conf &lt;br /&gt;
  network={    &lt;br /&gt;
  ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
  psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
  priority=1 &lt;br /&gt;
  }&lt;br /&gt;
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===IR function===&lt;br /&gt;
* Execute &amp;quot;getevent&amp;quot;&lt;br /&gt;
* Use your IR device to send information to M1P&lt;br /&gt;
[[Image:M1P_IR.png]]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi,GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===WringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
* read only system change to read &amp;amp; write mode: &amp;quot;mount -o remount,rw /&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Install QT===&lt;br /&gt;
* sudo apt-get install build-essential&lt;br /&gt;
* sudo apt-get install libgl1-mesa-dev&lt;br /&gt;
* sudo apt-get install libglu1-mesa-dev&lt;br /&gt;
* sudo apt-get install freeglut3-dev&lt;br /&gt;
* sudo apt-get install cmake &lt;br /&gt;
* sudo apt-get install qt5-default qtcreator&lt;br /&gt;
&lt;br /&gt;
===A20 CAN Bus===&lt;br /&gt;
&lt;br /&gt;
In order to port [https://sourceforge.net/projects/can4linux/ can4linux] to the BananaPi, the CAN module description is needed from the A20 hardware manual. can4linux is a character-driver-based Linux driver used already on desktop PCs and embedded platforms like Freescale FlexCAN (the i.MX series of micro controllers) or Xiliny Zynq. &lt;br /&gt;
&lt;br /&gt;
There is a more detailed document about CAN on the A20 at: https://dl.linux-sunxi.org/A20/CAN%20Bus1.pdf&lt;br /&gt;
&lt;br /&gt;
This is a tutorial for using CAN BUS on bananapi with bananian 15-01&lt;br /&gt;
&lt;br /&gt;
Thank selqcir share this example:&lt;br /&gt;
&lt;br /&gt;
*Download and install &amp;quot;bananian-1501.img&amp;quot; into 8 GB SDCard.&lt;br /&gt;
*Expand the root file system using &amp;quot;bananian-config&amp;quot;&lt;br /&gt;
*Install missing package:&lt;br /&gt;
 apt-get install git&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
 reboot&lt;br /&gt;
*Get last bananian available, and continu to install missing package:&lt;br /&gt;
 git clone https://github.com/Bananian/linux-bananapi&lt;br /&gt;
 apt-get install build-essential u-boot-tools uboot-mkimage &lt;br /&gt;
 apt-get install libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
*Build kernel:&lt;br /&gt;
 cd linux-bananapi&lt;br /&gt;
 make menuconfig&lt;br /&gt;
*Exit without saving when menu appears&lt;br /&gt;
 zcat /proc/config.gz &amp;gt; /root/linux-bananapi/.config&lt;br /&gt;
 make uImage modules&lt;br /&gt;
 make INSTALL_MOD_PATH=output modules_install&lt;br /&gt;
*At this step, kernel should be compiled and &amp;quot;Module.symvers&amp;quot; should be available&lt;br /&gt;
*Then rename modules and firmware provide by Bananian, and replace by the new one.&lt;br /&gt;
 mv /lib/modules /lib/modules.old&lt;br /&gt;
 mv /lib/firmware /lib/firmware.old&lt;br /&gt;
 mv /root/linux-bananapi/output/lib/modules /lib/modules&lt;br /&gt;
 mv /root/linux-bananapi/output/lib/firmware /lib/firmware&lt;br /&gt;
*Same for uImage:&lt;br /&gt;
 mount /dev/mmcblk0p1 /mnt&lt;br /&gt;
 cd /mnt&lt;br /&gt;
 mv uImage uImage.old&lt;br /&gt;
 mv /root/linux-bananapi/arch/arm/boot/uImage /mnt&lt;br /&gt;
 reboot&lt;br /&gt;
*Create link for further build:&lt;br /&gt;
 cd /lib/modules/3.4.104/&lt;br /&gt;
 ln -s /root/linux-bananapi build&lt;br /&gt;
 cd ~&lt;br /&gt;
*Get Can4Linux and build it:&lt;br /&gt;
 svn checkout https://svn.code.sf.net/p/can4linux/code/trunk can4linux-code&lt;br /&gt;
 cd /root/can4linux-code/can4linux/&lt;br /&gt;
 make TARGET=BANANAPI&lt;br /&gt;
*Install module for each startup of the board:&lt;br /&gt;
 insmod can4linux.ko&lt;br /&gt;
 cp can4linux.ko /lib/modules/3.4.104/kernel/net/can/&lt;br /&gt;
 depmod -A -v&lt;br /&gt;
 modprobe -v can4linux&lt;br /&gt;
 echo &amp;quot;&amp;quot; &amp;gt;&amp;gt; /etc/modules ; echo &amp;quot;can4linux&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
 reboot&lt;br /&gt;
*Build CAN example&lt;br /&gt;
 apt-get install swig&lt;br /&gt;
 apt-get install python-dev&lt;br /&gt;
 cd can4linux-code/can4linux-examples/&lt;br /&gt;
*Update CAN speed and device in file &amp;quot;pyCan-example.py&amp;quot;&lt;br /&gt;
 # setting the device number&lt;br /&gt;
 device = 0&lt;br /&gt;
 defaultBaudrate = '250'&lt;br /&gt;
*Connect CAN transceiver and CAN bus, and check with for example:&lt;br /&gt;
   python pyCan-example.py&lt;br /&gt;
&lt;br /&gt;
That's all&lt;br /&gt;
&lt;br /&gt;
With this method, kernel version is &amp;quot;Linux bananapi 3.4.104&amp;quot; instead of &amp;quot;Linux bananapi 3.4.104+&amp;quot;, because i was unable to find same sources than Bananian 15-01 , but CAN bus work !&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M1&amp;diff=14178</id>
		<title>Getting Started with M1</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M1&amp;diff=14178"/>
				<updated>2023-03-20T01:11:39Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Load your first image on M1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M1]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
==BPI-M1==&lt;br /&gt;
[[File:Banana_pi_BPI-M1_1.jpg|thumb|Overview [[Banana Pi BPI-M1]]]]&lt;br /&gt;
[[File:Banana_pi_BPI-M1_2.jpg|thumb|Overview]]&lt;br /&gt;
[[File:BPI-M1_3d.jpg|thumb|BPI-M1 3D ]]&lt;br /&gt;
&lt;br /&gt;
   The Banana Pi M1 is our first product in our goal of creating an open source devlopment board community. With a Banana Pi, we want you to explore and experience the world of DIY projects and portable computing. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project&lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana Pi BPI-M1]]&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Dual-core 1.0GHz CPU&lt;br /&gt;
* 1 GB DDR3 memeory&lt;br /&gt;
* Mali-400 MP2 with Open GL ES 2.0/1.1&lt;br /&gt;
&lt;br /&gt;
=Development For Armbian=&lt;br /&gt;
===Basic requirements===&lt;br /&gt;
&lt;br /&gt;
x86_64 or aarch64 machine with at least 2GB of memory and ~35GB of disk space for a virtual machine, container or bare metal installation&lt;br /&gt;
Ubuntu Jammy 22.04.x amd64 or aarch64 for native building or any Docker capable amd64 / aarch64 Linux for containerised&lt;br /&gt;
&lt;br /&gt;
  apt-get -y install git&lt;br /&gt;
  git clone https://github.com/armbian/build&lt;br /&gt;
  cd build&lt;br /&gt;
  ./compile.sh&lt;br /&gt;
&lt;br /&gt;
===Latest images===&lt;br /&gt;
&lt;br /&gt;
https://www.armbian.com/bananapi/&lt;br /&gt;
&lt;br /&gt;
=Development For Android=&lt;br /&gt;
===Load your first image on M1===&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  Ex:&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
===How to buld M1 Bsp code===&lt;br /&gt;
  * Prepare a PC which runs ubuntu&lt;br /&gt;
  * Install Docker-ce on your PC，https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce&lt;br /&gt;
  * After install Docker, execute &amp;quot;docker pull sinovoip/bpi-build-android:a20_01&amp;quot;, to pull image&lt;br /&gt;
  * Then you pulled image, execute &amp;quot;docker run --privileged -d -p 2223:22 -v /media:/media sinovoip/bpi-build-android:a20_01&amp;quot; &lt;br /&gt;
  * &amp;quot;ssh -p 2223 root@127.0.0.1 #default passwd is root&amp;quot;&lt;br /&gt;
  * Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/BPI-M1-bsp.git&amp;quot; on your ubuntu terminal&lt;br /&gt;
  * Execute &amp;quot;./build.sh&amp;quot; to build M1 bsp code&lt;br /&gt;
  * After built, open a new terminal, execute &amp;quot;docker cp xxxxx(your container id):xxxxx(your project path) xxxxx(your pc path)&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  [[Image:docker_operate.png]]&lt;br /&gt;
&lt;br /&gt;
=Development For Linux=&lt;br /&gt;
===Load the linux image on M1===&lt;br /&gt;
  1.Download the latest image from the forum.&lt;br /&gt;
  &lt;br /&gt;
  2.Put the TF card into a card reader and plug it to your PC USB interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Download the flashing tools &amp;quot;BalenaEtcher&amp;quot; and start it.&lt;br /&gt;
  &lt;br /&gt;
  4.Click &amp;quot;Flash from file&amp;quot; to select your image file.(.img or .zip)&lt;br /&gt;
  &lt;br /&gt;
  5.Click &amp;quot;Select target&amp;quot; to choose your USB device.&lt;br /&gt;
  &lt;br /&gt;
  6.Start to flash and wait for a moment.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:Etcher.jpg | 600px]]&lt;br /&gt;
&lt;br /&gt;
Let's get start to develop on BPI-M1, see amazing things happen.&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M1&lt;br /&gt;
&lt;br /&gt;
   [[Image:Debug_console_wire.png]]&lt;br /&gt;
&lt;br /&gt;
  [[Image:M1_uart_pins.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
  [[Image:M1_console_interface.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
===Load your first image on M1===&lt;br /&gt;
  1.You could download latest image from our forum&lt;br /&gt;
  * Here is the example link: &lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your system. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card.&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into M1, and press power button setup M1&lt;br /&gt;
&lt;br /&gt;
===Update your image===&lt;br /&gt;
   * execute “bpi-tools”, to update your bpi tools;&lt;br /&gt;
   * execute “bpi-update -c bpi-m1.conf”, to download new driver to update your image&lt;br /&gt;
   * execute “file *.tgz”, to check download files’ type is compressed data&lt;br /&gt;
   * execute “bpi-bootsel”, you will see the bootloader path, “/usr/lib/u-boot/bananapi/u-boot-2018.01/u-boot-2018.01-bpi-m1-8k.img.gz”&lt;br /&gt;
   * execute “bpi-bootsel /usr/lib/u-boot/bananapi/u-boot-2018.01/u-boot-2018.01-bpi-m1-8k.img.gz”, to update your bootloader&lt;br /&gt;
   * reboot&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-R3&amp;diff=13947</id>
		<title>Banana Pi BPI-R3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-R3&amp;diff=13947"/>
				<updated>2023-03-07T08:18:33Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派 BPI-R3]]&lt;br /&gt;
=Summary=&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-R3_3.jpg|thumb|[[Banana Pi BPI-R3]] with MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_with_PoE.jpg|thumb|[[Banana Pi BPI-R3]] with PoE function support]]&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-R64_3.JPG|thumb|[[Banana Pi BPI-R64]] with MediaTek MT7622]]&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[Banana Pi BPI-R2]] with MTK MT7623N chip design]]&lt;br /&gt;
[[File:O2A0500.jpg|thumb|[[Banana Pi BPI-W2]] with Realtek RTK1296 chip design]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[Banana Pi BPI-R1]] with allwinner A20 chip design]]&lt;br /&gt;
[[File:Bpi-r3_Metal_case.jpg|thumb|[[Banana Pi BPI-R3 ]] Metal case ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
[[File:Banana_pi_751.jpg]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R3 Router board with MediaTek MT7986(Filogic 830) quad core ARM A53 + MT7531A chip design ,2G DDR RAM ,8G eMMC flash onboard,It is a very high performance open source router development board,support Wi-Fi6 2.4G wifi use MT7975N and 5G wifi use MT7975P, support 2 SFP 2.5GbE  port, and 5 GbE network port.&lt;br /&gt;
&lt;br /&gt;
==MediaTek MT7986(Filogic 830)==&lt;br /&gt;
&lt;br /&gt;
The MT7986(Filogic 830) integrates four Arm Cortex-A53 cores up to 2GHz with up to 18,000 DMIPs of processing power and 6Gbps of dual 4x4 Wi-Fi6 connectivity. It has two 2.5g Ethernet interfaces and serial peripheral interfaces (SPI). Filogic 830‘s built-in hardware acceleration engine enables fast and reliable Wi-Fi offloading and wireless network connection. In addition, the chip supports Mediatek FastPath™ technology, which is suitable for games, AR/VR and other low-latency applications. &lt;br /&gt;
&lt;br /&gt;
Wi-fi 6 has many advantages over its predecessors, including lower latency, larger bandwidth capacity and faster transmission rates. Wireless network devices supporting the 6GHz band mainly use 160MHz wide channel and 6GHz uncongested bandwidth to provide multigigabit transmission and low-latency wi-fi connection, providing reliable wireless network for streaming media, games, AR/VR and other applications.&lt;br /&gt;
&lt;br /&gt;
==Application direction==&lt;br /&gt;
*. Internet service Router&lt;br /&gt;
*. Wireless Router&lt;br /&gt;
*. Wireless Repeater&lt;br /&gt;
*. Home security Gateway&lt;br /&gt;
*. Home Automation&lt;br /&gt;
*. Nas device&lt;br /&gt;
*. Network and communication applications&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
*. MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53+MT7531 chip design&lt;br /&gt;
*. Wifi 6 4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P) &lt;br /&gt;
*. 2G DDR RAM&lt;br /&gt;
*. 8G eMMC flash&lt;br /&gt;
*. 2 SFP 2.5GbE&lt;br /&gt;
*. 5 GbE network port &lt;br /&gt;
*. POE support (optional)&lt;br /&gt;
*. Mini PCIe via USB&lt;br /&gt;
*. M.2 KEY-E PCIe inerface&lt;br /&gt;
*. Mciro SD card interfact&lt;br /&gt;
*. 26 PIN GPIO&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Getting Started with BPI-R3]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-R3_interface_750.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Jumper setting==&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;4&amp;quot;| '''Jumper Setting of Banana pi BPI-R3'''&lt;br /&gt;
|-&lt;br /&gt;
| Jumper Setting || SW1 || SW2|| SW5 || SW6 &lt;br /&gt;
|-&lt;br /&gt;
| SPIM-NoR || Low || Low|| Low || X &lt;br /&gt;
|-&lt;br /&gt;
| SPIM-Nand || High || Low|| High || X &lt;br /&gt;
|-&lt;br /&gt;
| eMMC || Low || High|| High || Low &lt;br /&gt;
|-&lt;br /&gt;
| SD card || High || High|| X || High &lt;br /&gt;
|-&lt;br /&gt;
|}&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;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-R3'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU ||MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53+MT7531 chip design&lt;br /&gt;
|-&lt;br /&gt;
| SDRAM || 2 GB DDR4 &lt;br /&gt;
|-&lt;br /&gt;
| On board Storage || MicroSD \(TF\) card,8GB eMMC onboard &lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 26 Pin GPIO,some of which can be used for specific functions including UART, I2C, SPI, PWM, I2S. &lt;br /&gt;
|-&lt;br /&gt;
| On board Network || 5 Port 10/100/1000Mbps Ethernet  &lt;br /&gt;
|-&lt;br /&gt;
| SFP || 2 SFP 2.5GbE&lt;br /&gt;
|-&lt;br /&gt;
| Wifi || Wifi 6  4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P) &lt;br /&gt;
|-&lt;br /&gt;
| mini PCIE||Mini PCIe via USB&lt;br /&gt;
|-&lt;br /&gt;
|M.2 interface ||M.2 KEY-M PCIe inerface&lt;br /&gt;
|-&lt;br /&gt;
| USB || 1 USB 3.0 host ,2 USB interface with slot.&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || Reset button,WPS botton, boot switch&lt;br /&gt;
|-&lt;br /&gt;
| Leds || Power status Led and RJ45 Led &lt;br /&gt;
|-&lt;br /&gt;
| DC Power || 12V/2A with DC in&lt;br /&gt;
|-&lt;br /&gt;
| Sizes || 100.5x148mm same as [[Banana Pi BPI-R64]] and [[Banana Pi BPI-R2]]&lt;br /&gt;
|-&lt;br /&gt;
| Weight || 200g &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
   https://github.com/BPI-SINOVOIP/BPI-R3-OPENWRT-V21.02.3&lt;br /&gt;
&lt;br /&gt;
 Notes:&lt;br /&gt;
 Baidu link: https://pan.baidu.com/s/1JSQ7wJTCeK4JqWR_XB-LLQ?pwd=6vdb (Pincode: 6vdb)&lt;br /&gt;
 Google link:https://drive.google.com/file/d/13nQMfM0_XTyWcILhNxv_9E4TIvb65RI0/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*BPI-R3 DXF file : https://drive.google.com/file/d/1bc5mCtJlnPi84q7VZYaQkZhRUU4HUfUd/view?usp=sharing&lt;br /&gt;
*BPI-R3 schematic diagram :  https://drive.google.com/file/d/1mxKb8CBbnzfNSd_4esmcX_NovxaXjEb8/view?usp=sharing&lt;br /&gt;
*MT7986A_Datasheet_1.15 : https://drive.google.com/file/d/1t_nuPTeoAcFb1dmEe4kJVlLWdHcAA6OB/view?usp=sharing&lt;br /&gt;
*MT7986A_Reference_Manual_for_BPI-R3 : https://drive.google.com/file/d/1biSJmxnIpNzQroYDg9mtPtSTAv4i0DFf/view?usp=sharing&lt;br /&gt;
*[Tutorial] Build, customize and use MediaTek open-source U-Boot and ATF : https://forum.banana-pi.org/t/tutorial-build-customize-and-use-mediatek-open-source-u-boot-and-atf/13785&lt;br /&gt;
*BPI-R3 OpenSource Routerboard how to burn and test imagehttps://www.youtube.com/watch?v=Xaf_SC7fPDM&lt;br /&gt;
*BPI-R3 CE,FCC,RoHS certificate : https://banana-pi.org/en/bpi-honor/&lt;br /&gt;
*Banana Pi BPI-R3 Review: Details, Pricing, &amp;amp; Features : https://androidpimp.com/embedded/banana-pi-bpi-r3-router-board/?fbclid=IwAR1G4cEco5iULwKG-C-n8MIiWOWZMhPborqmCzS2d3KIHx-eNQS-54lZnps&lt;br /&gt;
*Update OpenWrt to 22.03.3 SNAPSHOT:https://forum.banana-pi.org/t/bananapi-bpi-r3-update-openwrt-to-22-03-3-snapshot/14984&lt;br /&gt;
&lt;br /&gt;
=Release image=&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
*2022-06-01udptae BPI-R3 OpenWRT 21.02 linux kernel 5.4, wifi 6 2.4G and 5G working fine support nand flash ,SD card ,eMMC flash boot. for BPI-R3 production version hardware&lt;br /&gt;
::Google drive :https://drive.google.com/file/d/18_xst-diDdCg7CeSum1M5FDbbo31jFJq/view?usp=drivesdk  &lt;br /&gt;
::Baidu link:  https://pan.baidu.com/s/1idqU1-bB4XD1LTGDAJxRGA?pwd=chez Pincode: chez &lt;br /&gt;
::Discuss on forum : https://forum.banana-pi.org/t/banana-pi-bpi-r3-openwrt-image/13236&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-09-28 udptae BPI-R3 OpenWRT 21.02 linux kernel 5.4, wifi 6  2.4G and 5G working fine support nand flash ,SD card ,eMMC flash boot, support EC25 LTE 4G &lt;br /&gt;
Modules for BPI-R3 production version hardware&lt;br /&gt;
::Google drive: https://drive.google.com/file/d/1oNcnIl8bDla9pPWUd-TFPXXphsCMsJt0/view?usp=sharing&lt;br /&gt;
::Baidu link: https://pan.baidu.com/s/1v4sKfAuax3AfHNtp_2RP_g?pwd=mebq (Pincode: mebq)&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
&lt;br /&gt;
*[BPI-R3] Debian Bullseye Image, this image is share by Frank:&lt;br /&gt;
::https://forum.banana-pi.org/t/bpi-r3-debian-bullseye-image/14541&lt;br /&gt;
&lt;br /&gt;
* 2022-12-18-debian-11-bullseye-lite-bpi-r3-5.15-sd-emmc.img, Kernel 5.15.77&lt;br /&gt;
:: Baidu Cloud: https://pan.baidu.com/s/195HeMXjK-rmCEZTnYBCndA?pwd=8888 (pincode: 8888)&lt;br /&gt;
:: Google Drive:https://drive.google.com/file/d/1NRR1hKsv6vE1bHOyRjcCGiHgmgaRxt72/view?usp=share_link&lt;br /&gt;
&lt;br /&gt;
* 2022-12-18-debian-10-buster-lite-bpi-r3-5.15-sd-emmc.img, Kernel 5.15.77&lt;br /&gt;
:: Baidu Cloud: https://pan.baidu.com/s/1_OGb8ZMF4pWIbaKJ0z2JsA?pwd=8888 (pincode: 8888)&lt;br /&gt;
:: Google Drive: https://drive.google.com/file/d/1Q9ZSCZ8_ZI6o5SG4_iOn-mQUaci6Qfrt/view?usp=share_link&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
* 2022-12-18-ubuntu-22.04-server-bpi-r3-aarch64-sd-emmc.img&lt;br /&gt;
:: Baidu Cloud: https://pan.baidu.com/s/1PajBEeFkgzgBdmJa5KpHpA?pwd=8888 (pincode: 8888)&lt;br /&gt;
:: Google Drive:https://drive.google.com/file/d/1m9TFmnICj45b61evvmz9ja0g7kH641SG/view?usp=share_link&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
===Failed to save the configuration===&lt;br /&gt;
:: Enter &amp;quot;mtd erase /dev/mtd10&amp;quot;&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-R64&amp;diff=13880</id>
		<title>Banana Pi BPI-R64</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-R64&amp;diff=13880"/>
				<updated>2023-02-27T01:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-R64]]&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
[[File:BPI-R64_3.JPG|thumb|[[Banana Pi BPI-R64]] with MT7622]]&lt;br /&gt;
[[File:BPI-R64_case_1.jpg|thumb|[[Banana Pi BPI-R64]] Metal [[Case]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[Banana Pi BPI-R2]] with MTK MT7623N 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-R2_Pro_1_750.jpg|thumb|[[Banana Pi BPI-R2 Pro]] Rockchip RK3568 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:O2A0500.jpg|thumb|[[Banana Pi BPI-W2]] with Realtek RTK1296 chip design]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[Banana Pi BPI-R1]] with allwinner A20 chip design]]&lt;br /&gt;
[[File:BPI-R64_4.JPG|thumb|BPI-R64 with BPI-7402 POE function support]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R64_1.jpg|thumb|Overview：banana Pi BPI-R64]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-7402_IEEE_802.3at_PoE_module_2.jpg|thumb|[[BPI-7402 IEEE 802.3at PoE module]]]]&lt;br /&gt;
[[File:MTK_MT7615_1.JPG|thumb|[[BPI-MT7615 802.11 ac wifi 4x4 dual-band module]]]]&lt;br /&gt;
[[File:5G_gateway_2.jpg|thumb|BPI:4.0 [[Successful case]] 5G Converged communication gateway]]&lt;br /&gt;
[[File:BPI-4G 5.JPG|thumb|4G with USB [[4G module via USB]]]]&lt;br /&gt;
[[File:BPI-R64_4g_1.JPG|thumb|[[5G + 4G LTE+Wifi AC+Gigabit Multiplex aggregate route]]]]&lt;br /&gt;
[[File:BPI-R64_case.JPG|thumb|BPI-R64 case]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The Banana Pi R64 is a router based development board, which can run on a variety of open source operating systems including OpenWrt,Linux. It has 4 Gigabit LAN ports, 1 Gigabit WAN, and AC wifi AP function.&lt;br /&gt;
use 64 bit chip design&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-R64.png]]&lt;br /&gt;
&lt;br /&gt;
'''Note: this board doesn't have HDMI interface'''&lt;br /&gt;
&lt;br /&gt;
==MTK MT7622== &lt;br /&gt;
&lt;br /&gt;
Highly integrated 4x4 802.11n and Bluetooth 5.0 platform with dedicated Network Accelerator&lt;br /&gt;
[https://www.mediatek.com/products/homeNetworking/mt7622 MediaTek MT7622] is the world’s first with 4x4n 802.11n/Bluetooth 5.0 system-on-chip designed and built for premium networking devices across several applications including routers/repeaters, home automation gateways, wireless audio, and wireless storage. The highly versatile chipset provides a single platform for popular 4X4 dual-band and tri-band routers/repeaters, providing maximum flexibility for manufacturers looking to build top-tier networking devices. The platform pairs high performance and extensively integrated functionality with a cost-effective approach.&lt;br /&gt;
&lt;br /&gt;
The MT7622 contains MediaTek’s Adaptive Network technology that allows for easy setup, network self-healing, roaming, band steering, Smart quality of service, advanced security and more. For audio and voice control applications, essential audio interfaces such as I2S, TDM and S/PDIF are included. And for Home Automation Gateways there is a rich array of slow I/O in addition to the integrated Wi-Fi, Bluetooth and Zigbee co-existence.&lt;br /&gt;
&lt;br /&gt;
Powered by a 64-bit dual-core ARM Cortex-A53 processor clocked at 1.35GHz, the MT7622 provides a host of advanced connectivity options like SGMII/RGMII, PCIe, and USB, and 4X4 802.11n FEM integration. Extending the platform with 802.11ac to meet additional markets is simply done via MT7615 SoC.&lt;br /&gt;
&lt;br /&gt;
The MT7622 introduces several best-in-class features such as Bluetooth 5.0 and a dedicated Network Accelerator engine with the MediaTek Wi-Fi Warp Accelerator, storage accelerator (SATA 3.0/eSATA Gen2) and HNAT HQoS calculations are offloaded from the CPU, lowering overall power-use and freeing up resources to avoid any potential slow-downs.&lt;br /&gt;
&lt;br /&gt;
The advantage of the MediaTek Wi-Fi Warp Accelerator is two-fold. Firstly it connects the Gigabit+ class 802.11ac networking through to the Gigabit switch/WAN connection via multi-Gigabit internal pathways, ensuring no bottleneck. Secondly, its specialized design not only offloads the CPU from many-user throughput and QoS calculations, it does so at lower power. The result is the MediaTek Wi-Fi Warp Accelerator maintains a sustained high-performance when even supporting multiple, simultaneous heavy users.&lt;br /&gt;
&lt;br /&gt;
Integrated Bluetooth allows for a direct, local wireless connection via App for easy configuration of the router/Wi-Fi settings. The latest Bluetooth 5.0 quadruples range and doubles speed versus previous 4.x technologies, allowing new and innovative possibilities.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* MediaTek MT7622,1.35GHZ 64 bit dual-core ARM Cortex-A53&lt;br /&gt;
* 1G DDR3 SDRAM&lt;br /&gt;
* Mini PCIE interface support 4G module&lt;br /&gt;
* built-in 4x4n 802.11n/Bluetooth 5.0 system-on-chip&lt;br /&gt;
* MTK7615 4x4ac wifi (option)&lt;br /&gt;
* support 1 SATA interface&lt;br /&gt;
* MicroSD slot supports up to 256GB expansion&lt;br /&gt;
* 8G eMMC flash (option 16/32/64G)&lt;br /&gt;
* 5 port 10/100/1000 Mb Ethernet port&lt;br /&gt;
* (1) USB 3.0&lt;br /&gt;
* Slow I/O:ADC, Audio Amplifier, GPIO, I2C, I2S, IR, PMIC I/F, PWM, RTC, SPI, UART&lt;br /&gt;
* POE function support&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
&lt;br /&gt;
Read more for development :[[Getting Started with R64]]&lt;br /&gt;
&lt;br /&gt;
Frank wiki : http://fw-web.de/dokuwiki/doku.php?id=en:bpi-r64:start&lt;br /&gt;
&lt;br /&gt;
=Hardware Revision=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-R64_interface.JPG]]&lt;br /&gt;
&lt;br /&gt;
the inner and outer diameter of the power plug adapter datasheet:https://drive.google.com/file/d/1k3AWmYOs2XE7lnRxCyytZu0Vpq_Bzcu_/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
[[File:Dc090_size.png]]&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;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-R64'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU ||MediaTek MT7622,1.35GHZ 64 bit dual-core ARM Cortex-A53&lt;br /&gt;
|-&lt;br /&gt;
| SDRAM || 1 GB DDR3 &lt;br /&gt;
|-&lt;br /&gt;
| SATA || support 1 SATA interface &lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40 Pins Header, 28×GPIO, some of which can be used for specific functions including UART, I2C, SPI, PWM, I2S. &lt;br /&gt;
|-&lt;br /&gt;
| On board Network || 5 10/100/1000Mbps Ethernet  &lt;br /&gt;
|-&lt;br /&gt;
| Wifi || built-in 4x4n 802.11n (800Mbps) sysem-on-chip and  MTK7615 4x4ac wifi Module (1733Mbps) (option)&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Bluetooth 5.0 system-on-chip&lt;br /&gt;
|-&lt;br /&gt;
| On board Storage || MicroSD \(TF\) card,8GB eMMC onboard &lt;br /&gt;
|-&lt;br /&gt;
| mini PCIE||1 mini pcie interface for 4G &lt;br /&gt;
|-&lt;br /&gt;
| USB || 1 USB 3.0 host &lt;br /&gt;
|-&lt;br /&gt;
| Buttons || Reset button&lt;br /&gt;
|-&lt;br /&gt;
| Leds || Power status Led and RJ45 Led &lt;br /&gt;
|-&lt;br /&gt;
| IR || PIN define with GPIO&lt;br /&gt;
|-&lt;br /&gt;
| DC Power || 12V/2A with DC in&lt;br /&gt;
|-&lt;br /&gt;
| POE || support POE module interface,can add POE module &lt;br /&gt;
|-&lt;br /&gt;
| Sizes || 148 mm × 100.5mm same as [[Banana Pi BPI-R3]] and [[Banana Pi BPI-R2]]&lt;br /&gt;
|-&lt;br /&gt;
| Weight || 100g &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PoE support ==&lt;br /&gt;
&lt;br /&gt;
we design PoE function for BPI-R64 ,so easy to add PoE module to support PoE function,PoE modue can support IEEE 802.3bt PoE standard ,Max support 12V/3A to power BPI-R64&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-R64_POE.jpg]]&lt;br /&gt;
&lt;br /&gt;
more PoE module spec &lt;br /&gt;
&lt;br /&gt;
[[BPI-7402 IEEE 802.3at PoE module]]&lt;br /&gt;
&lt;br /&gt;
==4G support==&lt;br /&gt;
&lt;br /&gt;
1, use pcie interface standard module ,and use SIM card slot onboard&lt;br /&gt;
&lt;br /&gt;
::[[File:4g_onboard.jpg]]&lt;br /&gt;
&lt;br /&gt;
2,use 4G extend module via USB port&lt;br /&gt;
&lt;br /&gt;
*USB 4G module : http://wiki.banana-pi.org/4G_module_via_USB&lt;br /&gt;
&lt;br /&gt;
==BPI-MT7615 802.11 ac wifi 4x4 dual-band==&lt;br /&gt;
&lt;br /&gt;
we have design a MT7615 802.11 ac wifi module ,can use on BPI-R64&lt;br /&gt;
&lt;br /&gt;
MT7615 is a highly integrated Wi-Fi single chip which support 1733 Mbps PHY rate,It fully compies with IEEE 802.11ac and IEEE802.11 a/b/n standards,offering feature-rich wireless connecivity at high standards,and delivering reliable,cost-effective throughput from and extended distance.&lt;br /&gt;
&lt;br /&gt;
[[BPI-MT7615 802.11 ac wifi 4x4 dual-band module]]&lt;br /&gt;
&lt;br /&gt;
[[BPI-R64 + MT7615 function test]]&lt;br /&gt;
&lt;br /&gt;
==BPI-R64 GPIO Pin define==&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
==Source code==&lt;br /&gt;
*Banana Pi BPI-R64 (MT7622) openwrt (Kernel 4.19) : https://github.com/BPI-SINOVOIP/BPI-R64-openwrt&lt;br /&gt;
*BPI-R64 Linux BSP(kernel 5.4):https://github.com/BPI-SINOVOIP/BPI-R64-bsp-5.4&lt;br /&gt;
*BPI-R64 Linux BSP(kernel 4.19):https://github.com/BPI-SINOVOIP/BPI-R64-bsp-4.19&lt;br /&gt;
*BPI-R64 Linux BSP(kernel 4.4) : https://github.com/BPI-SINOVOIP/BPI-R64-bsp&lt;br /&gt;
*frank github(kernel 5.4): https://github.com/frank-w/BPI-R2-4.14/tree/5.4-r64-dsa&lt;br /&gt;
* OpenWRT: https://github.com/openwrt/openwrt/tree/master/target/linux/mediatek/mt7622&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*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 [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
*BPI-R64 schematic diagram &lt;br /&gt;
::google https://drive.google.com/file/d/1QzKmIwgSNbCIXQbqLsTUELJCEPik3VGr/view?usp=sharing&lt;br /&gt;
::baidu cloud link: https://pan.baidu.com/s/18MEJpr5OTYmySZoyk3bO5Q pincode: amqt&lt;br /&gt;
* BPI-R64 DXF file for case deign : https://drive.google.com/file/d/1_YNsdQ9Cv7FVOGrqd6GP0Tu5u2cjLwTA/view?usp=sharing&lt;br /&gt;
* BPI-R64 DXF file and the parts used for the assembly datasheet: https://drive.google.com/file/d/1LK5HkP4AfE8xNLJMRHvc7JgexfkDBUAF/view?usp=sharing&lt;br /&gt;
* 3D printed case for Banana PI R-64. Link https://www.thingiverse.com/thing:4261948&lt;br /&gt;
* BPI-R64 3D design file update with SolidWorks :http://forum.banana-pi.org/t/bpi-r64-3d-design-file-with-solidworks/10910&lt;br /&gt;
* MTK 7622 chip : https://www.mediatek.com/products/homeNetworking/mt7622&lt;br /&gt;
* MTK MT7622A_Datasheet_for_BananaPi_Only : https://drive.google.com/file/d/1DVEv3bovA8cPti3Ln7d9lDBjMCGFSE5m/view?usp=sharing&lt;br /&gt;
* MT7622 Reference Manual for Develope Board(BPi) : https://drive.google.com/file/d/1cW8KQmmVpwDGmBd48KNQes9CRn7FEgBb/view?usp=sharing&lt;br /&gt;
*MT7531 switch chip datasheet: https://drive.google.com/file/d/1aVdQz3rbKWjkvdga8-LQ-VFXjmHR8yf9/view?usp=sharing&lt;br /&gt;
*Banana Pi BPI-R64 debian Linux boot demo and bootlog:http://forum.banana-pi.org/t/banana-pi-bpi-r64-debian-linux-boot-demo-and-bootlog/8155&lt;br /&gt;
*Banana Pi BPI-R64 passed AWS Greengrass : https://devices.amazonaws.com/detail/a3G0h000000OvObEAK/Banana-Pi-R64&lt;br /&gt;
*Bpi-r64 quick start (boot from eMMC):http://forum.banana-pi.org/t/bpi-r64-quick-start-boot-from-emmc/9809&lt;br /&gt;
*Banana Pi BPI-R64 CE,FCC,RoHS Certification : http://forum.banana-pi.org/t/banana-pi-bpi-r64-open-source-router-board-ce-fcc-rohs-certification/10094&lt;br /&gt;
*Patchwork/Mailinglist there was a DSA-driver for mt7531 released : https://patchwork.kernel.org/project/linux-mediatek/list/?submitter=189635&lt;br /&gt;
*MTK chip mailline Linux effort :https://mtk.bcnfs.org/doku.php?id=linux_mainline_effort&lt;br /&gt;
*BPI-R64 current u-boot support：http://forum.banana-pi.org/t/bpi-r64-current-u-boot-support/10077&lt;br /&gt;
*New netfilter flow table based HNAT:http://forum.banana-pi.org/t/new-netfilter-flow-table-based-hnat/12049&lt;br /&gt;
*[Tutorial] Build, customize and use MediaTek open-source U-Boot and ATF : https://forum.banana-pi.org/t/tutorial-build-customize-and-use-mediatek-open-source-u-boot-and-atf/13785&lt;br /&gt;
&lt;br /&gt;
== Amazon AWS Greengrass==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R64 passed Amazon AWS Greengrass:https://devices.amazonaws.com/detail/a3G0h000000OvObEAK/Banana-Pi-BPI-R64&lt;br /&gt;
&lt;br /&gt;
=Release=&lt;br /&gt;
&lt;br /&gt;
*Download and setup separate ATF image for booting directly into kernel or u-boot&lt;br /&gt;
::https://forum.banana-pi.org/t/bpi-r64-download-and-setup-separate-atf-image-for-booting-directly-into-kernel-or-u-boot/12806&lt;br /&gt;
&lt;br /&gt;
==OpenWRT &amp;amp; LEDE==&lt;br /&gt;
*Banana Pi BPI-R64 19.07.7 OpenWRT Router image 2021-05-01 &lt;br /&gt;
::google driver:https://drive.google.com/file/d/1YHSU8BHG-k0EcHNp0-F73Xlpiqq1ho4v/view?usp=sharing&lt;br /&gt;
::baidu link : https://pan.baidu.com/s/1RxtvekBOxP0UtNSzx5mpEg Pincode: fthx &lt;br /&gt;
::source code on github:https://github.com/BPI-SINOVOIP/BPI-R64-openwrt.git&lt;br /&gt;
::discuss on forum :http://forum.banana-pi.org/t/banana-pi-bpi-r64-19-07-7-openwrt-router-image-2021-05-01/12209&lt;br /&gt;
&lt;br /&gt;
* Custom OpenWrt build for Banana Pi R64:&lt;br /&gt;
::http://forum.banana-pi.org/t/bpi-r64-custom-openwrt-build-for-banana-pi-r64/10973&lt;br /&gt;
&lt;br /&gt;
*BPI-R64 new image : LEDE17 (OpenWRT) image Kernel:4.4.177 2020-04-09&lt;br /&gt;
::google driver ： https://drive.google.com/drive/folders/1EK6fkGivZB3OmY38W8gN4rFAsnInMlNl&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1UR-Uli2chQ5tO9VCl5Yz6A Pincode：j00s&lt;br /&gt;
::Boot media: SD Card &amp;amp; eMMC ,two image &lt;br /&gt;
::MD5: 21a6d89979d473cde59f7d61f3&lt;br /&gt;
::discuss on forum: http://forum.banana-pi.org/t/bpi-r64-new-image-lede17-openwrt-image-kernel-4-4-177-2020-04-09/10924&lt;br /&gt;
&lt;br /&gt;
*Mainline OpenWRT image&lt;br /&gt;
::https://drive.google.com/drive/folders/1LQaxUAWPh6Q3QbLEIxN3JP3soIDEPzGD&lt;br /&gt;
::discuss on forum : http://forum.banana-pi.org/t/r64-mainline-openwrt-image/11415&lt;br /&gt;
&lt;br /&gt;
==Ubuntu ==&lt;br /&gt;
*2021-6-16 update BPI-R64 Ubuntu Server 21.04 image &lt;br /&gt;
::Baidu link: https://pan.baidu.com/s/1nEfneNrFND1dfDLBAekdsg Pincode: dfvv &lt;br /&gt;
::Google link : https://drive.google.com/file/d/1ieF-qTyt8LDJiaGqr0uCL4QmAxJZpjhH/view?usp=drivesdk&lt;br /&gt;
&lt;br /&gt;
*2020-05-08 updae ,Ubuntu 18.04 with kernel 5.4.0&lt;br /&gt;
::donload link : https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-R64%2FUbuntu18.04&amp;amp;mode=list&lt;br /&gt;
::discuss on forum : http://forum.banana-pi.org/t/bpi-r64-new-image-debian10-and-ubuntu18-04-linux-kernel-5-4-0-2020-05-08/11106&lt;br /&gt;
&lt;br /&gt;
*2019-08-23 update,Ubuntu Server 16.04,This release is for banana pi R64 board, and it is based on kernel 4.19.&lt;br /&gt;
::Fetures Map:&lt;br /&gt;
::Google Drive :  https://drive.google.com/open?id=1zrOSS2QJPirSwoK5yJFx10SiOtxRjXPt &lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1iOtk-OnC9yNTMzdhSeOCJA（PinCode：ew9c）&lt;br /&gt;
::MD5 : 79fc190def54140dd9bf12b73e263bd0&lt;br /&gt;
::username : root/pi ; password : bananapi&lt;br /&gt;
::Forum Pthread:http://forum.banana-pi.org/t/bpi-r64-ubuntu-16-04-aarch64-linux-lite-debian-10-buster-lite-demo-images-release-2019-08-23/9759&lt;br /&gt;
*2020-12-22 Ubuntu 18.04 with kernel 5.4.0&lt;br /&gt;
::download link :  https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FImages%2FBPI-R64%2FUbuntu18.04%2F2020-12-20-ubuntu-18.04.3-bpi-r64-5.4-sd-emmc.img.zip&lt;br /&gt;
::supports 4G Module(EC20)&lt;br /&gt;
::username : root/pi ; password : bananapi&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
*[BPI-R64] debian buster with new bootchain and linux 5.10,frank share this image&lt;br /&gt;
::http://forum.banana-pi.org/t/bpi-r64-debian-buster-with-new-bootchain-and-linux-5-10/11850&lt;br /&gt;
&lt;br /&gt;
*2020-05-08 updae ,Debian10 with kernel 5.4.0&lt;br /&gt;
::download link :　https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/?p=%2FImages%2FBPI-R64%2FDebian10&amp;amp;mode=list&lt;br /&gt;
::discuss on forum : http://forum.banana-pi.org/t/bpi-r64-new-image-debian10-and-ubuntu18-04-linux-kernel-5-4-0-2020-05-08/11106&lt;br /&gt;
&lt;br /&gt;
*2019-08-23 update,Debian 10 buster lite,This release is for banana pi R64 board, and it is based on Debian 10 Buster Lite Operation system with kernel 4.19.&lt;br /&gt;
::Fetures Map:&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1p4WImHkItdSYGRV5jtMdfYHm5PD4dl-q&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1hVQj-1_rYc74QQ1Z4WoaiQ （PinCode：g1j5）&lt;br /&gt;
::MD5 : fa3f6a7f7a4bcf2c5a8072301cf8c268&lt;br /&gt;
::username : root/pi ; password : bananapi&lt;br /&gt;
::Forum Pthread:http://forum.banana-pi.org/t/bpi-r64-ubuntu-16-04-aarch64-linux-lite-debian-10-buster-lite-demo-images-release-2019-08-23/9759&lt;br /&gt;
&lt;br /&gt;
*2018-12-11 update This release is for banana pi R64 board which is based on Mtk 7622, Debian 8 AARCH64 is based on kernel 4.4.92&lt;br /&gt;
::Features Map: http://wiki.banana-pi.org/Getting_Started_with_R64&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1Xnz327Mm24WoVwAsj4yPPek09bP3yv7P&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1AdCM9lTuWP9oXiOE2qGsDw&lt;br /&gt;
::md5sum : 4b43980375c3f9692c1f0585ca6b541a&lt;br /&gt;
::discuss on forum:http://forum.banana-pi.org/t/banana-pi-bpi-r64-new-image-debian-8-11-aarch64-release-2018-12-11/7447&lt;br /&gt;
&lt;br /&gt;
==AArch64 Linux==&lt;br /&gt;
&lt;br /&gt;
*2019-08-23 update,AArch64 Linux lite,This release is for banana pi R64 board, and it is based on kernel 4.19.&lt;br /&gt;
::Fetures Map:&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1x7_Iu1D9jJGvAExdNZGDVGuv7CbDp4ep&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/15X6XtRuab08_N2T0vgoVOQ  （PinCode：j4f7）&lt;br /&gt;
::MD5 :ed579320359fdc471eeaf37f98d5874d&lt;br /&gt;
::username : root/pi ; password : bananapi&lt;br /&gt;
::Forum Pthread:http://forum.banana-pi.org/t/bpi-r64-ubuntu-16-04-aarch64-linux-lite-debian-10-buster-lite-demo-images-release-2019-08-23/9759&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
*easy to buy sample: [https://pt.aliexpress.com/store/group/R64-Board/302756_516275551.html?spm=2114.12010608.0.0.408a18d6rdUraV BPI official Aliexpress shop]&lt;br /&gt;
===TTL Voltage===&lt;br /&gt;
:: The debug-uart TTL is tolerant to 3.3V.&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_R2&amp;diff=13879</id>
		<title>Getting Started with R2</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_R2&amp;diff=13879"/>
				<updated>2023-02-27T01:51:24Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R2]]&lt;br /&gt;
&lt;br /&gt;
='''Introduction'''=&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|Overview [[Banana Pi BPI-R2]]]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[Banana Pi BPI-R1]] Allwinner A20]]&lt;br /&gt;
&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-R64_3.JPG|thumb|[[Banana Pi BPI-R64]] MTK MT7622]]&lt;br /&gt;
[[File:O2A0500.jpg|thumb|[[Banana Pi BPI-W2]] with Realtek RTD1296 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-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D chip]]&lt;br /&gt;
&lt;br /&gt;
   The Banana Pi R2 is a router based development board, which can run on a variety of open source operating systems including OpenWrt, Android, and Bananian. It has 4 Gigabit LAN ports, 1 Gigabit WAN, and 300Mbs wireless N capabilities. &lt;br /&gt;
&lt;br /&gt;
Read more: [[Banana Pi BPI-R2]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* MediaTek MT7623N, Quad-core ARM Cortex-A7&lt;br /&gt;
* Mali 450 MP4 GPU&lt;br /&gt;
* 2G DDR3 SDRAM&lt;br /&gt;
* 1x Mini PCIE interface&lt;br /&gt;
* 2x SATA interface&lt;br /&gt;
* 4x Gigabit LAN 1x Gigabit WAN&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
==BPI-R2 SATA interface==&lt;br /&gt;
BPI-R2 support 2 sata interface and onboard power port.&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-R2_SATA.jpg]]&lt;br /&gt;
&lt;br /&gt;
you can use sata line connect your hardisk on BPI-R2.&lt;br /&gt;
&lt;br /&gt;
*Test a SAMSUNG SSD DISK, the Read/Write performance are below:&lt;br /&gt;
&lt;br /&gt;
::Read from disk: 230MB/s \(command: dd if=/dev/sda of=/dev/zero bs=1M count=10240\)&lt;br /&gt;
&lt;br /&gt;
:: Write to disk: 192MB/s \(command: dd if=/dev/zero of=/dev/sda bs=1M count=1024 oflag=direct\)&lt;br /&gt;
&lt;br /&gt;
*Note:&lt;br /&gt;
&lt;br /&gt;
::if you use 3.5 big hardisk ,you may need power with outside power. on board power maybe can not support enough current&lt;br /&gt;
&lt;br /&gt;
='''Development'''=&lt;br /&gt;
Let's get start to develop on BPI-R2, see amazing things happen.&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 16G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on R2&lt;br /&gt;
&lt;br /&gt;
  [[Image:R2_debug_console.png|240px]]&lt;br /&gt;
&lt;br /&gt;
  * BananaPi R2 - Debug-UART ：http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:debug-uart&lt;br /&gt;
&lt;br /&gt;
===Load your first image on R2===&lt;br /&gt;
  1.You could download latest image from our forum&lt;br /&gt;
  * Here is the example image link: http://forum.banana-pi.org/t/bpi-r2-new-image-release-ubuntu-16-04-v1-3-2018-3-30/5293&lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into R2, and press power button for around 10s to setup R2&lt;br /&gt;
&lt;br /&gt;
====Update Your Ubuntu On SD Card====&lt;br /&gt;
  1. Clone Bsp project from Github&lt;br /&gt;
  * Execute &amp;quot;git clone git@github.com:BPI-SINOVOIP/BPI-R2-bsp.git&amp;quot; &lt;br /&gt;
  &lt;br /&gt;
  2. Execute &amp;quot;./build.sh&amp;quot;, to build your own uboot and kernel.&lt;br /&gt;
 [[Image:R2_build_sh.png]]&lt;br /&gt;
  &lt;br /&gt;
  3. After finish built, Execute &amp;quot;cd SD&amp;quot;, plug your Ubuntu TFcard in PC. &lt;br /&gt;
  &lt;br /&gt;
  4. Execute &amp;quot;bpi-update -c bpi-r2.conf -d /dev/sdX&amp;quot;, to update the compiled kernel to your TFcard.&lt;br /&gt;
&lt;br /&gt;
====Ubuntu On Emmc====&lt;br /&gt;
  1. If you want to install Ubuntu on EMMC, follow these steps：&lt;br /&gt;
  * Burn an image to sd card, and set up R64 with sd card.&lt;br /&gt;
  * Copy the image which name contains &amp;quot;xxx-emmc-xxx&amp;quot; to U disk.&lt;br /&gt;
  * mount U disk to R64, then use bpi-copy to burn image to Emmc.  &lt;br /&gt;
&lt;br /&gt;
    bpi-copy  &amp;lt;XXX.img.zip&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  * XXX.img.zip is ubuntu image we can get it from http://www.banana-pi.org/r2-download.html &lt;br /&gt;
  * power off&lt;br /&gt;
  * remove SD &amp;amp; power on&lt;br /&gt;
&lt;br /&gt;
====OpenWrt On SD &amp;amp; Emmc Steps====&lt;br /&gt;
  1. Clone OpenWrt project from Github.&lt;br /&gt;
  * Execute &amp;quot;git clone https://github.com/garywangcn/bpi-r2_lede.git&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  2. You need to have installed gcc, binutils, bzip2, flex, python, perl, make, find, grep, diff, unzip, gawk, getopt, subversion, libz-dev and libc headers.&lt;br /&gt;
  &lt;br /&gt;
  3. Run &amp;quot;./scripts/feeds update -a&amp;quot; to get all the latest package definitions defined in feeds.conf / feeds.conf.default respectively and &amp;quot;./scripts/feeds install -a&amp;quot; to install symlinks of all of them into package/feeds/.&lt;br /&gt;
  &lt;br /&gt;
  4. Use &amp;quot;make menuconfig&amp;quot; to configure your image.&lt;br /&gt;
  * Choose &amp;quot;Target System&amp;quot; to config as &amp;quot;MediaTek Ralink ARM&amp;quot;&lt;br /&gt;
  * Choose &amp;quot;Boot Loaders&amp;quot; to config as &amp;quot;u-boot-bpi_r2&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  5. Execute &amp;quot;make -j1 V=s&amp;quot; to build your own OpenWrt image.&lt;br /&gt;
  &lt;br /&gt;
  6. After built, we have two ways to install image.&lt;br /&gt;
  (1) Plug your TFcard in Ubuntu PC, and enter to &amp;quot;build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-mediatek_32/&amp;quot;, &lt;br /&gt;
      you will find two images:&lt;br /&gt;
      * mtk-bpi-r2-EMMC.img&lt;br /&gt;
      * mtk-bpi-r2-SD.img&lt;br /&gt;
  (2) Write image to TF card, execute &amp;quot;dd if=mtk-bpi-r2-SD.img of=/dev/sdX&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  (3) If you want to install image to EMMC, We need another system which is running on SD card to program EMMC image to EMMC, please follow below steps to do:&lt;br /&gt;
      * Copy EMMC image to a running system which is from SD card&lt;br /&gt;
      * Program EMMC image to User Data Area of EMMC: dd if=mtk-bpi-r2-EMMC.img of=/dev/mmcblk0 (assume /dev/mmcblk0 is for EMMC)&lt;br /&gt;
      * Unlock EMMC boot0 block: echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
      * Program preloader to EMMC boot0 block: dd if=mtk-bpi-r2-EMMC.img of=/dev/mmcblk0boot0 bs=1M count=1&lt;br /&gt;
      * Change the Partition configurion of EMMC is 48h: reboot the system which is running SD, and enter the U-boot command line, run command emmc pconf 48 (for this steps, we can change partition configuration in userspace by using mmc-utils,see more information in BPI-R2 OpenWrt(LEDE) Souce code : 2018-04-11)&lt;br /&gt;
      * Power off, remove SD card, and then power on R2 board&lt;br /&gt;
  &lt;br /&gt;
  7. This step is for upgrade, if you don't want to install image after you built, you could use runtime upgrade.&lt;br /&gt;
  * Copy &amp;quot;bin/targets/mediatek/32/lede-mediatek-32-bananapi,bpi-r2-sysupgrade.tar&amp;quot; to R2 board which is running OpenWrt system(no matter where(SD or EMMC) it boots from), and then run command &amp;quot;sysupgrade lede-mediatek-32-bananapi,bpi-r2-sysupgrade.tar&amp;quot; to update both kernel and rootfs.&lt;br /&gt;
&lt;br /&gt;
* 1,Banana Pi R2 install openWRT: https://www.cnblogs.com/topbin/p/8794152.html&lt;br /&gt;
* 2,Banana Pi R2 Openwrt Network port configuration analysis : https://www.cnblogs.com/topbin/p/9518279.html&lt;br /&gt;
* 3,Banana Pi R2 developing a simple router based on Openwrt : https://www.cnblogs.com/topbin/p/9519881.html&lt;br /&gt;
* 4,Banana Pi R2 Openwrt Luci : https://www.cnblogs.com/topbin/p/9519875.html&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration : http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 233&lt;br /&gt;
&lt;br /&gt;
[[Image:R2_gpio_base.png]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 255（22+233） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio255/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio255/value&lt;br /&gt;
&lt;br /&gt;
====PWM Control====&lt;br /&gt;
* echo x &amp;gt;/sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 200000 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/period &lt;br /&gt;
* echo 100000 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/duty_cycle                                                                     &lt;br /&gt;
* echo 1 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/enable&lt;br /&gt;
&lt;br /&gt;
More about GPIO : http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:gpio&lt;br /&gt;
&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi.GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
===Develop 4G module with R2===&lt;br /&gt;
Gets more info from here: &lt;br /&gt;
&lt;br /&gt;
[[Using 4G module with BananaPi]]&lt;br /&gt;
&lt;br /&gt;
===WiFi and Ap mode on R2 Ubuntu===&lt;br /&gt;
====STA====&lt;br /&gt;
* wmt_loader (ignore errors)&lt;br /&gt;
* stp_uart_launcher -p /etc/firmware &amp;amp;&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpasupplicant/wpa_supplicant.conf&lt;br /&gt;
 network={    &lt;br /&gt;
 ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
 psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
 priority=1 &lt;br /&gt;
 }&lt;br /&gt;
* wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
====AP mode====&lt;br /&gt;
* wmt_loader (ignore errors)&lt;br /&gt;
* stp_uart_launcher -p /etc/firmware &amp;amp;&lt;br /&gt;
* echo A &amp;gt;/dev/wmtWifi&lt;br /&gt;
* create your hostapd.conf: &amp;quot;vim /etc/hostapd/hostapd.conf &amp;quot;&lt;br /&gt;
&lt;br /&gt;
 interface=ap0&lt;br /&gt;
 bridge=br0&lt;br /&gt;
 ssid=test_r2&lt;br /&gt;
 driver=nl80211&lt;br /&gt;
 country_code=US&lt;br /&gt;
 hw_mode=b&lt;br /&gt;
 channel=1&lt;br /&gt;
 max_num_sta=5&lt;br /&gt;
 wpa=2       &lt;br /&gt;
 auth_algs=1 &lt;br /&gt;
 rsn_pairwise=CCMP&lt;br /&gt;
 wpa_key_mgmt=WPA-PSK&lt;br /&gt;
 wpa_passphrase=ledetest&lt;br /&gt;
 logger_stdout=-1&lt;br /&gt;
 logger_stdout_level=2&lt;br /&gt;
&lt;br /&gt;
* According to your network interface(can search internet) to config ap0:&lt;br /&gt;
  my network interface which can search internet is wan, and ip is 192.168.30.102, so I config ap0 as follows:&lt;br /&gt;
&lt;br /&gt;
“ifconfig ap0 192.168.30.188 netmask 255.255.255.0”&lt;br /&gt;
&lt;br /&gt;
* Run hostapd : “hostapd -d /etc/hostapd/hostapd.conf”&lt;br /&gt;
* Config dhcp file : “vim /etc/dhcp/dhcpd.conf”&lt;br /&gt;
&lt;br /&gt;
 subnet 192.168.30.0 netmask 255.255.255.0 {&lt;br /&gt;
 range 192.168.30.2 192.168.30.250;&lt;br /&gt;
 option domain-name-servers 8.8.8.8;&lt;br /&gt;
 option routers 192.168.30.1; }&lt;br /&gt;
&lt;br /&gt;
* Config dhcp of ap0, then the devices which connect ap0 could get IP: &amp;quot;dhcpd ap0 -pf /var/run/dhcpd.pid &amp;quot;&lt;br /&gt;
* And a bridge&lt;br /&gt;
* brctl addbr br0&lt;br /&gt;
* brctl addif br0 ap0&lt;br /&gt;
* brctl addif br wan&lt;br /&gt;
* Config br0 : “ifconfig br0 192.168.30.180 netmask 255.255.255.0”&lt;br /&gt;
* Add br0 gw as : “route add -net default netmask 255.255.255.0 gw 192.168.30.1 dev br0”&lt;br /&gt;
&lt;br /&gt;
====Ap Mode FAQ====&lt;br /&gt;
If you meet problem like this：&lt;br /&gt;
&lt;br /&gt;
[[Image:A64_ap_1.png]]&lt;br /&gt;
&lt;br /&gt;
Then, you could solve by following command： &lt;br /&gt;
* nmcli radio wifi off&lt;br /&gt;
[[Image:A64_ap_2.png]]&lt;br /&gt;
* rfkill unblock 1&lt;br /&gt;
* rfkill unblock 2&lt;br /&gt;
* ifconfig ap0 up&lt;br /&gt;
* hostapd -d  hostapd.conf&lt;br /&gt;
[[Image:A64_ap_3.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi and Ap mode on R2 Openwrt===&lt;br /&gt;
====AP mode====&lt;br /&gt;
1. Make a bash script&lt;br /&gt;
* vim setup.sh&lt;br /&gt;
 #!/bin/ash&lt;br /&gt;
 wmt_loader &amp;amp;&lt;br /&gt;
 sheep 3&lt;br /&gt;
 stp_uart_launcher -p /etc/firmware &amp;amp;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 echo A &amp;gt; /dev/wmtWifi &amp;amp;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 hostapd -d hostapd.conf&lt;br /&gt;
2. Create your hostapd.conf&lt;br /&gt;
* vim hostapd.conf&lt;br /&gt;
 interface=ap0&lt;br /&gt;
 bridge=br-lan&lt;br /&gt;
 ssid=BPI_R2&lt;br /&gt;
 driver=nl80211&lt;br /&gt;
 country_code=CN&lt;br /&gt;
 hw_mode=g&lt;br /&gt;
 channel=1&lt;br /&gt;
 max_num_sta=5&lt;br /&gt;
 wpa=2&lt;br /&gt;
 auth_algs=1&lt;br /&gt;
 rsn_pairwise=CCMP&lt;br /&gt;
 wpa_key_mgmt=WPA-PSK&lt;br /&gt;
 wpa_passphrase=ledetest&lt;br /&gt;
 logger_stdout=-1&lt;br /&gt;
 logger_stdout_level=2&lt;br /&gt;
&lt;br /&gt;
3. Make it run&lt;br /&gt;
* ./setup.sh&lt;br /&gt;
&lt;br /&gt;
4. Add it to starting progress&lt;br /&gt;
* vim /etc/rc.local&lt;br /&gt;
  cd /root/&lt;br /&gt;
  sleep 6&lt;br /&gt;
  ./setup.sh &amp;amp;&lt;br /&gt;
&lt;br /&gt;
5. If your Ap is not stable, please limit the speed, here I limit download speed as 8Mbit/s, upload as 4Mbit/s&lt;br /&gt;
* tc qdisc add dev ap0 root handle 1: htb default 11&lt;br /&gt;
* tc class add dev ap0 parent 1:1 classid 1:2 htb rate 8Mbit ceil 4Mbit prio 2&lt;br /&gt;
&lt;br /&gt;
===Make your own image===&lt;br /&gt;
* Prepare a SD card which have installed Ubuntu system&lt;br /&gt;
* Boot your SD card with R2, after R2 finish starting, copy your files and config your Ubuntu, then poweroff R2&lt;br /&gt;
* Plug your SD card in Linux PC, &amp;quot;cd /media&amp;quot;, then &amp;quot;ln -s &amp;lt;your account&amp;gt; pi&amp;quot;&lt;br /&gt;
* Execute &amp;quot;bpi-migrate -c bpi-r2.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx&amp;quot;&lt;br /&gt;
* Then you could get your own image now&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*1.Banana Pi BPI-R2 Razberry board OpenHab2 &lt;br /&gt;
::https://community.openhab.org/t/banana-pi-bpi-r2-razberry-board-openhab2-help/37222/8&lt;br /&gt;
&lt;br /&gt;
===TTL Voltage===&lt;br /&gt;
:: The debug-uart TTL is tolerant to 3.3V.&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:start&lt;br /&gt;
&lt;br /&gt;
http://www.banana-pi.org/r2.html&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13878</id>
		<title>Getting Started with BPI-R3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13878"/>
				<updated>2023-02-27T01:50:12Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* TTL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R3]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
[[File:Banana_pi_751.jpg]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R3 Router board with MediaTek MT7986(Filogic 830) quad core ARM A53 + MT7531A chip design ,2G DDR RAM ,8G eMMC flash onboard,It is a very high performance open source router development board,support Wi-Fi 6/6E 2.4G wifi use MT7975N and 5G wifi use MT7975P, support 2 SFP 2.5GbE  port, and 5 GbE network port.&lt;br /&gt;
&lt;br /&gt;
==MediaTek MT7986(Filogic 830)==&lt;br /&gt;
&lt;br /&gt;
The MT7986(Filogic 830) integrates four Arm Cortex-A53 cores up to 2GHz with up to 18,000 DMIPs of processing power and 6Gbps of dual 4x4 Wi-Fi 6/6E connectivity. It has two 2.5g Ethernet interfaces and serial peripheral interfaces (SPI). Filogic 830‘s built-in hardware acceleration engine enables fast and reliable Wi-Fi offloading and wireless network connection. In addition, the chip supports Mediatek FastPath™ technology, which is suitable for games, AR/VR and other low-latency applications. &lt;br /&gt;
&lt;br /&gt;
Wi-fi 6E has many advantages over its predecessors, including lower latency, larger bandwidth capacity and faster transmission rates. Wireless network devices supporting the 6GHz band mainly use 160MHz wide channel and 6GHz uncongested bandwidth to provide multigigabit transmission and low-latency wi-fi connection, providing reliable wireless network for streaming media, games, AR/VR and other applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
*. MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53+MT7531 chip design&lt;br /&gt;
*. Wifi 6/6E 4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P) &lt;br /&gt;
*. 2G DDR RAM&lt;br /&gt;
*. 8G eMMC flash&lt;br /&gt;
*. 2 SFP 2.5GbE&lt;br /&gt;
*. 5 GbE network port &lt;br /&gt;
*. POE support (optional)&lt;br /&gt;
*. Mini PCIe via USB&lt;br /&gt;
*. M.2 KEY-E PCIe inerface&lt;br /&gt;
*. Mciro SD card interface&lt;br /&gt;
*. 26 PIN GPIO&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on BPI-R3&lt;br /&gt;
&lt;br /&gt;
  [[Image:R3_debug_console.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
  * R3 bootstrap and device select Jumper Setting&lt;br /&gt;
  [[Image:BPI-R3-Jumper.png|320px]]&lt;br /&gt;
&lt;br /&gt;
   Note: SW1-A and SW1-B is for boot strap selecting;&lt;br /&gt;
         SW1-C is that SPI-Nand or SPI-Nor Device is connected to CPU's SPI bus;&lt;br /&gt;
         SW1-D is that SD Card or EMMC device is connected tp CPU's EMMC bus.&lt;br /&gt;
 &lt;br /&gt;
   * Examples:&lt;br /&gt;
     All Jumper is High.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
     All Jumper is Low.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-Low.png|320px]]&lt;br /&gt;
&lt;br /&gt;
===How to burn image to SD card===&lt;br /&gt;
  A. Note: burn image to SD card on linux computer&lt;br /&gt;
    1.You could download latest image from our forum&lt;br /&gt;
    * Here is the example image link: &lt;br /&gt;
  &lt;br /&gt;
    2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
    * apt-get install pv&lt;br /&gt;
    * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
    3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
    * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
    4.After step 3, then you can insert your TF card into R3, and press power button to setup R3&lt;br /&gt;
  B. Note: burn image to SD card on windows computer&lt;br /&gt;
    1. Download the tools from the website:   https://sourceforge.net/projects/win32diskimager/&lt;br /&gt;
    2. Install the tools into Windows computer.&lt;br /&gt;
    3. flash image into SD card.&lt;br /&gt;
  &lt;br /&gt;
 C. Change Boot Jumper to boot from SD, Enable SD Card Device.&lt;br /&gt;
    [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
====How to burn image to onboard eMMC====&lt;br /&gt;
  Note: because SD card and EMMC device share one SOC's interface, you need flash one SD image firstly, then R3 boot from SD card, then flash nand image into Nand, then change boot strap to boot from nand,  you need flash EMMC image into EMMC. Finally you change bootstrap to boot from EMMC.&lt;br /&gt;
&lt;br /&gt;
  Before burning image to eMMC, please prepare a SD card with flashed bootable image and a USB disk. Let's take OpenWrt image (mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img, mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) for example, the steps are below:&lt;br /&gt;
&lt;br /&gt;
  1. Insert the flashed SD card and power on to start the board.(the image &amp;quot;mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img&amp;quot; on the SD card can be OpenWrt or other linux OS like ubuntu...)&lt;br /&gt;
&lt;br /&gt;
  2. Copy Nand bootable and EMMC boot OpenWrt image(mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) to USB disk, if the image is compressed please uncompress it before copying to USB disk.&lt;br /&gt;
&lt;br /&gt;
  3. Plug in USB disk to the board, and mount the USB to /mnt or other directory as follows: (you can skip mounting if it is mounted automatically)&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt &lt;br /&gt;
     * change your directory to the mounting point, here is : cd /mnt&lt;br /&gt;
&lt;br /&gt;
  4. Execute following command to enable and copy image to nand flash:&lt;br /&gt;
     * mtd erase /dev/mtd0&lt;br /&gt;
     * dd if=mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin of=/dev/mtdblock0&lt;br /&gt;
&lt;br /&gt;
  5. Shutdown, remove SD card, and change bootstrap to boot from nand flash and change SD/EMMC switch jumper to EMMC, restart the board from Nand Flash.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from nand&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Flash-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
  6. repeat step 3, mount u-disk to /mnt, Execute following command to enable and copy image to EMMC device:&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt&lt;br /&gt;
     * echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
     * dd if=bl2_emmc.img of=/dev/mmcblk0boot0&lt;br /&gt;
     * dd if=mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img of=/dev/mmcblk0&lt;br /&gt;
     * mmc bootpart enable 1 1 /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  7. power off R3 board, remove u-disk driver, change bootstrap to boot from emmc device.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from EMMC.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Boot-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration refer to: http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
*Network Interface: eth1, lan0 is for WAN; lan4, rax0, lan2, lan5, ra0, lan3, lan1 is for LAN,  ra0 is for 2.4G wireless, rax0 is for 5G wireless.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3_network_interface.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# ifconfig&lt;br /&gt;
&lt;br /&gt;
br-lan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          inet6 addr: fd63:8bea:d5ce::1/60 Scope:Global&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
br-wan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8538 (8.3 KiB)&lt;br /&gt;
&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:4408 (4.3 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 4A:BB:84:B4:5D:3F&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8674 (8.4 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
lan0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan1      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan2      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan3      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan4      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan5      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:65536  Metric:1&lt;br /&gt;
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:4368 (4.2 KiB)  TX bytes:4368 (4.2 KiB)&lt;br /&gt;
&lt;br /&gt;
ra0       Link encap:Ethernet  HWaddr 00:0C:43:26:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:6&lt;br /&gt;
&lt;br /&gt;
rax0      Link encap:Ethernet  HWaddr 02:0C:43:36:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-wan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-wan          7fff.eea15781ca19       no              lan0, eth1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-lan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-lan          7fff.eea15781ca19       no              lan4, rax0, lan2, lan5, ra0, lan3, lan1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/#&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====26 Pins Definition====&lt;br /&gt;
&lt;br /&gt;
[[Image:R3_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 411&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-GPIO-Base.jpg]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 433（22+411） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio433/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio433/value&lt;br /&gt;
&lt;br /&gt;
===FAN===&lt;br /&gt;
&lt;br /&gt;
[[Image:FAN.png]]&lt;br /&gt;
&lt;br /&gt;
* R317 for 5V FAN and R318 for 12V FAN.&lt;br /&gt;
* CN23 supports PWM control while CN22 does not support.&lt;br /&gt;
&lt;br /&gt;
====PWM FAN Control====&lt;br /&gt;
* echo 0 &amp;gt; /sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 10000 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/period&lt;br /&gt;
* echo 5000 &amp;gt;  /sys/class/pwm/pwmchip0/pwm0/duty_cycle&lt;br /&gt;
* echo normal &amp;gt; /sys/class/pwm/pwmchip0/pwm0/polarity&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/enable&lt;br /&gt;
&lt;br /&gt;
===miniPCIe slot===&lt;br /&gt;
currently, miniPCIe slot only support one USB 4G module, example: EC25&lt;br /&gt;
when you insert one EC25 module, you may check it.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-miniPCIe-Slot-EC25.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SFP===&lt;br /&gt;
After high and low temperature test, the following modules are suppoted by BPI-R3:&lt;br /&gt;
&lt;br /&gt;
[[Image:SFP.png]]&lt;br /&gt;
&lt;br /&gt;
===4G&amp;amp;5G===&lt;br /&gt;
* BPI-R3 supports 4G LTE EC25.&lt;br /&gt;
* If you want to use 5G on BPI-R3:&lt;br /&gt;
    1. Insert 5G dongle into USB3.0.&lt;br /&gt;
    2. Connect RG200U-CN to mini PCIe, connect SoC through USB2.0(speed limited).&lt;br /&gt;
    3. Make an RG200U-CN LGA adapter board and insert it into M.2 KEY M.&lt;br /&gt;
Note: The availability of 4G/5G depends on the local carrier frequency band.&lt;br /&gt;
&lt;br /&gt;
===Ap mode on BPI-R3===&lt;br /&gt;
&lt;br /&gt;
* ra0  is MT7986a 2.4G wifi&lt;br /&gt;
* rax0 is MT7986a 5G wifi&lt;br /&gt;
&lt;br /&gt;
===Wifi &amp;amp; Serial cable===&lt;br /&gt;
* '''If the chip type of serial cable is pl2303, the driver fails to load the firmware apparently and thus the wifi can't work.'''&lt;br /&gt;
* '''Other types including cp2102,ch340 and FDTI are all available, serial cable vlotage must be 3.3v LVTTL standard.&lt;br /&gt;
'''&lt;br /&gt;
'''UART_TX0 is the Boot Strapping PIN and must be kept low during power-on.'''&lt;br /&gt;
&lt;br /&gt;
[[File:Strapping.png|720px]]&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*MT7986a Reference Manual for Develope Board(BPi)&lt;br /&gt;
::Google Drive：https://drive.google.com/file/d/1biSJmxnIpNzQroYDg9mtPtSTAv4i0DFf/view?usp=sharing&lt;br /&gt;
===TTL Voltage===&lt;br /&gt;
:: The debug-uart TTL is tolerant to 3.3V.&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13877</id>
		<title>Getting Started with BPI-R3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13877"/>
				<updated>2023-02-27T01:49:29Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R3]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
[[File:Banana_pi_751.jpg]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R3 Router board with MediaTek MT7986(Filogic 830) quad core ARM A53 + MT7531A chip design ,2G DDR RAM ,8G eMMC flash onboard,It is a very high performance open source router development board,support Wi-Fi 6/6E 2.4G wifi use MT7975N and 5G wifi use MT7975P, support 2 SFP 2.5GbE  port, and 5 GbE network port.&lt;br /&gt;
&lt;br /&gt;
==MediaTek MT7986(Filogic 830)==&lt;br /&gt;
&lt;br /&gt;
The MT7986(Filogic 830) integrates four Arm Cortex-A53 cores up to 2GHz with up to 18,000 DMIPs of processing power and 6Gbps of dual 4x4 Wi-Fi 6/6E connectivity. It has two 2.5g Ethernet interfaces and serial peripheral interfaces (SPI). Filogic 830‘s built-in hardware acceleration engine enables fast and reliable Wi-Fi offloading and wireless network connection. In addition, the chip supports Mediatek FastPath™ technology, which is suitable for games, AR/VR and other low-latency applications. &lt;br /&gt;
&lt;br /&gt;
Wi-fi 6E has many advantages over its predecessors, including lower latency, larger bandwidth capacity and faster transmission rates. Wireless network devices supporting the 6GHz band mainly use 160MHz wide channel and 6GHz uncongested bandwidth to provide multigigabit transmission and low-latency wi-fi connection, providing reliable wireless network for streaming media, games, AR/VR and other applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
*. MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53+MT7531 chip design&lt;br /&gt;
*. Wifi 6/6E 4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P) &lt;br /&gt;
*. 2G DDR RAM&lt;br /&gt;
*. 8G eMMC flash&lt;br /&gt;
*. 2 SFP 2.5GbE&lt;br /&gt;
*. 5 GbE network port &lt;br /&gt;
*. POE support (optional)&lt;br /&gt;
*. Mini PCIe via USB&lt;br /&gt;
*. M.2 KEY-E PCIe inerface&lt;br /&gt;
*. Mciro SD card interface&lt;br /&gt;
*. 26 PIN GPIO&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on BPI-R3&lt;br /&gt;
&lt;br /&gt;
  [[Image:R3_debug_console.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
  * R3 bootstrap and device select Jumper Setting&lt;br /&gt;
  [[Image:BPI-R3-Jumper.png|320px]]&lt;br /&gt;
&lt;br /&gt;
   Note: SW1-A and SW1-B is for boot strap selecting;&lt;br /&gt;
         SW1-C is that SPI-Nand or SPI-Nor Device is connected to CPU's SPI bus;&lt;br /&gt;
         SW1-D is that SD Card or EMMC device is connected tp CPU's EMMC bus.&lt;br /&gt;
 &lt;br /&gt;
   * Examples:&lt;br /&gt;
     All Jumper is High.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
     All Jumper is Low.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-Low.png|320px]]&lt;br /&gt;
&lt;br /&gt;
===How to burn image to SD card===&lt;br /&gt;
  A. Note: burn image to SD card on linux computer&lt;br /&gt;
    1.You could download latest image from our forum&lt;br /&gt;
    * Here is the example image link: &lt;br /&gt;
  &lt;br /&gt;
    2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
    * apt-get install pv&lt;br /&gt;
    * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
    3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
    * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
    4.After step 3, then you can insert your TF card into R3, and press power button to setup R3&lt;br /&gt;
  B. Note: burn image to SD card on windows computer&lt;br /&gt;
    1. Download the tools from the website:   https://sourceforge.net/projects/win32diskimager/&lt;br /&gt;
    2. Install the tools into Windows computer.&lt;br /&gt;
    3. flash image into SD card.&lt;br /&gt;
  &lt;br /&gt;
 C. Change Boot Jumper to boot from SD, Enable SD Card Device.&lt;br /&gt;
    [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
====How to burn image to onboard eMMC====&lt;br /&gt;
  Note: because SD card and EMMC device share one SOC's interface, you need flash one SD image firstly, then R3 boot from SD card, then flash nand image into Nand, then change boot strap to boot from nand,  you need flash EMMC image into EMMC. Finally you change bootstrap to boot from EMMC.&lt;br /&gt;
&lt;br /&gt;
  Before burning image to eMMC, please prepare a SD card with flashed bootable image and a USB disk. Let's take OpenWrt image (mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img, mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) for example, the steps are below:&lt;br /&gt;
&lt;br /&gt;
  1. Insert the flashed SD card and power on to start the board.(the image &amp;quot;mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img&amp;quot; on the SD card can be OpenWrt or other linux OS like ubuntu...)&lt;br /&gt;
&lt;br /&gt;
  2. Copy Nand bootable and EMMC boot OpenWrt image(mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) to USB disk, if the image is compressed please uncompress it before copying to USB disk.&lt;br /&gt;
&lt;br /&gt;
  3. Plug in USB disk to the board, and mount the USB to /mnt or other directory as follows: (you can skip mounting if it is mounted automatically)&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt &lt;br /&gt;
     * change your directory to the mounting point, here is : cd /mnt&lt;br /&gt;
&lt;br /&gt;
  4. Execute following command to enable and copy image to nand flash:&lt;br /&gt;
     * mtd erase /dev/mtd0&lt;br /&gt;
     * dd if=mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin of=/dev/mtdblock0&lt;br /&gt;
&lt;br /&gt;
  5. Shutdown, remove SD card, and change bootstrap to boot from nand flash and change SD/EMMC switch jumper to EMMC, restart the board from Nand Flash.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from nand&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Flash-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
  6. repeat step 3, mount u-disk to /mnt, Execute following command to enable and copy image to EMMC device:&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt&lt;br /&gt;
     * echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
     * dd if=bl2_emmc.img of=/dev/mmcblk0boot0&lt;br /&gt;
     * dd if=mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img of=/dev/mmcblk0&lt;br /&gt;
     * mmc bootpart enable 1 1 /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  7. power off R3 board, remove u-disk driver, change bootstrap to boot from emmc device.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from EMMC.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Boot-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration refer to: http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
*Network Interface: eth1, lan0 is for WAN; lan4, rax0, lan2, lan5, ra0, lan3, lan1 is for LAN,  ra0 is for 2.4G wireless, rax0 is for 5G wireless.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3_network_interface.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# ifconfig&lt;br /&gt;
&lt;br /&gt;
br-lan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          inet6 addr: fd63:8bea:d5ce::1/60 Scope:Global&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
br-wan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8538 (8.3 KiB)&lt;br /&gt;
&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:4408 (4.3 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 4A:BB:84:B4:5D:3F&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8674 (8.4 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
lan0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan1      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan2      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan3      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan4      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan5      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:65536  Metric:1&lt;br /&gt;
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:4368 (4.2 KiB)  TX bytes:4368 (4.2 KiB)&lt;br /&gt;
&lt;br /&gt;
ra0       Link encap:Ethernet  HWaddr 00:0C:43:26:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:6&lt;br /&gt;
&lt;br /&gt;
rax0      Link encap:Ethernet  HWaddr 02:0C:43:36:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-wan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-wan          7fff.eea15781ca19       no              lan0, eth1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-lan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-lan          7fff.eea15781ca19       no              lan4, rax0, lan2, lan5, ra0, lan3, lan1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/#&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====26 Pins Definition====&lt;br /&gt;
&lt;br /&gt;
[[Image:R3_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 411&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-GPIO-Base.jpg]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 433（22+411） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio433/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio433/value&lt;br /&gt;
&lt;br /&gt;
===FAN===&lt;br /&gt;
&lt;br /&gt;
[[Image:FAN.png]]&lt;br /&gt;
&lt;br /&gt;
* R317 for 5V FAN and R318 for 12V FAN.&lt;br /&gt;
* CN23 supports PWM control while CN22 does not support.&lt;br /&gt;
&lt;br /&gt;
====PWM FAN Control====&lt;br /&gt;
* echo 0 &amp;gt; /sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 10000 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/period&lt;br /&gt;
* echo 5000 &amp;gt;  /sys/class/pwm/pwmchip0/pwm0/duty_cycle&lt;br /&gt;
* echo normal &amp;gt; /sys/class/pwm/pwmchip0/pwm0/polarity&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/enable&lt;br /&gt;
&lt;br /&gt;
===miniPCIe slot===&lt;br /&gt;
currently, miniPCIe slot only support one USB 4G module, example: EC25&lt;br /&gt;
when you insert one EC25 module, you may check it.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-miniPCIe-Slot-EC25.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SFP===&lt;br /&gt;
After high and low temperature test, the following modules are suppoted by BPI-R3:&lt;br /&gt;
&lt;br /&gt;
[[Image:SFP.png]]&lt;br /&gt;
&lt;br /&gt;
===4G&amp;amp;5G===&lt;br /&gt;
* BPI-R3 supports 4G LTE EC25.&lt;br /&gt;
* If you want to use 5G on BPI-R3:&lt;br /&gt;
    1. Insert 5G dongle into USB3.0.&lt;br /&gt;
    2. Connect RG200U-CN to mini PCIe, connect SoC through USB2.0(speed limited).&lt;br /&gt;
    3. Make an RG200U-CN LGA adapter board and insert it into M.2 KEY M.&lt;br /&gt;
Note: The availability of 4G/5G depends on the local carrier frequency band.&lt;br /&gt;
&lt;br /&gt;
===Ap mode on BPI-R3===&lt;br /&gt;
&lt;br /&gt;
* ra0  is MT7986a 2.4G wifi&lt;br /&gt;
* rax0 is MT7986a 5G wifi&lt;br /&gt;
&lt;br /&gt;
===Wifi &amp;amp; Serial cable===&lt;br /&gt;
* '''If the chip type of serial cable is pl2303, the driver fails to load the firmware apparently and thus the wifi can't work.'''&lt;br /&gt;
* '''Other types including cp2102,ch340 and FDTI are all available, serial cable vlotage must be 3.3v LVTTL standard.&lt;br /&gt;
'''&lt;br /&gt;
'''UART_TX0 is the Boot Strapping PIN and must be kept low during power-on.'''&lt;br /&gt;
&lt;br /&gt;
[[File:Strapping.png|720px]]&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*MT7986a Reference Manual for Develope Board(BPi)&lt;br /&gt;
::Google Drive：https://drive.google.com/file/d/1biSJmxnIpNzQroYDg9mtPtSTAv4i0DFf/view?usp=sharing&lt;br /&gt;
===TTL===&lt;br /&gt;
:: The debug-uart TTL is tolerant to 3.3V.&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_R64&amp;diff=13807</id>
		<title>Getting Started with R64</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_R64&amp;diff=13807"/>
				<updated>2023-02-20T09:48:36Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* How to burn image to onboard eMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R64]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-R64_1.jpg|thumb|Overview：[[Banana Pi BPI-R64]]]]&lt;br /&gt;
[[File:BPI-R64_case_1.jpg|thumb|[[Banana Pi BPI-R64]] Metal Jacket]]&lt;br /&gt;
[[File:BPI-R64_PoE.JPG|thumb|BPI-R64 with BPI-7402 POE function support]]&lt;br /&gt;
[[File:BPI-7402_IEEE_802.3at_PoE_module_1.jpg|thumb|[[BPI-7402 IEEE 802.3at PoE module]]]]&lt;br /&gt;
[[File:5G_gateway_2.jpg|thumb|BPI:4.0 [[Successful case]] 5G Converged communication gateway]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[Banana Pi BPI-R1]] Allwinner A20]]&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[Banana Pi BPI-R2]] with MTK MT7623N chip design]]&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:O2A0500.jpg|thumb|[[Banana Pi BPI-W2]] with Realtek RTD1296 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-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D chip]]&lt;br /&gt;
   The Banana Pi R64 is a router based development board, which can run on a variety of open source operating systems including OpenWrt,Linux. It has 4 Gigabit LAN ports, 1 Gigabit WAN, and AC wifi AP function. use 64 bit chip design.&lt;br /&gt;
Read more: [[Banana Pi BPI-R64]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* MediaTek MT7622,1.35GHZ 64 bit dual-core ARM Cortex-A53&lt;br /&gt;
* 1G DDR3 SDRAM&lt;br /&gt;
* Mini PCIE interface support 4G module&lt;br /&gt;
* Built-in 4x4n 802.11n/Bluetooth 5.0 system-on-chip&lt;br /&gt;
* MTK7615 4x4ac wifi on board&lt;br /&gt;
* Support 1 SATA interface&lt;br /&gt;
* MicroSD slot supports up to 256GB expansion&lt;br /&gt;
* 8G eMMC flash (option 16/32/64G)&lt;br /&gt;
* 5 port 10/100/1000 Mb Ethernet port&lt;br /&gt;
* 1 Port USB 3.0&lt;br /&gt;
* Slow I/O:ADC, Audio Amplifier, GPIO, I2C, I2S, IR, PMIC I/F, PWM, RTC, SPI, UART&lt;br /&gt;
* POE function support&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on R64&lt;br /&gt;
&lt;br /&gt;
  [[Image:R64_debug_console.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
===How to burn image to SD card===&lt;br /&gt;
  1.You could download latest image from our forum&lt;br /&gt;
  * Here is the example image link: &lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into R64, and press power button to setup R64&lt;br /&gt;
&lt;br /&gt;
====How to burn image to onboard eMMC====&lt;br /&gt;
  Before burning image to eMMC, please prepare a SD card with flashed bootable image and a USB disk. Let's take OpenWrt image (mtk-bpi-r64-preloader-emmc.bin,2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img) for example, the steps are below:&lt;br /&gt;
  Note: You can download the .bin file from github: https://github.com/BPI-SINOVOIP/BPI-R64-openwrt/tree/master/staging_dir/target-aarch64_cortex-a53_musl/image&lt;br /&gt;
&lt;br /&gt;
  1. Insert the flashed SD card and power on to start the board.(the image on the SD card can be OpenWrt or other linux OS like ubuntu...)&lt;br /&gt;
&lt;br /&gt;
  2. Copy eMMC bootable OpenWrt image(mtk-bpi-r64-preloader-emmc.bin,2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img) to USB disk, if the image is compressed please uncompress it before copying to USB disk.&lt;br /&gt;
&lt;br /&gt;
  3. Plug in USB disk to the board, and mount the USB to /mnt or other directory as follows: (you can skip mounting if it is mounted automatically)&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt &lt;br /&gt;
     * change your directory to the mounting point, here is : cd /mnt&lt;br /&gt;
&lt;br /&gt;
  4. Execute following command to enable and copy image to eMMC:&lt;br /&gt;
     * echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
     * dd if=2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img of=/dev/mmcblk0&lt;br /&gt;
     * dd if=mtk-bpi-r64-preloader-emmc.bin of=/dev/mmcblk0boot0&lt;br /&gt;
     * mmc bootpart enable 1 1   /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  5. Shutdown, remove SD card and USB disk, and restart the board from eMMC.&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration : http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====40 Pins Definition====&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 409&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_gpio_base.jpg]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 431（22+409） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio431/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio431/value&lt;br /&gt;
&lt;br /&gt;
====PWM Control====&lt;br /&gt;
* echo x &amp;gt;/sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 200000 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/period &lt;br /&gt;
* echo 100000 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/duty_cycle                                                                     &lt;br /&gt;
* echo 1 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/enable&lt;br /&gt;
&lt;br /&gt;
====SPI touch panel====&lt;br /&gt;
SPI Panel module:&lt;br /&gt;
&lt;br /&gt;
2.4&amp;quot; Touch Screen TFT LCD with SPI Interface, 240x320 (ILI9341 + ADS7843/XPT2046/HR2046)&lt;br /&gt;
&lt;br /&gt;
SPI Panel &amp;lt;–&amp;gt; BPIR64&lt;br /&gt;
&lt;br /&gt;
 T_DO, T_DIN, T_CLK &amp;lt;–&amp;gt; SPIC_0: MOSI / MISO / CLK&lt;br /&gt;
 T_CS &amp;lt;–&amp;gt; SPI-CE0&lt;br /&gt;
 T_IRQ &amp;lt;–&amp;gt; IO-37&lt;br /&gt;
 SDO, SCK, SDI &amp;lt;–&amp;gt; SPIC_1: MOSI / MISO / CLK&lt;br /&gt;
 LED &amp;lt;–&amp;gt; PIN-31&lt;br /&gt;
 DC &amp;lt;–&amp;gt; PIN-11&lt;br /&gt;
 RESET &amp;lt;–&amp;gt; PIN-13&lt;br /&gt;
 CS &amp;lt;–&amp;gt; SPI-CE1&lt;br /&gt;
 GND &amp;lt;–&amp;gt; GND-9&lt;br /&gt;
 VCC &amp;lt;–&amp;gt; 3.3V-1&lt;br /&gt;
&lt;br /&gt;
DTS Modification:&lt;br /&gt;
&lt;br /&gt;
 / {&lt;br /&gt;
        backlight: backlight {&lt;br /&gt;
                compatible = &amp;quot;gpio-backlight&amp;quot;;&lt;br /&gt;
                gpios = &amp;lt;&amp;amp;pio 82 GPIO_ACTIVE_HIGH&amp;gt;;        //PIN31 IO-31 : GPIO82&lt;br /&gt;
                default-on;&lt;br /&gt;
        };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;pio {&lt;br /&gt;
        spic0_pins: spic0-pins {&lt;br /&gt;
                mux {&lt;br /&gt;
                        function = &amp;quot;spi&amp;quot;;&lt;br /&gt;
                        groups = &amp;quot;spic0_0&amp;quot;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
 &lt;br /&gt;
        spic1_pins: spic1-pins {&lt;br /&gt;
                mux {&lt;br /&gt;
                        function = &amp;quot;spi&amp;quot;;&lt;br /&gt;
                        groups = &amp;quot;spic1_0&amp;quot;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;spi0 {&lt;br /&gt;
        pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
        pinctrl-0 = &amp;lt;&amp;amp;spic0_pins&amp;gt;;&lt;br /&gt;
        status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
        touch@0 {&lt;br /&gt;
                reg = &amp;lt;0&amp;gt;;                                 //CE0&lt;br /&gt;
                compatible = &amp;quot;ti,ads7843&amp;quot;;&lt;br /&gt;
                interrupt-parent = &amp;lt;&amp;amp;pio&amp;gt;;&lt;br /&gt;
                interrupts = &amp;lt;86 0&amp;gt;;                       //PIN37: IO-37 == GPIO86&lt;br /&gt;
                pendown-gpio = &amp;lt;&amp;amp;pio 86 0&amp;gt;;&lt;br /&gt;
                spi-max-frequency = &amp;lt;1000000&amp;gt;;&lt;br /&gt;
                vcc-supply = &amp;lt;&amp;amp;reg_3p3v&amp;gt;;&lt;br /&gt;
                wakeup-source;&lt;br /&gt;
        };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;spi1 {&lt;br /&gt;
        pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
        pinctrl-0 = &amp;lt;&amp;amp;spic1_pins&amp;gt;;&lt;br /&gt;
        status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
        display@0{&lt;br /&gt;
                compatible = &amp;quot;ilitek,ili9341&amp;quot;;&lt;br /&gt;
                reg = &amp;lt;0&amp;gt;;                                 //CE0&lt;br /&gt;
                spi-max-frequency = &amp;lt;32000000&amp;gt;;&lt;br /&gt;
                dc-gpios = &amp;lt;&amp;amp;pio 51 GPIO_ACTIVE_HIGH&amp;gt;;     //PIN11 UART1-TXD : GPIO51&lt;br /&gt;
                reset-gpios = &amp;lt;&amp;amp;pio 52 GPIO_ACTIVE_HIGH&amp;gt;;  //PIN13 UART1-RXD : GPIO52&lt;br /&gt;
                backlight = &amp;lt;&amp;amp;backlight&amp;gt;;&lt;br /&gt;
        };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Kernel config:&lt;br /&gt;
&lt;br /&gt;
 +CONFIG_FB_TFT_ILI9341&lt;br /&gt;
 +CONFIG_FB_TFT&lt;br /&gt;
 +CONFIG_FB&lt;br /&gt;
 +CONFIG_BACKLIGHT_LCD_SUPPORT&lt;br /&gt;
 +CONFIG_BACKLIGHT_CLASS_DEVICE&lt;br /&gt;
 +CONFIG_BACKLIGHT_GPIO&lt;br /&gt;
 +CONFIG_INPUT&lt;br /&gt;
 +CONFIG_INPUT_TOUCHSCREEN&lt;br /&gt;
 +CONFIG_TOUCHSCREEN_ADS7846&lt;br /&gt;
&lt;br /&gt;
Application:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Package  ||+ Description  || Source   &lt;br /&gt;
|-&lt;br /&gt;
|  fbv ||  framebuffer image viewer  ||  https://github.com/godspeed1989/fbv &lt;br /&gt;
|-&lt;br /&gt;
| input-event-daemon  ||  input-event-daemon with touchTEST event ||  https://github.com/SAM33/input-event-daemon &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
input-event-daemon config that show image by touch area:  &lt;br /&gt;
(I don't know why are the coordinates so strange, but the result of my actual touch and &lt;br /&gt;
print out that it is like this)&lt;br /&gt;
&lt;br /&gt;
 [Global]&lt;br /&gt;
 listen = /dev/input/event0&lt;br /&gt;
 listen = /dev/input/event1&lt;br /&gt;
 [TouchTEST]&lt;br /&gt;
 340,400,3440,1860 = cat /dev/zero &amp;gt; /dev/fb0; fbv -f /root/bpi_608x429.jpg -s 1&lt;br /&gt;
 340,2260,3440,1860 = cat /dev/zero &amp;gt; /dev/fb0; fbv -f /root/openwrt_449x449.png -s 1&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R64 SPI touch panel test: https://www.youtube.com/watch?v=ikag-D_TI0g&amp;amp;feature=youtu.be&lt;br /&gt;
&lt;br /&gt;
===Sata===&lt;br /&gt;
* '''If you want to use Sata interface on R64, you need to give GPIO90 low level'''&lt;br /&gt;
** echo 499 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
** echo out &amp;gt; /sys/class/gpio/gpio499/direction&lt;br /&gt;
** echo 0 &amp;gt; /sys/class/gpio/gpio499/value&lt;br /&gt;
&lt;br /&gt;
*Test a TOSHIBA HDD DISK, the Read/Write performance are below:&lt;br /&gt;
&lt;br /&gt;
::Read from disk: 50MB/s command: dd if=/dev/sda of=/dev/null bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
::Write to disk: 38MB/s  command: dd if=/dev/zero of=/dev/sda bs=1M count=1024&lt;br /&gt;
[[Image:R64_hdd_sata_test.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Test a SAMSUNG SSD DISK, the Read/Write performance are below:&lt;br /&gt;
&lt;br /&gt;
::Read from disk: 360MB/s command: dd if=/dev/sda of=/dev/null bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
::Write to disk:  200MB/s command: dd if=/dev/zero of=/dev/sda bs=1M count=1024&lt;br /&gt;
[[Image:R64_ssd_sata_test.jpg]]&lt;br /&gt;
&lt;br /&gt;
===PCIe===&lt;br /&gt;
* '''If you want to use PCIe interface on R64, you need to give GPIO90 high level'''&lt;br /&gt;
** echo 499 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
** echo out &amp;gt; /sys/class/gpio/gpio499/direction&lt;br /&gt;
** echo 1 &amp;gt; /sys/class/gpio/gpio499/value&lt;br /&gt;
&lt;br /&gt;
* PCIe supports EC-25 4G module.&lt;br /&gt;
[[Image:R64_pcie_test_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_pcie_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
1. On PC Terminal:&lt;br /&gt;
* Execute &amp;quot;iperf3 -s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. On R64 console:&lt;br /&gt;
* TCP test: &amp;quot;iperf3 -c serverIP&amp;quot;&lt;br /&gt;
* UDP test: &amp;quot;iperf3 -u -c serverIP&amp;quot;&lt;br /&gt;
[[Image:R64_Gmac_test.jpg]]&lt;br /&gt;
&lt;br /&gt;
===BT &amp;amp; BLE on R64===&lt;br /&gt;
'''R64 BT Architectural'''&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_BT_Arch.jpg]]&lt;br /&gt;
&lt;br /&gt;
* BLE on R64&lt;br /&gt;
* Input Command &amp;quot;btmw-test&amp;quot;, you will enter to &amp;quot;btmw_test_cli&amp;quot; command line&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_BT_cli.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Here are some example commands：&lt;br /&gt;
** MW_GAP name 7622_BT /*rename bt device*/&lt;br /&gt;
** MW_GAP info         /*check local BT device info*/&lt;br /&gt;
** MW_GATTC scan       /* start ble scan*/&lt;br /&gt;
** MW_GATTC stop_scan  /* stop ble scan*/&lt;br /&gt;
&lt;br /&gt;
===R64 LAN Function===&lt;br /&gt;
* LAN eth interface is eth2, use &amp;quot;ifconfig eth2 up&amp;quot; to enable it.&lt;br /&gt;
* Config the ip, &amp;quot;ifconfig eth2 192.168.1.1&amp;quot;.&lt;br /&gt;
  [[Image:R64_Lan_test_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Config your dhcp server, &amp;quot;vim /etc/dhcp/dhcpd.conf&amp;quot;, add these configurations.&lt;br /&gt;
  [[Image:R64_Lan_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Start dhcp server, &amp;quot;dhcpd eth2&amp;quot;.&lt;br /&gt;
  [[Image:R64_Lan_test_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
* then config iptables and set package forward.&lt;br /&gt;
** Add &amp;quot;net.ipv4.ip_forward=1&amp;quot; to &amp;quot;/etc/sysctl.conf&amp;quot; &lt;br /&gt;
** &amp;quot;/sbin/sysctl -p&amp;quot; to make forward work&lt;br /&gt;
** &amp;quot;iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Ap mode on R64===&lt;br /&gt;
* Find &amp;quot;mt_wifi.ko&amp;quot; and insmod it.&lt;br /&gt;
** insmod ./lib/modules/4.4.92-BPI-R64-Kernel/extra/mt_wifi.ko&lt;br /&gt;
&lt;br /&gt;
* Then you will see ra0 and rai0.&lt;br /&gt;
  [[Image:R64_wifi_test_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
* ra0 is MT7622 2.4G wifi&lt;br /&gt;
* rai0 is MT7615 5G wifi&lt;br /&gt;
&lt;br /&gt;
====2.4G WiFi====&lt;br /&gt;
* Use &amp;quot;ifconfig ra0 up&amp;quot; to enable it.&lt;br /&gt;
* Config the ip, &amp;quot;ifconfig ra0 192.168.1.1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Config your dhcp server, &amp;quot;vim /etc/dhcp/dhcpd.conf&amp;quot;, add these configurations.&lt;br /&gt;
  [[Image:R64_Lan_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Start dhcp server, &amp;quot;dhcpd ra0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* then config iptables and set package forward.&lt;br /&gt;
** Add &amp;quot;net.ipv4.ip_forward=1&amp;quot; to &amp;quot;/etc/sysctl.conf&amp;quot; &lt;br /&gt;
** &amp;quot;/sbin/sysctl -p&amp;quot; to make forward work&lt;br /&gt;
** &amp;quot;iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====5G WiFi====&lt;br /&gt;
* Use &amp;quot;ifconfig rai0 up&amp;quot; to enable it.&lt;br /&gt;
* Config the ip, &amp;quot;ifconfig rai0 192.168.1.1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Config your dhcp server, &amp;quot;vim /etc/dhcp/dhcpd.conf&amp;quot;, add these configurations.&lt;br /&gt;
  [[Image:R64_Lan_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Start dhcp server, &amp;quot;dhcpd rai0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* then config iptables and set package forward.&lt;br /&gt;
** Add &amp;quot;net.ipv4.ip_forward=1&amp;quot; to &amp;quot;/etc/sysctl.conf&amp;quot; &lt;br /&gt;
** &amp;quot;/sbin/sysctl -p&amp;quot; to make forward work&lt;br /&gt;
** &amp;quot;iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*MT7622 Reference Manual for Develope Board(BPi)&lt;br /&gt;
::Google Drive：https://drive.google.com/open?id=1UhaIM9ork1O9cNO-t6ENMVVamB75AThV&lt;br /&gt;
::BaiDu  Drive：https://pan.baidu.com/s/1KduFT2MUvMs2FhOF4A8kQQ&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_R64&amp;diff=13806</id>
		<title>Getting Started with R64</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_R64&amp;diff=13806"/>
				<updated>2023-02-20T09:45:48Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* How to burn image to onboard eMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R64]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-R64_1.jpg|thumb|Overview：[[Banana Pi BPI-R64]]]]&lt;br /&gt;
[[File:BPI-R64_case_1.jpg|thumb|[[Banana Pi BPI-R64]] Metal Jacket]]&lt;br /&gt;
[[File:BPI-R64_PoE.JPG|thumb|BPI-R64 with BPI-7402 POE function support]]&lt;br /&gt;
[[File:BPI-7402_IEEE_802.3at_PoE_module_1.jpg|thumb|[[BPI-7402 IEEE 802.3at PoE module]]]]&lt;br /&gt;
[[File:5G_gateway_2.jpg|thumb|BPI:4.0 [[Successful case]] 5G Converged communication gateway]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[Banana Pi BPI-R1]] Allwinner A20]]&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[Banana Pi BPI-R2]] with MTK MT7623N chip design]]&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:O2A0500.jpg|thumb|[[Banana Pi BPI-W2]] with Realtek RTD1296 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-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D chip]]&lt;br /&gt;
   The Banana Pi R64 is a router based development board, which can run on a variety of open source operating systems including OpenWrt,Linux. It has 4 Gigabit LAN ports, 1 Gigabit WAN, and AC wifi AP function. use 64 bit chip design.&lt;br /&gt;
Read more: [[Banana Pi BPI-R64]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* MediaTek MT7622,1.35GHZ 64 bit dual-core ARM Cortex-A53&lt;br /&gt;
* 1G DDR3 SDRAM&lt;br /&gt;
* Mini PCIE interface support 4G module&lt;br /&gt;
* Built-in 4x4n 802.11n/Bluetooth 5.0 system-on-chip&lt;br /&gt;
* MTK7615 4x4ac wifi on board&lt;br /&gt;
* Support 1 SATA interface&lt;br /&gt;
* MicroSD slot supports up to 256GB expansion&lt;br /&gt;
* 8G eMMC flash (option 16/32/64G)&lt;br /&gt;
* 5 port 10/100/1000 Mb Ethernet port&lt;br /&gt;
* 1 Port USB 3.0&lt;br /&gt;
* Slow I/O:ADC, Audio Amplifier, GPIO, I2C, I2S, IR, PMIC I/F, PWM, RTC, SPI, UART&lt;br /&gt;
* POE function support&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on R64&lt;br /&gt;
&lt;br /&gt;
  [[Image:R64_debug_console.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
===How to burn image to SD card===&lt;br /&gt;
  1.You could download latest image from our forum&lt;br /&gt;
  * Here is the example image link: &lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into R64, and press power button to setup R64&lt;br /&gt;
&lt;br /&gt;
====How to burn image to onboard eMMC====&lt;br /&gt;
  Before burning image to eMMC, please prepare a SD card with flashed bootable image and a USB disk. Let's take OpenWrt image (mtk-bpi-r64-preloader-emmc.bin,2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img) for example, the steps are below:&lt;br /&gt;
&lt;br /&gt;
  1. Insert the flashed SD card and power on to start the board.(the image on the SD card can be OpenWrt or other linux OS like ubuntu...)&lt;br /&gt;
&lt;br /&gt;
  2. Copy eMMC bootable OpenWrt image(mtk-bpi-r64-preloader-emmc.bin,2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img) to USB disk, if the image is compressed please uncompress it before copying to USB disk.&lt;br /&gt;
     You can download the .bin file from github: https://github.com/BPI-SINOVOIP/BPI-R64-openwrt/tree/master/staging_dir/target-aarch64_cortex-a53_musl/image&lt;br /&gt;
&lt;br /&gt;
  3. Plug in USB disk to the board, and mount the USB to /mnt or other directory as follows: (you can skip mounting if it is mounted automatically)&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt &lt;br /&gt;
     * change your directory to the mounting point, here is : cd /mnt&lt;br /&gt;
&lt;br /&gt;
  4. Execute following command to enable and copy image to eMMC:&lt;br /&gt;
     * echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
     * dd if=2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img of=/dev/mmcblk0&lt;br /&gt;
     * dd if=mtk-bpi-r64-preloader-emmc.bin of=/dev/mmcblk0boot0&lt;br /&gt;
     * mmc bootpart enable 1 1   /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  5. Shutdown, remove SD card and USB disk, and restart the board from eMMC.&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration : http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====40 Pins Definition====&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 409&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_gpio_base.jpg]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 431（22+409） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio431/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio431/value&lt;br /&gt;
&lt;br /&gt;
====PWM Control====&lt;br /&gt;
* echo x &amp;gt;/sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 200000 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/period &lt;br /&gt;
* echo 100000 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/duty_cycle                                                                     &lt;br /&gt;
* echo 1 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/enable&lt;br /&gt;
&lt;br /&gt;
====SPI touch panel====&lt;br /&gt;
SPI Panel module:&lt;br /&gt;
&lt;br /&gt;
2.4&amp;quot; Touch Screen TFT LCD with SPI Interface, 240x320 (ILI9341 + ADS7843/XPT2046/HR2046)&lt;br /&gt;
&lt;br /&gt;
SPI Panel &amp;lt;–&amp;gt; BPIR64&lt;br /&gt;
&lt;br /&gt;
 T_DO, T_DIN, T_CLK &amp;lt;–&amp;gt; SPIC_0: MOSI / MISO / CLK&lt;br /&gt;
 T_CS &amp;lt;–&amp;gt; SPI-CE0&lt;br /&gt;
 T_IRQ &amp;lt;–&amp;gt; IO-37&lt;br /&gt;
 SDO, SCK, SDI &amp;lt;–&amp;gt; SPIC_1: MOSI / MISO / CLK&lt;br /&gt;
 LED &amp;lt;–&amp;gt; PIN-31&lt;br /&gt;
 DC &amp;lt;–&amp;gt; PIN-11&lt;br /&gt;
 RESET &amp;lt;–&amp;gt; PIN-13&lt;br /&gt;
 CS &amp;lt;–&amp;gt; SPI-CE1&lt;br /&gt;
 GND &amp;lt;–&amp;gt; GND-9&lt;br /&gt;
 VCC &amp;lt;–&amp;gt; 3.3V-1&lt;br /&gt;
&lt;br /&gt;
DTS Modification:&lt;br /&gt;
&lt;br /&gt;
 / {&lt;br /&gt;
        backlight: backlight {&lt;br /&gt;
                compatible = &amp;quot;gpio-backlight&amp;quot;;&lt;br /&gt;
                gpios = &amp;lt;&amp;amp;pio 82 GPIO_ACTIVE_HIGH&amp;gt;;        //PIN31 IO-31 : GPIO82&lt;br /&gt;
                default-on;&lt;br /&gt;
        };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;pio {&lt;br /&gt;
        spic0_pins: spic0-pins {&lt;br /&gt;
                mux {&lt;br /&gt;
                        function = &amp;quot;spi&amp;quot;;&lt;br /&gt;
                        groups = &amp;quot;spic0_0&amp;quot;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
 &lt;br /&gt;
        spic1_pins: spic1-pins {&lt;br /&gt;
                mux {&lt;br /&gt;
                        function = &amp;quot;spi&amp;quot;;&lt;br /&gt;
                        groups = &amp;quot;spic1_0&amp;quot;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;spi0 {&lt;br /&gt;
        pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
        pinctrl-0 = &amp;lt;&amp;amp;spic0_pins&amp;gt;;&lt;br /&gt;
        status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
        touch@0 {&lt;br /&gt;
                reg = &amp;lt;0&amp;gt;;                                 //CE0&lt;br /&gt;
                compatible = &amp;quot;ti,ads7843&amp;quot;;&lt;br /&gt;
                interrupt-parent = &amp;lt;&amp;amp;pio&amp;gt;;&lt;br /&gt;
                interrupts = &amp;lt;86 0&amp;gt;;                       //PIN37: IO-37 == GPIO86&lt;br /&gt;
                pendown-gpio = &amp;lt;&amp;amp;pio 86 0&amp;gt;;&lt;br /&gt;
                spi-max-frequency = &amp;lt;1000000&amp;gt;;&lt;br /&gt;
                vcc-supply = &amp;lt;&amp;amp;reg_3p3v&amp;gt;;&lt;br /&gt;
                wakeup-source;&lt;br /&gt;
        };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;spi1 {&lt;br /&gt;
        pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
        pinctrl-0 = &amp;lt;&amp;amp;spic1_pins&amp;gt;;&lt;br /&gt;
        status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
        display@0{&lt;br /&gt;
                compatible = &amp;quot;ilitek,ili9341&amp;quot;;&lt;br /&gt;
                reg = &amp;lt;0&amp;gt;;                                 //CE0&lt;br /&gt;
                spi-max-frequency = &amp;lt;32000000&amp;gt;;&lt;br /&gt;
                dc-gpios = &amp;lt;&amp;amp;pio 51 GPIO_ACTIVE_HIGH&amp;gt;;     //PIN11 UART1-TXD : GPIO51&lt;br /&gt;
                reset-gpios = &amp;lt;&amp;amp;pio 52 GPIO_ACTIVE_HIGH&amp;gt;;  //PIN13 UART1-RXD : GPIO52&lt;br /&gt;
                backlight = &amp;lt;&amp;amp;backlight&amp;gt;;&lt;br /&gt;
        };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Kernel config:&lt;br /&gt;
&lt;br /&gt;
 +CONFIG_FB_TFT_ILI9341&lt;br /&gt;
 +CONFIG_FB_TFT&lt;br /&gt;
 +CONFIG_FB&lt;br /&gt;
 +CONFIG_BACKLIGHT_LCD_SUPPORT&lt;br /&gt;
 +CONFIG_BACKLIGHT_CLASS_DEVICE&lt;br /&gt;
 +CONFIG_BACKLIGHT_GPIO&lt;br /&gt;
 +CONFIG_INPUT&lt;br /&gt;
 +CONFIG_INPUT_TOUCHSCREEN&lt;br /&gt;
 +CONFIG_TOUCHSCREEN_ADS7846&lt;br /&gt;
&lt;br /&gt;
Application:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Package  ||+ Description  || Source   &lt;br /&gt;
|-&lt;br /&gt;
|  fbv ||  framebuffer image viewer  ||  https://github.com/godspeed1989/fbv &lt;br /&gt;
|-&lt;br /&gt;
| input-event-daemon  ||  input-event-daemon with touchTEST event ||  https://github.com/SAM33/input-event-daemon &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
input-event-daemon config that show image by touch area:  &lt;br /&gt;
(I don't know why are the coordinates so strange, but the result of my actual touch and &lt;br /&gt;
print out that it is like this)&lt;br /&gt;
&lt;br /&gt;
 [Global]&lt;br /&gt;
 listen = /dev/input/event0&lt;br /&gt;
 listen = /dev/input/event1&lt;br /&gt;
 [TouchTEST]&lt;br /&gt;
 340,400,3440,1860 = cat /dev/zero &amp;gt; /dev/fb0; fbv -f /root/bpi_608x429.jpg -s 1&lt;br /&gt;
 340,2260,3440,1860 = cat /dev/zero &amp;gt; /dev/fb0; fbv -f /root/openwrt_449x449.png -s 1&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R64 SPI touch panel test: https://www.youtube.com/watch?v=ikag-D_TI0g&amp;amp;feature=youtu.be&lt;br /&gt;
&lt;br /&gt;
===Sata===&lt;br /&gt;
* '''If you want to use Sata interface on R64, you need to give GPIO90 low level'''&lt;br /&gt;
** echo 499 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
** echo out &amp;gt; /sys/class/gpio/gpio499/direction&lt;br /&gt;
** echo 0 &amp;gt; /sys/class/gpio/gpio499/value&lt;br /&gt;
&lt;br /&gt;
*Test a TOSHIBA HDD DISK, the Read/Write performance are below:&lt;br /&gt;
&lt;br /&gt;
::Read from disk: 50MB/s command: dd if=/dev/sda of=/dev/null bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
::Write to disk: 38MB/s  command: dd if=/dev/zero of=/dev/sda bs=1M count=1024&lt;br /&gt;
[[Image:R64_hdd_sata_test.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Test a SAMSUNG SSD DISK, the Read/Write performance are below:&lt;br /&gt;
&lt;br /&gt;
::Read from disk: 360MB/s command: dd if=/dev/sda of=/dev/null bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
::Write to disk:  200MB/s command: dd if=/dev/zero of=/dev/sda bs=1M count=1024&lt;br /&gt;
[[Image:R64_ssd_sata_test.jpg]]&lt;br /&gt;
&lt;br /&gt;
===PCIe===&lt;br /&gt;
* '''If you want to use PCIe interface on R64, you need to give GPIO90 high level'''&lt;br /&gt;
** echo 499 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
** echo out &amp;gt; /sys/class/gpio/gpio499/direction&lt;br /&gt;
** echo 1 &amp;gt; /sys/class/gpio/gpio499/value&lt;br /&gt;
&lt;br /&gt;
* PCIe supports EC-25 4G module.&lt;br /&gt;
[[Image:R64_pcie_test_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_pcie_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
1. On PC Terminal:&lt;br /&gt;
* Execute &amp;quot;iperf3 -s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. On R64 console:&lt;br /&gt;
* TCP test: &amp;quot;iperf3 -c serverIP&amp;quot;&lt;br /&gt;
* UDP test: &amp;quot;iperf3 -u -c serverIP&amp;quot;&lt;br /&gt;
[[Image:R64_Gmac_test.jpg]]&lt;br /&gt;
&lt;br /&gt;
===BT &amp;amp; BLE on R64===&lt;br /&gt;
'''R64 BT Architectural'''&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_BT_Arch.jpg]]&lt;br /&gt;
&lt;br /&gt;
* BLE on R64&lt;br /&gt;
* Input Command &amp;quot;btmw-test&amp;quot;, you will enter to &amp;quot;btmw_test_cli&amp;quot; command line&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_BT_cli.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Here are some example commands：&lt;br /&gt;
** MW_GAP name 7622_BT /*rename bt device*/&lt;br /&gt;
** MW_GAP info         /*check local BT device info*/&lt;br /&gt;
** MW_GATTC scan       /* start ble scan*/&lt;br /&gt;
** MW_GATTC stop_scan  /* stop ble scan*/&lt;br /&gt;
&lt;br /&gt;
===R64 LAN Function===&lt;br /&gt;
* LAN eth interface is eth2, use &amp;quot;ifconfig eth2 up&amp;quot; to enable it.&lt;br /&gt;
* Config the ip, &amp;quot;ifconfig eth2 192.168.1.1&amp;quot;.&lt;br /&gt;
  [[Image:R64_Lan_test_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Config your dhcp server, &amp;quot;vim /etc/dhcp/dhcpd.conf&amp;quot;, add these configurations.&lt;br /&gt;
  [[Image:R64_Lan_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Start dhcp server, &amp;quot;dhcpd eth2&amp;quot;.&lt;br /&gt;
  [[Image:R64_Lan_test_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
* then config iptables and set package forward.&lt;br /&gt;
** Add &amp;quot;net.ipv4.ip_forward=1&amp;quot; to &amp;quot;/etc/sysctl.conf&amp;quot; &lt;br /&gt;
** &amp;quot;/sbin/sysctl -p&amp;quot; to make forward work&lt;br /&gt;
** &amp;quot;iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Ap mode on R64===&lt;br /&gt;
* Find &amp;quot;mt_wifi.ko&amp;quot; and insmod it.&lt;br /&gt;
** insmod ./lib/modules/4.4.92-BPI-R64-Kernel/extra/mt_wifi.ko&lt;br /&gt;
&lt;br /&gt;
* Then you will see ra0 and rai0.&lt;br /&gt;
  [[Image:R64_wifi_test_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
* ra0 is MT7622 2.4G wifi&lt;br /&gt;
* rai0 is MT7615 5G wifi&lt;br /&gt;
&lt;br /&gt;
====2.4G WiFi====&lt;br /&gt;
* Use &amp;quot;ifconfig ra0 up&amp;quot; to enable it.&lt;br /&gt;
* Config the ip, &amp;quot;ifconfig ra0 192.168.1.1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Config your dhcp server, &amp;quot;vim /etc/dhcp/dhcpd.conf&amp;quot;, add these configurations.&lt;br /&gt;
  [[Image:R64_Lan_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Start dhcp server, &amp;quot;dhcpd ra0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* then config iptables and set package forward.&lt;br /&gt;
** Add &amp;quot;net.ipv4.ip_forward=1&amp;quot; to &amp;quot;/etc/sysctl.conf&amp;quot; &lt;br /&gt;
** &amp;quot;/sbin/sysctl -p&amp;quot; to make forward work&lt;br /&gt;
** &amp;quot;iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====5G WiFi====&lt;br /&gt;
* Use &amp;quot;ifconfig rai0 up&amp;quot; to enable it.&lt;br /&gt;
* Config the ip, &amp;quot;ifconfig rai0 192.168.1.1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Config your dhcp server, &amp;quot;vim /etc/dhcp/dhcpd.conf&amp;quot;, add these configurations.&lt;br /&gt;
  [[Image:R64_Lan_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Start dhcp server, &amp;quot;dhcpd rai0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* then config iptables and set package forward.&lt;br /&gt;
** Add &amp;quot;net.ipv4.ip_forward=1&amp;quot; to &amp;quot;/etc/sysctl.conf&amp;quot; &lt;br /&gt;
** &amp;quot;/sbin/sysctl -p&amp;quot; to make forward work&lt;br /&gt;
** &amp;quot;iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*MT7622 Reference Manual for Develope Board(BPi)&lt;br /&gt;
::Google Drive：https://drive.google.com/open?id=1UhaIM9ork1O9cNO-t6ENMVVamB75AThV&lt;br /&gt;
::BaiDu  Drive：https://pan.baidu.com/s/1KduFT2MUvMs2FhOF4A8kQQ&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_R64&amp;diff=13805</id>
		<title>Getting Started with R64</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_R64&amp;diff=13805"/>
				<updated>2023-02-20T09:45:18Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* How to burn image to onboard eMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R64]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-R64_1.jpg|thumb|Overview：[[Banana Pi BPI-R64]]]]&lt;br /&gt;
[[File:BPI-R64_case_1.jpg|thumb|[[Banana Pi BPI-R64]] Metal Jacket]]&lt;br /&gt;
[[File:BPI-R64_PoE.JPG|thumb|BPI-R64 with BPI-7402 POE function support]]&lt;br /&gt;
[[File:BPI-7402_IEEE_802.3at_PoE_module_1.jpg|thumb|[[BPI-7402 IEEE 802.3at PoE module]]]]&lt;br /&gt;
[[File:5G_gateway_2.jpg|thumb|BPI:4.0 [[Successful case]] 5G Converged communication gateway]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[Banana Pi BPI-R1]] Allwinner A20]]&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[Banana Pi BPI-R2]] with MTK MT7623N chip design]]&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:O2A0500.jpg|thumb|[[Banana Pi BPI-W2]] with Realtek RTD1296 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-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D chip]]&lt;br /&gt;
   The Banana Pi R64 is a router based development board, which can run on a variety of open source operating systems including OpenWrt,Linux. It has 4 Gigabit LAN ports, 1 Gigabit WAN, and AC wifi AP function. use 64 bit chip design.&lt;br /&gt;
Read more: [[Banana Pi BPI-R64]]&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* MediaTek MT7622,1.35GHZ 64 bit dual-core ARM Cortex-A53&lt;br /&gt;
* 1G DDR3 SDRAM&lt;br /&gt;
* Mini PCIE interface support 4G module&lt;br /&gt;
* Built-in 4x4n 802.11n/Bluetooth 5.0 system-on-chip&lt;br /&gt;
* MTK7615 4x4ac wifi on board&lt;br /&gt;
* Support 1 SATA interface&lt;br /&gt;
* MicroSD slot supports up to 256GB expansion&lt;br /&gt;
* 8G eMMC flash (option 16/32/64G)&lt;br /&gt;
* 5 port 10/100/1000 Mb Ethernet port&lt;br /&gt;
* 1 Port USB 3.0&lt;br /&gt;
* Slow I/O:ADC, Audio Amplifier, GPIO, I2C, I2S, IR, PMIC I/F, PWM, RTC, SPI, UART&lt;br /&gt;
* POE function support&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on R64&lt;br /&gt;
&lt;br /&gt;
  [[Image:R64_debug_console.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
===How to burn image to SD card===&lt;br /&gt;
  1.You could download latest image from our forum&lt;br /&gt;
  * Here is the example image link: &lt;br /&gt;
  &lt;br /&gt;
  2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  * apt-get install pv&lt;br /&gt;
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
  3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
  * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
  4.After step 3, then you can insert your TF card into R64, and press power button to setup R64&lt;br /&gt;
&lt;br /&gt;
====How to burn image to onboard eMMC====&lt;br /&gt;
  Before burning image to eMMC, please prepare a SD card with flashed bootable image and a USB disk. Let's take OpenWrt image (mtk-bpi-r64-preloader-emmc.bin,2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img) for example, the steps are below:&lt;br /&gt;
&lt;br /&gt;
  1. Insert the flashed SD card and power on to start the board.(the image on the SD card can be OpenWrt or other linux OS like ubuntu...)&lt;br /&gt;
&lt;br /&gt;
  2. Copy eMMC bootable OpenWrt image(mtk-bpi-r64-preloader-emmc.bin,2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img) to USB disk, if the image is compressed please uncompress it before copying to USB disk.&lt;br /&gt;
  You can download the .bin file from github: https://github.com/BPI-SINOVOIP/BPI-R64-openwrt/tree/master/staging_dir/target-aarch64_cortex-a53_musl/image&lt;br /&gt;
  3. Plug in USB disk to the board, and mount the USB to /mnt or other directory as follows: (you can skip mounting if it is mounted automatically)&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt &lt;br /&gt;
     * change your directory to the mounting point, here is : cd /mnt&lt;br /&gt;
&lt;br /&gt;
  4. Execute following command to enable and copy image to eMMC:&lt;br /&gt;
     * echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
     * dd if=2020-04-09-OpenWRT-mtk-bpi-r64-EMMC.img of=/dev/mmcblk0&lt;br /&gt;
     * dd if=mtk-bpi-r64-preloader-emmc.bin of=/dev/mmcblk0boot0&lt;br /&gt;
     * mmc bootpart enable 1 1   /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  5. Shutdown, remove SD card and USB disk, and restart the board from eMMC.&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration : http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====40 Pins Definition====&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 409&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_gpio_base.jpg]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 431（22+409） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio431/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio431/value&lt;br /&gt;
&lt;br /&gt;
====PWM Control====&lt;br /&gt;
* echo x &amp;gt;/sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 200000 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/period &lt;br /&gt;
* echo 100000 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/duty_cycle                                                                     &lt;br /&gt;
* echo 1 &amp;gt;/sys/class/pwm/pwmchip0/pwmx/enable&lt;br /&gt;
&lt;br /&gt;
====SPI touch panel====&lt;br /&gt;
SPI Panel module:&lt;br /&gt;
&lt;br /&gt;
2.4&amp;quot; Touch Screen TFT LCD with SPI Interface, 240x320 (ILI9341 + ADS7843/XPT2046/HR2046)&lt;br /&gt;
&lt;br /&gt;
SPI Panel &amp;lt;–&amp;gt; BPIR64&lt;br /&gt;
&lt;br /&gt;
 T_DO, T_DIN, T_CLK &amp;lt;–&amp;gt; SPIC_0: MOSI / MISO / CLK&lt;br /&gt;
 T_CS &amp;lt;–&amp;gt; SPI-CE0&lt;br /&gt;
 T_IRQ &amp;lt;–&amp;gt; IO-37&lt;br /&gt;
 SDO, SCK, SDI &amp;lt;–&amp;gt; SPIC_1: MOSI / MISO / CLK&lt;br /&gt;
 LED &amp;lt;–&amp;gt; PIN-31&lt;br /&gt;
 DC &amp;lt;–&amp;gt; PIN-11&lt;br /&gt;
 RESET &amp;lt;–&amp;gt; PIN-13&lt;br /&gt;
 CS &amp;lt;–&amp;gt; SPI-CE1&lt;br /&gt;
 GND &amp;lt;–&amp;gt; GND-9&lt;br /&gt;
 VCC &amp;lt;–&amp;gt; 3.3V-1&lt;br /&gt;
&lt;br /&gt;
DTS Modification:&lt;br /&gt;
&lt;br /&gt;
 / {&lt;br /&gt;
        backlight: backlight {&lt;br /&gt;
                compatible = &amp;quot;gpio-backlight&amp;quot;;&lt;br /&gt;
                gpios = &amp;lt;&amp;amp;pio 82 GPIO_ACTIVE_HIGH&amp;gt;;        //PIN31 IO-31 : GPIO82&lt;br /&gt;
                default-on;&lt;br /&gt;
        };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;pio {&lt;br /&gt;
        spic0_pins: spic0-pins {&lt;br /&gt;
                mux {&lt;br /&gt;
                        function = &amp;quot;spi&amp;quot;;&lt;br /&gt;
                        groups = &amp;quot;spic0_0&amp;quot;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
 &lt;br /&gt;
        spic1_pins: spic1-pins {&lt;br /&gt;
                mux {&lt;br /&gt;
                        function = &amp;quot;spi&amp;quot;;&lt;br /&gt;
                        groups = &amp;quot;spic1_0&amp;quot;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;spi0 {&lt;br /&gt;
        pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
        pinctrl-0 = &amp;lt;&amp;amp;spic0_pins&amp;gt;;&lt;br /&gt;
        status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
        touch@0 {&lt;br /&gt;
                reg = &amp;lt;0&amp;gt;;                                 //CE0&lt;br /&gt;
                compatible = &amp;quot;ti,ads7843&amp;quot;;&lt;br /&gt;
                interrupt-parent = &amp;lt;&amp;amp;pio&amp;gt;;&lt;br /&gt;
                interrupts = &amp;lt;86 0&amp;gt;;                       //PIN37: IO-37 == GPIO86&lt;br /&gt;
                pendown-gpio = &amp;lt;&amp;amp;pio 86 0&amp;gt;;&lt;br /&gt;
                spi-max-frequency = &amp;lt;1000000&amp;gt;;&lt;br /&gt;
                vcc-supply = &amp;lt;&amp;amp;reg_3p3v&amp;gt;;&lt;br /&gt;
                wakeup-source;&lt;br /&gt;
        };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;spi1 {&lt;br /&gt;
        pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
        pinctrl-0 = &amp;lt;&amp;amp;spic1_pins&amp;gt;;&lt;br /&gt;
        status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
        display@0{&lt;br /&gt;
                compatible = &amp;quot;ilitek,ili9341&amp;quot;;&lt;br /&gt;
                reg = &amp;lt;0&amp;gt;;                                 //CE0&lt;br /&gt;
                spi-max-frequency = &amp;lt;32000000&amp;gt;;&lt;br /&gt;
                dc-gpios = &amp;lt;&amp;amp;pio 51 GPIO_ACTIVE_HIGH&amp;gt;;     //PIN11 UART1-TXD : GPIO51&lt;br /&gt;
                reset-gpios = &amp;lt;&amp;amp;pio 52 GPIO_ACTIVE_HIGH&amp;gt;;  //PIN13 UART1-RXD : GPIO52&lt;br /&gt;
                backlight = &amp;lt;&amp;amp;backlight&amp;gt;;&lt;br /&gt;
        };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Kernel config:&lt;br /&gt;
&lt;br /&gt;
 +CONFIG_FB_TFT_ILI9341&lt;br /&gt;
 +CONFIG_FB_TFT&lt;br /&gt;
 +CONFIG_FB&lt;br /&gt;
 +CONFIG_BACKLIGHT_LCD_SUPPORT&lt;br /&gt;
 +CONFIG_BACKLIGHT_CLASS_DEVICE&lt;br /&gt;
 +CONFIG_BACKLIGHT_GPIO&lt;br /&gt;
 +CONFIG_INPUT&lt;br /&gt;
 +CONFIG_INPUT_TOUCHSCREEN&lt;br /&gt;
 +CONFIG_TOUCHSCREEN_ADS7846&lt;br /&gt;
&lt;br /&gt;
Application:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Package  ||+ Description  || Source   &lt;br /&gt;
|-&lt;br /&gt;
|  fbv ||  framebuffer image viewer  ||  https://github.com/godspeed1989/fbv &lt;br /&gt;
|-&lt;br /&gt;
| input-event-daemon  ||  input-event-daemon with touchTEST event ||  https://github.com/SAM33/input-event-daemon &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
input-event-daemon config that show image by touch area:  &lt;br /&gt;
(I don't know why are the coordinates so strange, but the result of my actual touch and &lt;br /&gt;
print out that it is like this)&lt;br /&gt;
&lt;br /&gt;
 [Global]&lt;br /&gt;
 listen = /dev/input/event0&lt;br /&gt;
 listen = /dev/input/event1&lt;br /&gt;
 [TouchTEST]&lt;br /&gt;
 340,400,3440,1860 = cat /dev/zero &amp;gt; /dev/fb0; fbv -f /root/bpi_608x429.jpg -s 1&lt;br /&gt;
 340,2260,3440,1860 = cat /dev/zero &amp;gt; /dev/fb0; fbv -f /root/openwrt_449x449.png -s 1&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R64 SPI touch panel test: https://www.youtube.com/watch?v=ikag-D_TI0g&amp;amp;feature=youtu.be&lt;br /&gt;
&lt;br /&gt;
===Sata===&lt;br /&gt;
* '''If you want to use Sata interface on R64, you need to give GPIO90 low level'''&lt;br /&gt;
** echo 499 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
** echo out &amp;gt; /sys/class/gpio/gpio499/direction&lt;br /&gt;
** echo 0 &amp;gt; /sys/class/gpio/gpio499/value&lt;br /&gt;
&lt;br /&gt;
*Test a TOSHIBA HDD DISK, the Read/Write performance are below:&lt;br /&gt;
&lt;br /&gt;
::Read from disk: 50MB/s command: dd if=/dev/sda of=/dev/null bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
::Write to disk: 38MB/s  command: dd if=/dev/zero of=/dev/sda bs=1M count=1024&lt;br /&gt;
[[Image:R64_hdd_sata_test.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Test a SAMSUNG SSD DISK, the Read/Write performance are below:&lt;br /&gt;
&lt;br /&gt;
::Read from disk: 360MB/s command: dd if=/dev/sda of=/dev/null bs=1M count=1024&lt;br /&gt;
&lt;br /&gt;
::Write to disk:  200MB/s command: dd if=/dev/zero of=/dev/sda bs=1M count=1024&lt;br /&gt;
[[Image:R64_ssd_sata_test.jpg]]&lt;br /&gt;
&lt;br /&gt;
===PCIe===&lt;br /&gt;
* '''If you want to use PCIe interface on R64, you need to give GPIO90 high level'''&lt;br /&gt;
** echo 499 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
** echo out &amp;gt; /sys/class/gpio/gpio499/direction&lt;br /&gt;
** echo 1 &amp;gt; /sys/class/gpio/gpio499/value&lt;br /&gt;
&lt;br /&gt;
* PCIe supports EC-25 4G module.&lt;br /&gt;
[[Image:R64_pcie_test_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_pcie_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===GMAC===&lt;br /&gt;
Use iperf3 to test gmac&lt;br /&gt;
&lt;br /&gt;
1. On PC Terminal:&lt;br /&gt;
* Execute &amp;quot;iperf3 -s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. On R64 console:&lt;br /&gt;
* TCP test: &amp;quot;iperf3 -c serverIP&amp;quot;&lt;br /&gt;
* UDP test: &amp;quot;iperf3 -u -c serverIP&amp;quot;&lt;br /&gt;
[[Image:R64_Gmac_test.jpg]]&lt;br /&gt;
&lt;br /&gt;
===BT &amp;amp; BLE on R64===&lt;br /&gt;
'''R64 BT Architectural'''&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_BT_Arch.jpg]]&lt;br /&gt;
&lt;br /&gt;
* BLE on R64&lt;br /&gt;
* Input Command &amp;quot;btmw-test&amp;quot;, you will enter to &amp;quot;btmw_test_cli&amp;quot; command line&lt;br /&gt;
&lt;br /&gt;
[[Image:R64_BT_cli.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Here are some example commands：&lt;br /&gt;
** MW_GAP name 7622_BT /*rename bt device*/&lt;br /&gt;
** MW_GAP info         /*check local BT device info*/&lt;br /&gt;
** MW_GATTC scan       /* start ble scan*/&lt;br /&gt;
** MW_GATTC stop_scan  /* stop ble scan*/&lt;br /&gt;
&lt;br /&gt;
===R64 LAN Function===&lt;br /&gt;
* LAN eth interface is eth2, use &amp;quot;ifconfig eth2 up&amp;quot; to enable it.&lt;br /&gt;
* Config the ip, &amp;quot;ifconfig eth2 192.168.1.1&amp;quot;.&lt;br /&gt;
  [[Image:R64_Lan_test_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Config your dhcp server, &amp;quot;vim /etc/dhcp/dhcpd.conf&amp;quot;, add these configurations.&lt;br /&gt;
  [[Image:R64_Lan_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Start dhcp server, &amp;quot;dhcpd eth2&amp;quot;.&lt;br /&gt;
  [[Image:R64_Lan_test_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
* then config iptables and set package forward.&lt;br /&gt;
** Add &amp;quot;net.ipv4.ip_forward=1&amp;quot; to &amp;quot;/etc/sysctl.conf&amp;quot; &lt;br /&gt;
** &amp;quot;/sbin/sysctl -p&amp;quot; to make forward work&lt;br /&gt;
** &amp;quot;iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Ap mode on R64===&lt;br /&gt;
* Find &amp;quot;mt_wifi.ko&amp;quot; and insmod it.&lt;br /&gt;
** insmod ./lib/modules/4.4.92-BPI-R64-Kernel/extra/mt_wifi.ko&lt;br /&gt;
&lt;br /&gt;
* Then you will see ra0 and rai0.&lt;br /&gt;
  [[Image:R64_wifi_test_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
* ra0 is MT7622 2.4G wifi&lt;br /&gt;
* rai0 is MT7615 5G wifi&lt;br /&gt;
&lt;br /&gt;
====2.4G WiFi====&lt;br /&gt;
* Use &amp;quot;ifconfig ra0 up&amp;quot; to enable it.&lt;br /&gt;
* Config the ip, &amp;quot;ifconfig ra0 192.168.1.1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Config your dhcp server, &amp;quot;vim /etc/dhcp/dhcpd.conf&amp;quot;, add these configurations.&lt;br /&gt;
  [[Image:R64_Lan_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Start dhcp server, &amp;quot;dhcpd ra0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* then config iptables and set package forward.&lt;br /&gt;
** Add &amp;quot;net.ipv4.ip_forward=1&amp;quot; to &amp;quot;/etc/sysctl.conf&amp;quot; &lt;br /&gt;
** &amp;quot;/sbin/sysctl -p&amp;quot; to make forward work&lt;br /&gt;
** &amp;quot;iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====5G WiFi====&lt;br /&gt;
* Use &amp;quot;ifconfig rai0 up&amp;quot; to enable it.&lt;br /&gt;
* Config the ip, &amp;quot;ifconfig rai0 192.168.1.1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Config your dhcp server, &amp;quot;vim /etc/dhcp/dhcpd.conf&amp;quot;, add these configurations.&lt;br /&gt;
  [[Image:R64_Lan_test_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Start dhcp server, &amp;quot;dhcpd rai0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* then config iptables and set package forward.&lt;br /&gt;
** Add &amp;quot;net.ipv4.ip_forward=1&amp;quot; to &amp;quot;/etc/sysctl.conf&amp;quot; &lt;br /&gt;
** &amp;quot;/sbin/sysctl -p&amp;quot; to make forward work&lt;br /&gt;
** &amp;quot;iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth3 -j MASQUERADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*MT7622 Reference Manual for Develope Board(BPi)&lt;br /&gt;
::Google Drive：https://drive.google.com/open?id=1UhaIM9ork1O9cNO-t6ENMVVamB75AThV&lt;br /&gt;
::BaiDu  Drive：https://pan.baidu.com/s/1KduFT2MUvMs2FhOF4A8kQQ&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_CM4&amp;diff=13804</id>
		<title>Getting Started with CM4</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_CM4&amp;diff=13804"/>
				<updated>2023-02-17T09:53:44Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Wifi client */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
BananaPi BPI-CM4 new design with Amlogic A311D Quad core ARM Cortex-A73 and dual core ARM Cortex-A53 CPU ,ARM G52 MP4(6EE) GPU,NPU for AI at 5.0 TOPS, support Camera and MIPI-CSI interface ,HDMI output,2 Gigabit port . 4G RAM and 16 GB eMMC flash.&lt;br /&gt;
&lt;br /&gt;
[[Banana Pi BPI-CM4]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Prepare==&lt;br /&gt;
:1. Prepare a usb-serial cable, a 5V/3A adaptor type-c power supply. The serial cable is used for console debug and type-c cable is used for android image download and ADB debug.&lt;br /&gt;
:2. Prepare a SDcard at least 8GB for linux development, android only support emmc boot.&lt;br /&gt;
:3. The SOC rom first boot media is emmc, so board can't bootup from SDcard if the emmc is bootable with any image flashed, more info please refer to board [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence].&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download and install the [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Fimage_download_tools%2Faml_usb_burning_tool_V2_setup_v2.2.3.3.zip AML Usb Burning Tool] for android image download via type-c, only support windows.&lt;br /&gt;
:2. Download the latest [https://wiki.banana-pi.org/Banana_Pi_BPI-CM4#Android android image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Usb Burning Tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open USB_Burning_Tool.exe, select menu File-&amp;gt;Import image, choose the android image file aml_upgrade_package.img.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_android_install_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Short the usb boot test point on the main board, plugin type-c usb cable to PC or press the RST button if power adapter already connected, about two seconds later,  the board will enter usb download mode and be identified correctly by PC. You can also enter usb download mode with adb command &amp;quot;adb reboot update&amp;quot; or console command &amp;quot;reboot update&amp;quot; if a bootable android already flashed, make sure typec usb connected to PC before doing this. &lt;br /&gt;
:[[File:cm4_usb_download.jpg]]&lt;br /&gt;
:[[File:m2s_android_install_3.png]]&lt;br /&gt;
:[[File:m2s_android_install_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:3. Click the Start button of the download tool and wait for upgrade complete.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_android_install_4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:4. After Burning successfull, Unplug the type-c usb and connect to power supply adaptor to startup.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_android_install_5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:5. Click the Stop button to cancel the upgrade process and close the USB Buring Tool.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Aml Flash Tool===&lt;br /&gt;
:[https://github.com/Dangku/aml-flash-tool aml-flash-tool] is a linux platform opensource image flash util for Amlogic android.&lt;br /&gt;
&lt;br /&gt;
  $ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_flash.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
:1. Get Android 9.0 source code&lt;br /&gt;
&lt;br /&gt;
  $ https://github.com/BPI-SINOVOIP/BPI-A311D-Android9&lt;br /&gt;
&lt;br /&gt;
:2. Build the Android 9.0 Source code&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-A311D-Android9/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Android DTB overlay===&lt;br /&gt;
&lt;br /&gt;
:Bananapi CM4 DTBO idx value table, default idx value is 0 in release image.&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;4&amp;quot;| '''Bananapi CM4 DTBO idx value table'''&lt;br /&gt;
|-&lt;br /&gt;
|idx value|| device tree overlay || description&lt;br /&gt;
|-&lt;br /&gt;
| 0|| android_p_overlay|| default dtbo, no use&lt;br /&gt;
|-&lt;br /&gt;
| 1|| wifi_bt_rtl8822cs|| enable bpi rtl8822cs wifi/bt module&lt;br /&gt;
|-&lt;br /&gt;
| 2|| i2c1|| enable i2c 1&lt;br /&gt;
|-&lt;br /&gt;
| 3|| i2c2|| enable i2c 2&lt;br /&gt;
|-&lt;br /&gt;
| 4|| sdio|| enable sdio&lt;br /&gt;
|-&lt;br /&gt;
| 5|| uart1|| enable 2 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 6|| uart1_cts_rts|| enable 4 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 7|| uart2|| enable 2 pins uart 2&lt;br /&gt;
|-&lt;br /&gt;
| 8|| hifi_pcm5122|| enable i2s [https://shumeipai.nxez.com/hifidac-hat-for-raspberry-pi pcm5122 HiFi DAC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:'''How to apply a new dtbo'''&lt;br /&gt;
&lt;br /&gt;
:1. ADB command via sysfs&lt;br /&gt;
&lt;br /&gt;
  root@dangku-desktop:/tmp# adb root&lt;br /&gt;
  restarting adbd as root&lt;br /&gt;
  root@dangku-desktop:/tmp# adb remount&lt;br /&gt;
  remount succeeded&lt;br /&gt;
  root@dangku-desktop:/tmp# adb shell&lt;br /&gt;
  bananapi_m2s:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                                                &lt;br /&gt;
  bananapi_m2s:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                                                &lt;br /&gt;
  bananapi_m2s:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:2. Uart console command via sysfs&lt;br /&gt;
&lt;br /&gt;
  console:/ $ &lt;br /&gt;
  console:/ $ su&lt;br /&gt;
  console:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                              &lt;br /&gt;
  [  115.702781@0] unifykey: name_store() 1302, name dtbo, 4&lt;br /&gt;
  [  115.702856@0] unifykey: name_store() 1311&lt;br /&gt;
  console:/ #&lt;br /&gt;
  console:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                              &lt;br /&gt;
  [  129.262659@0] unifykey: write_store()  is a string&lt;br /&gt;
  [  129.262733@0] unifykey: dtbo, 1, 1&lt;br /&gt;
  [  129.265312@0] unifykey: amlkey_write 393&lt;br /&gt;
  [  129.292347@1] emmc_key_write:149, write ok&lt;br /&gt;
  console:/ # &lt;br /&gt;
  console:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:3. Settings App(To-Do)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Check the bootup uart debug message and confirm which dtbo is loaded actually, here &amp;quot;1&amp;quot; means set idx=1 to apply wifi_bt_rtl8822cs dtbo.&lt;br /&gt;
&lt;br /&gt;
  load dtb from 0x1000000 ......&lt;br /&gt;
        Amlogic multi-dtb tool&lt;br /&gt;
        Single dtb detected&lt;br /&gt;
  find 2 dtbos&lt;br /&gt;
  dtbos to be applied: 1&lt;br /&gt;
  Apply dtbo 1&lt;br /&gt;
&lt;br /&gt;
:Unifykeys is stored in a specific emmc part, &amp;quot;Normal erase&amp;quot; selected in USB_Burning_Tool will not erase this data for next update, you must select &amp;quot;Erase all&amp;quot; if you want the default dtbo idx to be applied after image download.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_android_erase_all.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Build Android image with a specific DTBO default'''.&lt;br /&gt;
&lt;br /&gt;
:1. Default build-in overlays are defined in device/bananapi/bananapi_m2s/Kernel.mk, you can add a new overlay dtbo here.&lt;br /&gt;
  DTBO_DEVICETREE := android_p_overlay wifi_bt_rtl8822cs i2c1 i2c2 sdio uart1 uart1_cts_rts uart2 hifi_pcm5122&lt;br /&gt;
&lt;br /&gt;
:2. Default apply DTBO idx is defined in device/bananapi/bananapi_m2s/BoardConfig.mk, you can change the idx value to set which overlay dtbo will be applied default.&lt;br /&gt;
  BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=0&lt;br /&gt;
&lt;br /&gt;
:3. DTS files are in common/arch/arm64/boot/dts/amlogic/overlay/bananapi_m2s/&lt;br /&gt;
&lt;br /&gt;
:More info about android device tree overlays, please refer to [https://source.android.com/devices/architecture/dto google android offical site]&lt;br /&gt;
&lt;br /&gt;
===Install OpenGapps===&lt;br /&gt;
&lt;br /&gt;
:1. Download install package from [https://opengapps.org/ OpenGapps], Android release image is arm/android 9.0 variant.&lt;br /&gt;
&lt;br /&gt;
[[File:opengapps.PNG]]&lt;br /&gt;
&lt;br /&gt;
:2. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fapps%2Fdevice_id_v1.3.2.apk device_id.apk].&lt;br /&gt;
:3. Copy the OpenGapp package to a udisk or sdcard root directory.&lt;br /&gt;
:4. Create a txt file named '''factory_update_param.aml''' in udisk or sdcard root directory with the following android recovery parameter content, and replace the file name with the actual downloaded package.  &lt;br /&gt;
::udisk:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/udisk/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
::sdcard:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/sdcard/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
:5. Plugin the udisk or sdcard to the board and poweron.&lt;br /&gt;
&lt;br /&gt;
:6.OpenGapps install and certify.&lt;br /&gt;
:&amp;lt;youtube&amp;gt;fXOKmWfpqF8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
:watch this video on [https://www.bilibili.com/video/BV13y4y1s77i/ bilibili]&lt;br /&gt;
&lt;br /&gt;
===Switch Mipi Panel===&lt;br /&gt;
:The default android release image only support one mipi panel because hw has no detect logic for different panel at boot, so [800x1280 bpi panel] enabled as default, but you can change to [1200x1920 bpi panel] as defualt in Settings-&amp;gt;Panel Output&lt;br /&gt;
 &lt;br /&gt;
:[[File:m2s_panel_switch.png]]&lt;br /&gt;
&lt;br /&gt;
===Panel Rotation===&lt;br /&gt;
The two 10&amp;quot; mipi panels are all portrait hw display, so the default android release image is portrait mode, but you can rotate it to 90/180/270 in two ways.&lt;br /&gt;
&lt;br /&gt;
:1. UI Rotation in Settings-&amp;gt;Display-&amp;gt;Screen rotation&lt;br /&gt;
:[[File:m2s-rotation.png]]&lt;br /&gt;
&lt;br /&gt;
:2. SurfaceFlinger rotation, need [https://wiki.banana-pi.org/Getting_Started_with_BPI-M2S#Build_Android_Source_Code modify android source code and build]&lt;br /&gt;
:Change the default sf rotation property&lt;br /&gt;
    diff --git a/device/bananapi/bananapi_m2s/bananapi_m2s.mk b/device/bananapi/bananapi_m2s/bananapi_m2s.mk&lt;br /&gt;
    index 1f51703..d592a44 100644&lt;br /&gt;
    --- a/device/bananapi/bananapi_m2s/bananapi_m2s.mk&lt;br /&gt;
    +++ b/device/bananapi/bananapi_m2s/bananapi_m2s.mk&lt;br /&gt;
    @@ -579,6 +579,6 @@ PRODUCT_PROPERTY_OVERRIDES += \&lt;br /&gt;
     else&lt;br /&gt;
     PRODUCT_PROPERTY_OVERRIDES += \&lt;br /&gt;
         ro.sf.lcd_density=213 \&lt;br /&gt;
     -    ro.sf.primary_display_orientation=0&lt;br /&gt;
    +    ro.sf.primary_display_orientation=90&lt;br /&gt;
     endif&lt;br /&gt;
&lt;br /&gt;
:Change the touch panel rotation in dts&lt;br /&gt;
    diff --git a/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts b/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts&lt;br /&gt;
    index 4a698b0..3d41b63 100755&lt;br /&gt;
    --- a/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts&lt;br /&gt;
    +++ b/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts&lt;br /&gt;
    @@ -876,8 +876,8 @@&lt;br /&gt;
                    reg = &amp;lt;0x5d&amp;gt;;&lt;br /&gt;
                    reset-gpio = &amp;lt;&amp;amp;gpio GPIOA_6 GPIO_ACTIVE_HIGH&amp;gt;;&lt;br /&gt;
                    irq-gpio = &amp;lt;&amp;amp;gpio GPIOA_5 GPIO_ACTIVE_HIGH&amp;gt;;&lt;br /&gt;
    -               rotation = &amp;lt;4&amp;gt;; /* sf_rotation 0 */&lt;br /&gt;
    -               //rotation = &amp;lt;0&amp;gt;; /* sf_rotation 90*/&lt;br /&gt;
   +               //rotation = &amp;lt;4&amp;gt;; /* sf_rotation 0 */&lt;br /&gt;
   +               rotation = &amp;lt;0&amp;gt;; /* sf_rotation 90*/&lt;br /&gt;
                    //rotation = &amp;lt;5&amp;gt;; /* sf_rotation 180 */&lt;br /&gt;
                    //rotation = &amp;lt;3&amp;gt;; /* sf_rotation 270 */&lt;br /&gt;
&lt;br /&gt;
===Custom Android Boot Logo===&lt;br /&gt;
:Android bootloader limit boot logo fb display size is 1080p60hz/1920x1080 default, and android kernel dtb partition table limit boot logo partition size to 16MB default .&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 16bit bmp file and named boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:3. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Flogo_create_tools%2Fm2s_android_bootlogo_tool.zip m2s_android_bootlogo_tool.zip]&lt;br /&gt;
&lt;br /&gt;
:4. Extract this tool&lt;br /&gt;
  $ unzip m2s_android_bootlogo_tool.zip&lt;br /&gt;
  $ cd m2s_android_bootlogo_tool/&lt;br /&gt;
  $ ls -l logo/&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup_secondary.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_bar.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_error.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_fail.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_logo.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_success.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_unfocus.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_upgrading.bmp&lt;br /&gt;
&lt;br /&gt;
:5. Copy the boot-logo.bmp.gz&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup.bmp&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup_secondary.bmp&lt;br /&gt;
&lt;br /&gt;
:6. Create target logo.img with img pack tool, the binary and related libs of m2s_android_bootlogo_tool are copy from &amp;lt;android-source-dir&amp;gt;/out/host/linux-x86&lt;br /&gt;
  $ ./logo_img_packer -r logo logo.img&lt;br /&gt;
&lt;br /&gt;
:7. Flash boot logo with fastboot&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb reboot fastboot&lt;br /&gt;
:Wait few seconds and check whether fastboot connected&lt;br /&gt;
  $ fastboot device&lt;br /&gt;
  1234567890      fastboot&lt;br /&gt;
  $ fastboot flashing unlock_critical&lt;br /&gt;
  $ fastboot flashing unlock&lt;br /&gt;
  $ fastboot flash logo logo.img&lt;br /&gt;
  $ fastboot reboot&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 [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. Make sure bootable EMMC is formatted if you want bootup from SDcard, more info refer to [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_EMMC_for_SDcard_Bootup Erase EMMC for SDcard Bootup]&lt;br /&gt;
&lt;br /&gt;
:3. 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;
:4. Install bpi-tools on your Linux PC(if [https://wiki.banana-pi.org/Getting_Started_with_M2S#Install_Image_to_SDcard flash image] with other tools, ignore this step). If you can't access this URL or any other install problem, please go to [https://github.com/bpi-sinovoip/bpi-tools bpi-tools] source repo, download and install this tools manually.&lt;br /&gt;
  $ apt-get install pv&lt;br /&gt;
  $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
&lt;br /&gt;
:5. Download Linux latest [https://wiki.banana-pi.org/Banana_Pi_BPI-CM4#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;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with 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 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-cm4-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:3. Install the linux image in udisk 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-cm4-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to EMMC===&lt;br /&gt;
:1. Prepare a [https://wiki.banana-pi.org/Getting_Started_with_M2S#Install_Image_to_SDcard SDcard with Linux image] flashed and bootup board with this SDcard.&lt;br /&gt;
&lt;br /&gt;
:2. Copy Linux image to udisk, plug the udisk to board and mount it.&lt;br /&gt;
&lt;br /&gt;
:3. Install with dd command, umount mmcblk0p1 and mmcblk0p2 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-cm4-xxx.img.zip | pv | dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install with bpi-tools command&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-cm4-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
:5. After download complete, power off safely and eject the SDcard.&lt;br /&gt;
&lt;br /&gt;
===Build Linux Source Code===&lt;br /&gt;
:1. Get the Linux bsp source code&lt;br /&gt;
  $  git clone https://github.com/BPI-SINOVOIP/BPI-M2S-bsp&lt;br /&gt;
:2. Build the bsp source code&lt;br /&gt;
&lt;br /&gt;
::Please read the source code [https://github.com/BPI-SINOVOIP/BPI-M2S-bsp/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
:3. If you want build uboot and kernel separately, please download the [https://github.com/Dangku/amlogic-u-boot/tree/khadas-g12b-v2015.01-m2s u-boot] the [https://github.com/Dangku/amlogic-linux/tree/khadas-g12b-4.9.y-m2s kernel] only, get the toolchains, boot script and other configuration files from [https://github.com/BPI-SINOVOIP/BPI-M2S-bsp/tree/master/aml-pack/g12b/bpi-m2s/linux BPI-M2S-bsp]&lt;br /&gt;
&lt;br /&gt;
===DTB overlay===&lt;br /&gt;
:1. DTB overlay is used for 40pin gpios multi-function configuration and install in vfat boot partition, you can check the mount point with mount command.&lt;br /&gt;
  root@bananapi:~# ls /boot/overlays/&lt;br /&gt;
  hifi_pcm5122.dtbo  pdmmic.dtbo        sdio.dtbo                 waveshare_tft24_lcd.dtbo&lt;br /&gt;
  i2c1.dtbo          pwm_c-beeper.dtbo    spi0.dtbo                 waveshare_tft35c_lcd.dtbo&lt;br /&gt;
  i2c2.dtbo          pwm_cd-c.dtbo           spi0_flash.dtbo        wifi_bt_rtl8822cs.dtbo&lt;br /&gt;
  i2s.dtbo            pwm_cd.dtbo              uart1_cts_rts.dtbo    i2smic.dtbo    pwm_ef.dtbo &lt;br /&gt;
  uart1.dtbo        os08a10.dtbo              pwm_ef-f.dtbo          uart2.dtbo&lt;br /&gt;
&lt;br /&gt;
:2. Update the overlays env in vfat /boot/env.txt to enable what you want.&lt;br /&gt;
&lt;br /&gt;
  # Device Tree Overlays&lt;br /&gt;
  #   uart1           -- Enable UART1 (uart_A, GPIO Header PIN8 &amp;amp; PIN10)&lt;br /&gt;
  #   pwm_c           -- Enable PWM_C (GPIO Header PIN7)&lt;br /&gt;
  #   i2c2            -- Enable i2c2 (GPIO Header PIN3 &amp;amp; PIN5)&lt;br /&gt;
  #   spi0            -- Enable SPI0 (GPIO Header PIN19 &amp;amp; PIN21 &amp;amp; PIN23 &amp;amp; PIN24)&lt;br /&gt;
  overlays=&amp;quot;i2c2 spi0 uart1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:3. Must be restart the board for overlay dtb loaded.&lt;br /&gt;
&lt;br /&gt;
===Enable Camera===&lt;br /&gt;
:The linux release image is camera disabled default, according to the following configuration, it can be enabled by yourself.&lt;br /&gt;
&lt;br /&gt;
:1. Update the [https://wiki.banana-pi.org/Getting_Started_with_BPI-CM4#DTB_overlay dtb overlays] env in /boot/env.txt to enable camera dtbo.&lt;br /&gt;
&lt;br /&gt;
  overlays=&amp;quot;os08a10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:2. Add camera modules to /etc/modules&lt;br /&gt;
  iv009_isp_iq&lt;br /&gt;
  iv009_isp_lens&lt;br /&gt;
  iv009_isp_sensor&lt;br /&gt;
  iv009_isp&lt;br /&gt;
&lt;br /&gt;
:3. Create and add camera modules options to /etc/modprobe.d/os08a10.conf&lt;br /&gt;
  #choose camera calibration parameters&lt;br /&gt;
  options iv009_isp_iq cali_name=0&lt;br /&gt;
  #choose isp register sequence&lt;br /&gt;
  options iv009_isp_sensor isp_seq_num=0&lt;br /&gt;
&lt;br /&gt;
:4. Enable camera isp systemd service&lt;br /&gt;
  $ sudo systemctl enable camera_isp_3a_server.service&lt;br /&gt;
&lt;br /&gt;
:Camera device is /dev/video0 after reboot.&lt;br /&gt;
&lt;br /&gt;
===Switch Mipi Panel===&lt;br /&gt;
:The default linux release image only support one mipi panel because hw has no detect logic for different panel at boot, so 800x1280 bpi panel enabled as default, but you can change to [1200x1920 bpi panel] as defualt in /boot/lcd_env.txt&lt;br /&gt;
  # Mipi panel type&lt;br /&gt;
  #    Symbol    | Resolution&lt;br /&gt;
  # ----------------------+-------------&lt;br /&gt;
  #    &amp;quot;lcd_0&amp;quot;   | 10&amp;quot; 800x1280 panel&lt;br /&gt;
  #    &amp;quot;lcd_1&amp;quot;   | 10&amp;quot; 1200x1920 panel&lt;br /&gt;
  panel_type=lcd_0&lt;br /&gt;
&lt;br /&gt;
:'''Note''': Dual display is not work on linux, so disconnect hdmi cable when mipi used.&lt;br /&gt;
&lt;br /&gt;
===Panel Rotation===&lt;br /&gt;
:The two 10&amp;quot; mipi panels are all portrait hw display, so the default release image is portrait mode, but you can rotate it to 90/180/270. &lt;br /&gt;
&lt;br /&gt;
:For Desktop image, create a xorg configuration file /usr/share/X11/xorg.conf.d/10-fbdev-rotate.conf with contents:&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Device&amp;quot;&lt;br /&gt;
      Identifier &amp;quot;Configured Video Device&amp;quot;&lt;br /&gt;
      # Rotate off&lt;br /&gt;
  #   Option &amp;quot;Rotate&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
      # Rotate Right / clockwise, 90 degrees&lt;br /&gt;
      Option &amp;quot;Rotate&amp;quot; &amp;quot;CW&amp;quot;&lt;br /&gt;
      # Rotate upside down, 180 degrees&lt;br /&gt;
  #   Option &amp;quot;Rotate&amp;quot; &amp;quot;UD&amp;quot;&lt;br /&gt;
      # Rotate counter clockwise, 270 degrees&lt;br /&gt;
  #   Option &amp;quot;Rotate&amp;quot; &amp;quot;CCW&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  EndSection&lt;br /&gt;
  &lt;br /&gt;
  Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
      Identifier &amp;quot;Coordinate Transformation Matrix&amp;quot;&lt;br /&gt;
      MatchIsTouchscreen &amp;quot;on&amp;quot;&lt;br /&gt;
      MatchProduct &amp;quot;goodix-ts&amp;quot;&lt;br /&gt;
      MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
      MatchDriver &amp;quot;libinput&amp;quot;&lt;br /&gt;
      # Rotate Right / clockwise, 90 degrees &lt;br /&gt;
      Option &amp;quot;CalibrationMatrix&amp;quot; &amp;quot;0 1 0 -1 0 1 0 0 1&amp;quot;&lt;br /&gt;
      # Rotate upside down, 180 degrees&lt;br /&gt;
  #   Option &amp;quot;CalibrationMatrix&amp;quot; &amp;quot;-1 0 1 0 -1 1 0 0 1&amp;quot;&lt;br /&gt;
      # otate counter clockwise, 270 degrees &lt;br /&gt;
  #   Option &amp;quot;CalibrationMatrix&amp;quot; &amp;quot;0 -1 1 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
:For Server image, you can change the framebuffer rotation in two ways:&lt;br /&gt;
&lt;br /&gt;
:1. Sysfs dynamically change.&lt;br /&gt;
&lt;br /&gt;
  echo 0 &amp;gt; /sys/class/graphics/fbcon/rotate    //origin 0 degree&lt;br /&gt;
  echo 1 &amp;gt; /sys/class/graphics/fbcon/rotate    //90 degree&lt;br /&gt;
  echo 2 &amp;gt; /sys/class/graphics/fbcon/rotate    //180 degree&lt;br /&gt;
  echo 3 &amp;gt; /sys/class/graphics/fbcon/rotate    //270 degree&lt;br /&gt;
&lt;br /&gt;
:2. Boot Configuration change.&lt;br /&gt;
:change the fb_rotate env in /boot/env.txt&lt;br /&gt;
&lt;br /&gt;
  # Framebuffer Rotate&lt;br /&gt;
  # 0 - origin 0 degree&lt;br /&gt;
  # 1 - 90 degree&lt;br /&gt;
  # 2 - 180 degree&lt;br /&gt;
  # 3 - 270 degree&lt;br /&gt;
  fb_rotate=0&lt;br /&gt;
&lt;br /&gt;
===Enable Wifi and BT===&lt;br /&gt;
:CM4 has onboard wifi/bt RTL8822CS, and is not enabled in default image, you can enable it with the following procedure.&lt;br /&gt;
&lt;br /&gt;
:1. Add the wifi module name to /etc/modules for loaded automatically next boot.&lt;br /&gt;
  # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
  # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
  88x2cs&lt;br /&gt;
&lt;br /&gt;
:2. Install bluetooth packages for server images&lt;br /&gt;
  $ sudo apt update&lt;br /&gt;
  $ sudo apt install bluez rfkill&lt;br /&gt;
  $ bluetoothctl&lt;br /&gt;
&lt;br /&gt;
:3. Reboot system&lt;br /&gt;
&lt;br /&gt;
===Wifi client===&lt;br /&gt;
  $ ip link set wlan0 up&lt;br /&gt;
  // if &amp;quot;RTNETLINK answers: Operation not possible due to RF-kill&amp;quot; occurs, enter &amp;quot;rfkill unblock wifi&amp;quot; and try set wlan0 up again.&lt;br /&gt;
  $ iw dev wlan0 scan | grep SSID&lt;br /&gt;
  $ vim /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
  network={&lt;br /&gt;
  ssid=&amp;quot;&amp;quot; //device name&lt;br /&gt;
  psk=&amp;quot;&amp;quot;  //password&lt;br /&gt;
  priority=1&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  $ wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
  $ dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
: Note: This WiringPi only support set 26pins gpio to output, input, pwm or software pwm, for io functions as i2c, spi, ..., you must enable dtb overlay in boot.ini&lt;br /&gt;
&lt;br /&gt;
:1. Build and install wiringPi&lt;br /&gt;
  $ git clone https://github.com/Dangku/amlogic-wiringPi&lt;br /&gt;
  $ cd amlogic-wiringPi&lt;br /&gt;
  $ chmod a+x build&lt;br /&gt;
  $ sudo ./build&lt;br /&gt;
&lt;br /&gt;
:2. Run '''gpio readall''' to show all 26pins status.&lt;br /&gt;
[[File:cm4_wiringpi.png]]&lt;br /&gt;
&lt;br /&gt;
:3. BPI GPIO Extend board and examples in [https://github.com/Dangku/amlogic-wiringPi/tree/master/examples amlogic-wiringPi/examples]&lt;br /&gt;
&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/blinkall.c blinkall], blink all pin header gpios, no extend board.&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/lcd-bpi.c lcd1602-pi], [http://wiki.banana-pi.org/BPI_LCD_1602_display_module BPI LCD 1602 display module] example.&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/52pi-bpi.c 52pi-bpi], [http://wiki.banana-pi.org/BPI_OLED_Display_Module BPI OLED Display Module] example.&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/matrixled-bpi.c matrixled-bpi], [http://wiki.banana-pi.org/BPI_RGB_LED_Matrix_Expansion_Module BPI RGB LED Matrix Expansion Module] example.&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/berryclip-bpi.c berryclip-bpi], [http://wiki.banana-pi.org/BPI_BerryClip_Module BPI BerryClip Module]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get Install build-essential python python-dev python-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python setup.py clean --all&lt;br /&gt;
  $ sudo python setup.py build install&lt;br /&gt;
&lt;br /&gt;
===WiringPi2-Python===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get Install python python-dev python-setuptools swig git&lt;br /&gt;
  $ git clone --recursive  https://github.com/Dangku/WiringPi2-Python-Amlogic.git&lt;br /&gt;
  $ cd WiringPi2-Python-Amlogic&lt;br /&gt;
  $ sudo python setup.py install&lt;br /&gt;
&lt;br /&gt;
===Custom Linux Boot Logo===&lt;br /&gt;
:Linux uboot limit boot logo fb size to 1080p60hz/1920x1080 default, so oversize resolution will not be supported by default image, but you can modify uboot source code to support it.&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
:2. copy the target file to /boot/firmware/ or /boot/ directory.&lt;br /&gt;
&lt;br /&gt;
===EC20 LTE 4G Module===&lt;br /&gt;
:1. AT test&lt;br /&gt;
:After the module is connected and Linux OS bootup. several ttyUSB* device files are created in the directory /dev. For EC20, /dev/ttyUSB2 is the AT port.&lt;br /&gt;
&lt;br /&gt;
:2. Connect Network via qmi_wwan on Ubuntu Desktop&lt;br /&gt;
&lt;br /&gt;
:Click edit connections in network manager menu&lt;br /&gt;
:[[File:ec20_desktop_0.png]]&lt;br /&gt;
&lt;br /&gt;
:Add a new mobile broadband connection&lt;br /&gt;
:[[File:ec20_desktop_1.png]]&lt;br /&gt;
&lt;br /&gt;
:Choose qmi channel device&lt;br /&gt;
::When the qmi_wwan_q driver has been installed in the module, a network device and a QMI channel are created. The network device is named as wwanX and the QMI channel is /dev/cdc-wdmX. The network device is used for data transmission, and QMI channel is used for QMI message interaction&lt;br /&gt;
:[[File:ec20_desktop_2.png]]&lt;br /&gt;
&lt;br /&gt;
:Choose carrier provider's country region&lt;br /&gt;
:[[File:ec20_desktop_3.png]]&lt;br /&gt;
&lt;br /&gt;
:Choose carrier provider.&lt;br /&gt;
:[[File:ec20_desktop_4.png]]&lt;br /&gt;
:[[File:ec20_desktop_5.png]]&lt;br /&gt;
:Set connection name, carrier connection username/password and APN if needed.&lt;br /&gt;
:[[File:ec20_desktop_6.png]]&lt;br /&gt;
&lt;br /&gt;
:Setup finished, now you can connect it.&lt;br /&gt;
:[[File:ec20_desktop_7.png]]&lt;br /&gt;
&lt;br /&gt;
:3. Connect Network via pppd on Ubuntu&amp;amp;Debian Server&lt;br /&gt;
&lt;br /&gt;
:Install pppd&lt;br /&gt;
  $ sudo apt install ipppd&lt;br /&gt;
&lt;br /&gt;
:Change AT device, username and password to your local carrier in /etc/ppp/peers/quectel-ppp&lt;br /&gt;
:[[File:ec20_server_pppd_uname.png]]&lt;br /&gt;
&lt;br /&gt;
:Change APN to your local carrier in /etc/ppp/peers/quectel-chat-connect&lt;br /&gt;
:[[File:ec20_server_pppd_apn.png]]&lt;br /&gt;
&lt;br /&gt;
: Two ways command to start pppd, you can check the process of PPP calling setup log [https://github.com/Dangku/readme/blob/master/cm4/ec20_pppd.log here].&lt;br /&gt;
  # pppd call quectel-ppp &amp;amp;&lt;br /&gt;
::or&lt;br /&gt;
  # quectel-pppd.sh /dev/ttyUSB2 &amp;lt;apn&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Terminate pppd process:&lt;br /&gt;
  # quectel-ppp-kill&lt;br /&gt;
&lt;br /&gt;
:4. Connect Network via qmi_wwan on Ubuntu&amp;amp;Debian Server&lt;br /&gt;
&lt;br /&gt;
:[quectel-CM] is a connection manager program for you to set up data connection manually. You can check the process of qmi_wwan calling setup log [https://github.com/Dangku/readme/blob/master/cm4/ec20_qmiwwan.log here].&lt;br /&gt;
&lt;br /&gt;
  # quectel-CM &amp;amp;&lt;br /&gt;
&lt;br /&gt;
:Terminate quectel-CM process:&lt;br /&gt;
&lt;br /&gt;
  # killall quectel-CM&lt;br /&gt;
&lt;br /&gt;
===Boot Linux from SSD===&lt;br /&gt;
:A311d soc rom and  [https://github.com/BPI-SINOVOIP/BPI-M2S-bsp BPI-M2S-bsp] uboot are both not support nvme boot, so the only way for booting linux from SSD is create a bootable sdcard or emmc with bootloader and boot partition flashed, then load rootfs from SSD. After bootup, everything will run from SSD. You need a minipcie to nvme adapter board because bananapi cm4io has a minipcie slot onboard.&lt;br /&gt;
&lt;br /&gt;
:1. The simple way is [https://wiki.banana-pi.org/Getting_Started_with_CM4#Install_Image_to_SDcard flash the CM4 Linux image to sdcard or emmc] for bootable and also flash it to the nvme ssd for loading rootfs.&lt;br /&gt;
:2. Bootup the CM4 board with [https://wiki.banana-pi.org/Getting_Started_with_CM4#Boot_Sequence sdcard or emmc], modify /boot/boot.ini to load rootfs from nvme partition for kernel.&lt;br /&gt;
  diff a/boot/boot.ini b/boot/boot.ini&lt;br /&gt;
  index 2222e79..c485067 100755&lt;br /&gt;
  --- a/boot/boot.ini&lt;br /&gt;
  +++ b/boot/boot.ini&lt;br /&gt;
  @@ -20,6 +20,8 @@ fi;&lt;br /&gt;
 &lt;br /&gt;
   if test &amp;quot;${devtype}&amp;quot; = &amp;quot;usb&amp;quot;; then setenv rootfsdev &amp;quot;/dev/sda2&amp;quot;; fi&lt;br /&gt;
 &lt;br /&gt;
  +# force set root=/dev/nvme0n1p2&lt;br /&gt;
  +setenv rootfsdev &amp;quot;/dev/nvme0n1p2&amp;quot;&lt;br /&gt;
  +&lt;br /&gt;
   # Load env.txt&lt;br /&gt;
   fatload ${devtype} ${devno}:1 ${env_loadaddr} env.txt&lt;br /&gt;
   env import -t ${env_loadaddr} ${filesize};&lt;br /&gt;
:3. Reboot the system, kernel will load rootfs from nvme ssd.&lt;br /&gt;
:[[File:cm4_ssd_rootfs.png]]&lt;br /&gt;
&lt;br /&gt;
:4. Test performance&lt;br /&gt;
:You can verify the performance of your SSD on Pi Benchmarks using the following command:&lt;br /&gt;
  sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash&lt;br /&gt;
&lt;br /&gt;
:Test results for sd, emmc and nvme ssd (Samsung 970EVOPlus)&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Category || Test || Sdcard Test Result || Emmc Test Result || Nvme SSD Test Result&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Disk Read || 60.67 MB/s || 148.80 MB/s || 351.29 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Cached Disk Read || 56.71 MB/s || 141.02 MB/s || 347.03 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| DD || Disk Write || 14 MB/s || 51.0 MB/s || 244 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random read || 2176 IOPS (8704 KB/s) || 8438 IOPS (33753 KB/s) || 101386 IOPS (405544 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random write || 932 IOPS (3729 KB/s) || 10876 IOPS (43505 KB/s) || 43206 IOPS (172827 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k read || 8586 KB/s || 20311 KB/s || 119475 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k write || 2385 KB/s || 19016 KB/s || 90619 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random read || 6734 KB/s || 20807 KB/s || 51517 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random write || 3737 KB/s || 22731 KB/s || 95139 KB/s&lt;br /&gt;
|-&lt;br /&gt;
|  ||  || Score: 1076 || Score: 5446 || Score: 24550&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Disable SDcard UHS  mode===&lt;br /&gt;
:Add disableuhs option to kernel bootargs in /boot/env.txt to disable sdcard uhs capability&lt;br /&gt;
&lt;br /&gt;
  # User kernel args&lt;br /&gt;
  # Add customer kernel args here&lt;br /&gt;
  user_kernel_args=pci=pcie_bus_safe disableuhs&lt;br /&gt;
&lt;br /&gt;
==Other Development==&lt;br /&gt;
&lt;br /&gt;
===Boot Sequence===&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_boot_squence.png]]&lt;br /&gt;
&lt;br /&gt;
:Check bootloader loaded from SDcard or EMMC at the beginning of the console debug messages&lt;br /&gt;
&lt;br /&gt;
:1. Rom load bootloader from SDcard (Linux log example)&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  BL2 Built : 15:21:42, Mar 26 2020. g12a g486bc38 - gongwei.chen@droid11-sz&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from SD''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  fastboot data verify&lt;br /&gt;
  result: 255&lt;br /&gt;
  Cfg max: 12, cur: 1. Board id: 255. Force loop cfg&lt;br /&gt;
  DDR4 probe&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:2. Rom load bootloader from EMMC(Android Log example)&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  eMMC boot @ 0&lt;br /&gt;
  sw8 s&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from eMMC''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  00000000&lt;br /&gt;
  emmc switch 1 ok&lt;br /&gt;
  ddr saved addr:00016000&lt;br /&gt;
  Load ddr parameter from eMMC, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000, part: 0&lt;br /&gt;
  00000000&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
===Erase EMMC for SDcard Bootup===&lt;br /&gt;
:There are four possible scenarios should be pay attention to, EMMC already flashed Android image, EMMC already flashed Linux image, boot process hangup in BL2 and EMMC empty.&lt;br /&gt;
&lt;br /&gt;
:1. Bootable EMMC with Android image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using usb burning tool, unplug the type-c usb cable while the download process at '''7% formatting'''&lt;br /&gt;
&lt;br /&gt;
::[[File:m5_android_format.png]]&lt;br /&gt;
&lt;br /&gt;
::b). Using Android Fastboot tool, make sure the adb/fastboot tools is work on your PC before doing this.&lt;br /&gt;
&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb root'''&lt;br /&gt;
    adbd is already running as root&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb remount'''&lt;br /&gt;
    remount succeeded&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb shell'''&lt;br /&gt;
    bananapi_m2s:/ # '''reboot fastboot'''&lt;br /&gt;
::Wait a few seconds for board reboot to fastboot mode&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot devices'''&lt;br /&gt;
    1234567890	fastboot&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock_critical'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.044s]&lt;br /&gt;
    finished. total time: 0.044s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.047s]&lt;br /&gt;
    finished. total time: 0.047s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader'''&lt;br /&gt;
    erasing 'bootloader'...&lt;br /&gt;
    OKAY [  0.059s]&lt;br /&gt;
    finished. total time: 0.059s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot0'''&lt;br /&gt;
    erasing 'bootloader-boot0'...&lt;br /&gt;
    OKAY [  0.036s]&lt;br /&gt;
    finished. total time: 0.036s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot1'''&lt;br /&gt;
    erasing 'bootloader-boot1'...&lt;br /&gt;
    OKAY [  0.035s]&lt;br /&gt;
    finished. total time: 0.035s&lt;br /&gt;
&lt;br /&gt;
::c). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m2s_v1#'''amlmmc erase 1'''&lt;br /&gt;
    emmckey_is_protected(): protect&lt;br /&gt;
    start = 0,end = 57343&lt;br /&gt;
    start = 221184,end = 30535679&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot0&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot1&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    bananapi_m2s_v1#'''reset'''&lt;br /&gt;
    resetting ...&lt;br /&gt;
    SM1:BL:511f6b:81ca2f;FEAT:A0F83180:20282000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK;&lt;br /&gt;
&lt;br /&gt;
::These two ways actually erase the bootloader part of EMMC android, After bootup from SDcard Linux, You'd better [http://wiki.banana-pi.org/Getting_Started_with_BPI-M2S#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command].&lt;br /&gt;
&lt;br /&gt;
::d). The simplest way is insert the SDcard with Linux image flashed before power on, the Android bootloader will check boot.ini file whether exist in SDcard vfat partition, so that the SDcard Linux will bootup. After bootup, you can [http://wiki.banana-pi.org/Getting_Started_with_BPI-M2S#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command] and then flash the Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
    BPI: try boot from sdcard&lt;br /&gt;
    reading boot.ini&lt;br /&gt;
    2453 bytes read in 3 ms (797.9 KiB/s)&lt;br /&gt;
    ## Executing script at 03080000&lt;br /&gt;
    Starting boot.ini...&lt;br /&gt;
    reading env.txt&lt;br /&gt;
    3483 bytes read in 7 ms (485.4 KiB/s)&lt;br /&gt;
    HDMI: Autodetect: 1080p60hz&lt;br /&gt;
    reading Image.gz&lt;br /&gt;
    10924573 bytes read in 611 ms (17.1 MiB/s)&lt;br /&gt;
    reading bananapi_m2s.dtb&lt;br /&gt;
    88054 bytes read in 12 ms (7 MiB/s)&lt;br /&gt;
    reading uInitrd&lt;br /&gt;
    11704481 bytes read in 655 ms (17 MiB/s)&lt;br /&gt;
    reading overlays/wifi_bt_rtl8822cs.dtbo&lt;br /&gt;
    729 bytes read in 6 ms (118.2 KiB/s)&lt;br /&gt;
&lt;br /&gt;
:2. Bootable EMMC with Linux image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m2s# mmc erase 0 1000&lt;br /&gt;
&lt;br /&gt;
::b). Linux u-boot also check boot.ini file whether exist in SDcard vfat partition so that the SDcard Linux will bootup. After bootup, you can format the whole EMMC by dd command or flash the Linux image directly to EMMC.&lt;br /&gt;
&lt;br /&gt;
:3. A '''extreme situation''' is bootloader or uboot corrupted, Rom load it from EMMC but hangup in u-boot or BL2, for example the boot process will hangup in BL2 of EMMC if dram init failed,  The only way is format the EMMC with usb burning tool, or download the Android image completely and then try other ways to erase EMMC or flash Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
:4. Rom will try to load bootloader from SDcard directly if EMMC is empty.&lt;br /&gt;
&lt;br /&gt;
===Erase Emmc Android by dd command===&lt;br /&gt;
:If the board is flashed android before, the whole emmc must be erased by these commands if you want bootup it with SDcard Linux image.&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1M status=noxfer &lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1M status=noxfer&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M status=noxfer &lt;br /&gt;
  $ sync&lt;br /&gt;
&lt;br /&gt;
===Cloud-init&amp;amp;Snap===&lt;br /&gt;
:Cloud-init and Snap service are enabled default, you can disable or remove them.&lt;br /&gt;
&lt;br /&gt;
:1. disable or remove cloud-init&lt;br /&gt;
  $ sudo touch /etc/cloud/cloud-init.disabled&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo apt purge cloud-init&lt;br /&gt;
&lt;br /&gt;
:2. disable or remove snap&lt;br /&gt;
  $ sudo apt purge snapd&lt;br /&gt;
&lt;br /&gt;
===Enable rc-local===&lt;br /&gt;
:The systemd service rc-local.service already exists in release image, but there is no [Install] part in the unit file. As a result, Systemd is unable to enable it. First, we must update the file.&lt;br /&gt;
&lt;br /&gt;
  $ sudo nano /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=/etc/rc.local Compatibility&lt;br /&gt;
  Documentation=man:systemd-rc-local-generator(8)&lt;br /&gt;
  ConditionFileIsExecutable=/etc/rc.local&lt;br /&gt;
  After=network.target&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Type=forking&lt;br /&gt;
  ExecStart=/etc/rc.local start&lt;br /&gt;
  TimeoutSec=0&lt;br /&gt;
  RemainAfterExit=yes&lt;br /&gt;
  GuessMainPID=no&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=multi-user.target&lt;br /&gt;
  Alias=rc-local.service&lt;br /&gt;
&lt;br /&gt;
:Create /etc/rc.local file.&lt;br /&gt;
&lt;br /&gt;
  sudo nano /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  #&lt;br /&gt;
  # rc.local&lt;br /&gt;
  #&lt;br /&gt;
  # This script is executed at the end of each multiuser runlevel.&lt;br /&gt;
  # Make sure that the script will &amp;quot;exit 0&amp;quot; on success or any other&lt;br /&gt;
  # value on error.&lt;br /&gt;
  #&lt;br /&gt;
  # In order to enable or disable this script just change the execution&lt;br /&gt;
  # bits.&lt;br /&gt;
  #&lt;br /&gt;
  # By default this script does nothing.&lt;br /&gt;
  &lt;br /&gt;
  exit 0&lt;br /&gt;
&lt;br /&gt;
:Add executable permission to /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
:Enable rc-local.service and reboot&lt;br /&gt;
&lt;br /&gt;
  $ sudo systemctl enable rc-local.service&lt;br /&gt;
  $ sudo reboot&lt;br /&gt;
&lt;br /&gt;
===Enable sudo for Debian===&lt;br /&gt;
:The release Debian image do not install sudo default, with &amp;quot;su -&amp;quot; command, user can change to root. If you like sudo, you can install it.&lt;br /&gt;
&lt;br /&gt;
  $ su -&lt;br /&gt;
  Password:(enter bananapi)&lt;br /&gt;
  &lt;br /&gt;
  # apt install sudo&lt;br /&gt;
  # adduser pi sudo&lt;br /&gt;
&lt;br /&gt;
: Then please do logout and login again&lt;br /&gt;
&lt;br /&gt;
===Install Docker Engine===&lt;br /&gt;
:Install Docker Engine on Ubuntu 20.04 Server&lt;br /&gt;
  &lt;br /&gt;
:1. Set up the repository&lt;br /&gt;
&lt;br /&gt;
:Update the apt package index and install packages to allow apt to use a repository over HTTPS:&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
:Add Docker’s official GPG key:&lt;br /&gt;
  $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
:Set up the stable repository&lt;br /&gt;
  $  echo \&lt;br /&gt;
     &amp;quot;deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \&lt;br /&gt;
     $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
:2. Install Docker Engine&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install docker-ce docker-ce-cli containerd.io&lt;br /&gt;
&lt;br /&gt;
:3. Verify the Docker Engine is installed correctly by running the hello-world image.&lt;br /&gt;
  $ sudo docker run hello-world&lt;br /&gt;
&lt;br /&gt;
:[[File:docker-test.png]]&lt;br /&gt;
&lt;br /&gt;
Install docker with a simple command&lt;br /&gt;
&lt;br /&gt;
  $ curl -sSL get.docker.com | sudo sh&lt;br /&gt;
&lt;br /&gt;
[https://docs.docker.com/engine/install/ Install Docker Engine] on other Linux distributions&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_CM4&amp;diff=13803</id>
		<title>Getting Started with CM4</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_CM4&amp;diff=13803"/>
				<updated>2023-02-17T09:50:02Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Enable Wifi and BT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
BananaPi BPI-CM4 new design with Amlogic A311D Quad core ARM Cortex-A73 and dual core ARM Cortex-A53 CPU ,ARM G52 MP4(6EE) GPU,NPU for AI at 5.0 TOPS, support Camera and MIPI-CSI interface ,HDMI output,2 Gigabit port . 4G RAM and 16 GB eMMC flash.&lt;br /&gt;
&lt;br /&gt;
[[Banana Pi BPI-CM4]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Prepare==&lt;br /&gt;
:1. Prepare a usb-serial cable, a 5V/3A adaptor type-c power supply. The serial cable is used for console debug and type-c cable is used for android image download and ADB debug.&lt;br /&gt;
:2. Prepare a SDcard at least 8GB for linux development, android only support emmc boot.&lt;br /&gt;
:3. The SOC rom first boot media is emmc, so board can't bootup from SDcard if the emmc is bootable with any image flashed, more info please refer to board [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence].&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download and install the [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Fimage_download_tools%2Faml_usb_burning_tool_V2_setup_v2.2.3.3.zip AML Usb Burning Tool] for android image download via type-c, only support windows.&lt;br /&gt;
:2. Download the latest [https://wiki.banana-pi.org/Banana_Pi_BPI-CM4#Android android image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Usb Burning Tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open USB_Burning_Tool.exe, select menu File-&amp;gt;Import image, choose the android image file aml_upgrade_package.img.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_android_install_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Short the usb boot test point on the main board, plugin type-c usb cable to PC or press the RST button if power adapter already connected, about two seconds later,  the board will enter usb download mode and be identified correctly by PC. You can also enter usb download mode with adb command &amp;quot;adb reboot update&amp;quot; or console command &amp;quot;reboot update&amp;quot; if a bootable android already flashed, make sure typec usb connected to PC before doing this. &lt;br /&gt;
:[[File:cm4_usb_download.jpg]]&lt;br /&gt;
:[[File:m2s_android_install_3.png]]&lt;br /&gt;
:[[File:m2s_android_install_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:3. Click the Start button of the download tool and wait for upgrade complete.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_android_install_4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:4. After Burning successfull, Unplug the type-c usb and connect to power supply adaptor to startup.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_android_install_5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:5. Click the Stop button to cancel the upgrade process and close the USB Buring Tool.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Aml Flash Tool===&lt;br /&gt;
:[https://github.com/Dangku/aml-flash-tool aml-flash-tool] is a linux platform opensource image flash util for Amlogic android.&lt;br /&gt;
&lt;br /&gt;
  $ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_flash.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
:1. Get Android 9.0 source code&lt;br /&gt;
&lt;br /&gt;
  $ https://github.com/BPI-SINOVOIP/BPI-A311D-Android9&lt;br /&gt;
&lt;br /&gt;
:2. Build the Android 9.0 Source code&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-A311D-Android9/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Android DTB overlay===&lt;br /&gt;
&lt;br /&gt;
:Bananapi CM4 DTBO idx value table, default idx value is 0 in release image.&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;4&amp;quot;| '''Bananapi CM4 DTBO idx value table'''&lt;br /&gt;
|-&lt;br /&gt;
|idx value|| device tree overlay || description&lt;br /&gt;
|-&lt;br /&gt;
| 0|| android_p_overlay|| default dtbo, no use&lt;br /&gt;
|-&lt;br /&gt;
| 1|| wifi_bt_rtl8822cs|| enable bpi rtl8822cs wifi/bt module&lt;br /&gt;
|-&lt;br /&gt;
| 2|| i2c1|| enable i2c 1&lt;br /&gt;
|-&lt;br /&gt;
| 3|| i2c2|| enable i2c 2&lt;br /&gt;
|-&lt;br /&gt;
| 4|| sdio|| enable sdio&lt;br /&gt;
|-&lt;br /&gt;
| 5|| uart1|| enable 2 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 6|| uart1_cts_rts|| enable 4 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 7|| uart2|| enable 2 pins uart 2&lt;br /&gt;
|-&lt;br /&gt;
| 8|| hifi_pcm5122|| enable i2s [https://shumeipai.nxez.com/hifidac-hat-for-raspberry-pi pcm5122 HiFi DAC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:'''How to apply a new dtbo'''&lt;br /&gt;
&lt;br /&gt;
:1. ADB command via sysfs&lt;br /&gt;
&lt;br /&gt;
  root@dangku-desktop:/tmp# adb root&lt;br /&gt;
  restarting adbd as root&lt;br /&gt;
  root@dangku-desktop:/tmp# adb remount&lt;br /&gt;
  remount succeeded&lt;br /&gt;
  root@dangku-desktop:/tmp# adb shell&lt;br /&gt;
  bananapi_m2s:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                                                &lt;br /&gt;
  bananapi_m2s:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                                                &lt;br /&gt;
  bananapi_m2s:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:2. Uart console command via sysfs&lt;br /&gt;
&lt;br /&gt;
  console:/ $ &lt;br /&gt;
  console:/ $ su&lt;br /&gt;
  console:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                              &lt;br /&gt;
  [  115.702781@0] unifykey: name_store() 1302, name dtbo, 4&lt;br /&gt;
  [  115.702856@0] unifykey: name_store() 1311&lt;br /&gt;
  console:/ #&lt;br /&gt;
  console:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                              &lt;br /&gt;
  [  129.262659@0] unifykey: write_store()  is a string&lt;br /&gt;
  [  129.262733@0] unifykey: dtbo, 1, 1&lt;br /&gt;
  [  129.265312@0] unifykey: amlkey_write 393&lt;br /&gt;
  [  129.292347@1] emmc_key_write:149, write ok&lt;br /&gt;
  console:/ # &lt;br /&gt;
  console:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:3. Settings App(To-Do)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Check the bootup uart debug message and confirm which dtbo is loaded actually, here &amp;quot;1&amp;quot; means set idx=1 to apply wifi_bt_rtl8822cs dtbo.&lt;br /&gt;
&lt;br /&gt;
  load dtb from 0x1000000 ......&lt;br /&gt;
        Amlogic multi-dtb tool&lt;br /&gt;
        Single dtb detected&lt;br /&gt;
  find 2 dtbos&lt;br /&gt;
  dtbos to be applied: 1&lt;br /&gt;
  Apply dtbo 1&lt;br /&gt;
&lt;br /&gt;
:Unifykeys is stored in a specific emmc part, &amp;quot;Normal erase&amp;quot; selected in USB_Burning_Tool will not erase this data for next update, you must select &amp;quot;Erase all&amp;quot; if you want the default dtbo idx to be applied after image download.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_android_erase_all.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Build Android image with a specific DTBO default'''.&lt;br /&gt;
&lt;br /&gt;
:1. Default build-in overlays are defined in device/bananapi/bananapi_m2s/Kernel.mk, you can add a new overlay dtbo here.&lt;br /&gt;
  DTBO_DEVICETREE := android_p_overlay wifi_bt_rtl8822cs i2c1 i2c2 sdio uart1 uart1_cts_rts uart2 hifi_pcm5122&lt;br /&gt;
&lt;br /&gt;
:2. Default apply DTBO idx is defined in device/bananapi/bananapi_m2s/BoardConfig.mk, you can change the idx value to set which overlay dtbo will be applied default.&lt;br /&gt;
  BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=0&lt;br /&gt;
&lt;br /&gt;
:3. DTS files are in common/arch/arm64/boot/dts/amlogic/overlay/bananapi_m2s/&lt;br /&gt;
&lt;br /&gt;
:More info about android device tree overlays, please refer to [https://source.android.com/devices/architecture/dto google android offical site]&lt;br /&gt;
&lt;br /&gt;
===Install OpenGapps===&lt;br /&gt;
&lt;br /&gt;
:1. Download install package from [https://opengapps.org/ OpenGapps], Android release image is arm/android 9.0 variant.&lt;br /&gt;
&lt;br /&gt;
[[File:opengapps.PNG]]&lt;br /&gt;
&lt;br /&gt;
:2. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fapps%2Fdevice_id_v1.3.2.apk device_id.apk].&lt;br /&gt;
:3. Copy the OpenGapp package to a udisk or sdcard root directory.&lt;br /&gt;
:4. Create a txt file named '''factory_update_param.aml''' in udisk or sdcard root directory with the following android recovery parameter content, and replace the file name with the actual downloaded package.  &lt;br /&gt;
::udisk:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/udisk/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
::sdcard:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/sdcard/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
:5. Plugin the udisk or sdcard to the board and poweron.&lt;br /&gt;
&lt;br /&gt;
:6.OpenGapps install and certify.&lt;br /&gt;
:&amp;lt;youtube&amp;gt;fXOKmWfpqF8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
:watch this video on [https://www.bilibili.com/video/BV13y4y1s77i/ bilibili]&lt;br /&gt;
&lt;br /&gt;
===Switch Mipi Panel===&lt;br /&gt;
:The default android release image only support one mipi panel because hw has no detect logic for different panel at boot, so [800x1280 bpi panel] enabled as default, but you can change to [1200x1920 bpi panel] as defualt in Settings-&amp;gt;Panel Output&lt;br /&gt;
 &lt;br /&gt;
:[[File:m2s_panel_switch.png]]&lt;br /&gt;
&lt;br /&gt;
===Panel Rotation===&lt;br /&gt;
The two 10&amp;quot; mipi panels are all portrait hw display, so the default android release image is portrait mode, but you can rotate it to 90/180/270 in two ways.&lt;br /&gt;
&lt;br /&gt;
:1. UI Rotation in Settings-&amp;gt;Display-&amp;gt;Screen rotation&lt;br /&gt;
:[[File:m2s-rotation.png]]&lt;br /&gt;
&lt;br /&gt;
:2. SurfaceFlinger rotation, need [https://wiki.banana-pi.org/Getting_Started_with_BPI-M2S#Build_Android_Source_Code modify android source code and build]&lt;br /&gt;
:Change the default sf rotation property&lt;br /&gt;
    diff --git a/device/bananapi/bananapi_m2s/bananapi_m2s.mk b/device/bananapi/bananapi_m2s/bananapi_m2s.mk&lt;br /&gt;
    index 1f51703..d592a44 100644&lt;br /&gt;
    --- a/device/bananapi/bananapi_m2s/bananapi_m2s.mk&lt;br /&gt;
    +++ b/device/bananapi/bananapi_m2s/bananapi_m2s.mk&lt;br /&gt;
    @@ -579,6 +579,6 @@ PRODUCT_PROPERTY_OVERRIDES += \&lt;br /&gt;
     else&lt;br /&gt;
     PRODUCT_PROPERTY_OVERRIDES += \&lt;br /&gt;
         ro.sf.lcd_density=213 \&lt;br /&gt;
     -    ro.sf.primary_display_orientation=0&lt;br /&gt;
    +    ro.sf.primary_display_orientation=90&lt;br /&gt;
     endif&lt;br /&gt;
&lt;br /&gt;
:Change the touch panel rotation in dts&lt;br /&gt;
    diff --git a/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts b/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts&lt;br /&gt;
    index 4a698b0..3d41b63 100755&lt;br /&gt;
    --- a/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts&lt;br /&gt;
    +++ b/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts&lt;br /&gt;
    @@ -876,8 +876,8 @@&lt;br /&gt;
                    reg = &amp;lt;0x5d&amp;gt;;&lt;br /&gt;
                    reset-gpio = &amp;lt;&amp;amp;gpio GPIOA_6 GPIO_ACTIVE_HIGH&amp;gt;;&lt;br /&gt;
                    irq-gpio = &amp;lt;&amp;amp;gpio GPIOA_5 GPIO_ACTIVE_HIGH&amp;gt;;&lt;br /&gt;
    -               rotation = &amp;lt;4&amp;gt;; /* sf_rotation 0 */&lt;br /&gt;
    -               //rotation = &amp;lt;0&amp;gt;; /* sf_rotation 90*/&lt;br /&gt;
   +               //rotation = &amp;lt;4&amp;gt;; /* sf_rotation 0 */&lt;br /&gt;
   +               rotation = &amp;lt;0&amp;gt;; /* sf_rotation 90*/&lt;br /&gt;
                    //rotation = &amp;lt;5&amp;gt;; /* sf_rotation 180 */&lt;br /&gt;
                    //rotation = &amp;lt;3&amp;gt;; /* sf_rotation 270 */&lt;br /&gt;
&lt;br /&gt;
===Custom Android Boot Logo===&lt;br /&gt;
:Android bootloader limit boot logo fb display size is 1080p60hz/1920x1080 default, and android kernel dtb partition table limit boot logo partition size to 16MB default .&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 16bit bmp file and named boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:3. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Flogo_create_tools%2Fm2s_android_bootlogo_tool.zip m2s_android_bootlogo_tool.zip]&lt;br /&gt;
&lt;br /&gt;
:4. Extract this tool&lt;br /&gt;
  $ unzip m2s_android_bootlogo_tool.zip&lt;br /&gt;
  $ cd m2s_android_bootlogo_tool/&lt;br /&gt;
  $ ls -l logo/&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup_secondary.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_bar.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_error.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_fail.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_logo.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_success.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_unfocus.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_upgrading.bmp&lt;br /&gt;
&lt;br /&gt;
:5. Copy the boot-logo.bmp.gz&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup.bmp&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup_secondary.bmp&lt;br /&gt;
&lt;br /&gt;
:6. Create target logo.img with img pack tool, the binary and related libs of m2s_android_bootlogo_tool are copy from &amp;lt;android-source-dir&amp;gt;/out/host/linux-x86&lt;br /&gt;
  $ ./logo_img_packer -r logo logo.img&lt;br /&gt;
&lt;br /&gt;
:7. Flash boot logo with fastboot&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb reboot fastboot&lt;br /&gt;
:Wait few seconds and check whether fastboot connected&lt;br /&gt;
  $ fastboot device&lt;br /&gt;
  1234567890      fastboot&lt;br /&gt;
  $ fastboot flashing unlock_critical&lt;br /&gt;
  $ fastboot flashing unlock&lt;br /&gt;
  $ fastboot flash logo logo.img&lt;br /&gt;
  $ fastboot reboot&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 [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. Make sure bootable EMMC is formatted if you want bootup from SDcard, more info refer to [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_EMMC_for_SDcard_Bootup Erase EMMC for SDcard Bootup]&lt;br /&gt;
&lt;br /&gt;
:3. 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;
:4. Install bpi-tools on your Linux PC(if [https://wiki.banana-pi.org/Getting_Started_with_M2S#Install_Image_to_SDcard flash image] with other tools, ignore this step). If you can't access this URL or any other install problem, please go to [https://github.com/bpi-sinovoip/bpi-tools bpi-tools] source repo, download and install this tools manually.&lt;br /&gt;
  $ apt-get install pv&lt;br /&gt;
  $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
&lt;br /&gt;
:5. Download Linux latest [https://wiki.banana-pi.org/Banana_Pi_BPI-CM4#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;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with 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 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-cm4-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:3. Install the linux image in udisk 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-cm4-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to EMMC===&lt;br /&gt;
:1. Prepare a [https://wiki.banana-pi.org/Getting_Started_with_M2S#Install_Image_to_SDcard SDcard with Linux image] flashed and bootup board with this SDcard.&lt;br /&gt;
&lt;br /&gt;
:2. Copy Linux image to udisk, plug the udisk to board and mount it.&lt;br /&gt;
&lt;br /&gt;
:3. Install with dd command, umount mmcblk0p1 and mmcblk0p2 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-cm4-xxx.img.zip | pv | dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install with bpi-tools command&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-cm4-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
:5. After download complete, power off safely and eject the SDcard.&lt;br /&gt;
&lt;br /&gt;
===Build Linux Source Code===&lt;br /&gt;
:1. Get the Linux bsp source code&lt;br /&gt;
  $  git clone https://github.com/BPI-SINOVOIP/BPI-M2S-bsp&lt;br /&gt;
:2. Build the bsp source code&lt;br /&gt;
&lt;br /&gt;
::Please read the source code [https://github.com/BPI-SINOVOIP/BPI-M2S-bsp/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
:3. If you want build uboot and kernel separately, please download the [https://github.com/Dangku/amlogic-u-boot/tree/khadas-g12b-v2015.01-m2s u-boot] the [https://github.com/Dangku/amlogic-linux/tree/khadas-g12b-4.9.y-m2s kernel] only, get the toolchains, boot script and other configuration files from [https://github.com/BPI-SINOVOIP/BPI-M2S-bsp/tree/master/aml-pack/g12b/bpi-m2s/linux BPI-M2S-bsp]&lt;br /&gt;
&lt;br /&gt;
===DTB overlay===&lt;br /&gt;
:1. DTB overlay is used for 40pin gpios multi-function configuration and install in vfat boot partition, you can check the mount point with mount command.&lt;br /&gt;
  root@bananapi:~# ls /boot/overlays/&lt;br /&gt;
  hifi_pcm5122.dtbo  pdmmic.dtbo        sdio.dtbo                 waveshare_tft24_lcd.dtbo&lt;br /&gt;
  i2c1.dtbo          pwm_c-beeper.dtbo    spi0.dtbo                 waveshare_tft35c_lcd.dtbo&lt;br /&gt;
  i2c2.dtbo          pwm_cd-c.dtbo           spi0_flash.dtbo        wifi_bt_rtl8822cs.dtbo&lt;br /&gt;
  i2s.dtbo            pwm_cd.dtbo              uart1_cts_rts.dtbo    i2smic.dtbo    pwm_ef.dtbo &lt;br /&gt;
  uart1.dtbo        os08a10.dtbo              pwm_ef-f.dtbo          uart2.dtbo&lt;br /&gt;
&lt;br /&gt;
:2. Update the overlays env in vfat /boot/env.txt to enable what you want.&lt;br /&gt;
&lt;br /&gt;
  # Device Tree Overlays&lt;br /&gt;
  #   uart1           -- Enable UART1 (uart_A, GPIO Header PIN8 &amp;amp; PIN10)&lt;br /&gt;
  #   pwm_c           -- Enable PWM_C (GPIO Header PIN7)&lt;br /&gt;
  #   i2c2            -- Enable i2c2 (GPIO Header PIN3 &amp;amp; PIN5)&lt;br /&gt;
  #   spi0            -- Enable SPI0 (GPIO Header PIN19 &amp;amp; PIN21 &amp;amp; PIN23 &amp;amp; PIN24)&lt;br /&gt;
  overlays=&amp;quot;i2c2 spi0 uart1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:3. Must be restart the board for overlay dtb loaded.&lt;br /&gt;
&lt;br /&gt;
===Enable Camera===&lt;br /&gt;
:The linux release image is camera disabled default, according to the following configuration, it can be enabled by yourself.&lt;br /&gt;
&lt;br /&gt;
:1. Update the [https://wiki.banana-pi.org/Getting_Started_with_BPI-CM4#DTB_overlay dtb overlays] env in /boot/env.txt to enable camera dtbo.&lt;br /&gt;
&lt;br /&gt;
  overlays=&amp;quot;os08a10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:2. Add camera modules to /etc/modules&lt;br /&gt;
  iv009_isp_iq&lt;br /&gt;
  iv009_isp_lens&lt;br /&gt;
  iv009_isp_sensor&lt;br /&gt;
  iv009_isp&lt;br /&gt;
&lt;br /&gt;
:3. Create and add camera modules options to /etc/modprobe.d/os08a10.conf&lt;br /&gt;
  #choose camera calibration parameters&lt;br /&gt;
  options iv009_isp_iq cali_name=0&lt;br /&gt;
  #choose isp register sequence&lt;br /&gt;
  options iv009_isp_sensor isp_seq_num=0&lt;br /&gt;
&lt;br /&gt;
:4. Enable camera isp systemd service&lt;br /&gt;
  $ sudo systemctl enable camera_isp_3a_server.service&lt;br /&gt;
&lt;br /&gt;
:Camera device is /dev/video0 after reboot.&lt;br /&gt;
&lt;br /&gt;
===Switch Mipi Panel===&lt;br /&gt;
:The default linux release image only support one mipi panel because hw has no detect logic for different panel at boot, so 800x1280 bpi panel enabled as default, but you can change to [1200x1920 bpi panel] as defualt in /boot/lcd_env.txt&lt;br /&gt;
  # Mipi panel type&lt;br /&gt;
  #    Symbol    | Resolution&lt;br /&gt;
  # ----------------------+-------------&lt;br /&gt;
  #    &amp;quot;lcd_0&amp;quot;   | 10&amp;quot; 800x1280 panel&lt;br /&gt;
  #    &amp;quot;lcd_1&amp;quot;   | 10&amp;quot; 1200x1920 panel&lt;br /&gt;
  panel_type=lcd_0&lt;br /&gt;
&lt;br /&gt;
:'''Note''': Dual display is not work on linux, so disconnect hdmi cable when mipi used.&lt;br /&gt;
&lt;br /&gt;
===Panel Rotation===&lt;br /&gt;
:The two 10&amp;quot; mipi panels are all portrait hw display, so the default release image is portrait mode, but you can rotate it to 90/180/270. &lt;br /&gt;
&lt;br /&gt;
:For Desktop image, create a xorg configuration file /usr/share/X11/xorg.conf.d/10-fbdev-rotate.conf with contents:&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Device&amp;quot;&lt;br /&gt;
      Identifier &amp;quot;Configured Video Device&amp;quot;&lt;br /&gt;
      # Rotate off&lt;br /&gt;
  #   Option &amp;quot;Rotate&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
      # Rotate Right / clockwise, 90 degrees&lt;br /&gt;
      Option &amp;quot;Rotate&amp;quot; &amp;quot;CW&amp;quot;&lt;br /&gt;
      # Rotate upside down, 180 degrees&lt;br /&gt;
  #   Option &amp;quot;Rotate&amp;quot; &amp;quot;UD&amp;quot;&lt;br /&gt;
      # Rotate counter clockwise, 270 degrees&lt;br /&gt;
  #   Option &amp;quot;Rotate&amp;quot; &amp;quot;CCW&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  EndSection&lt;br /&gt;
  &lt;br /&gt;
  Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
      Identifier &amp;quot;Coordinate Transformation Matrix&amp;quot;&lt;br /&gt;
      MatchIsTouchscreen &amp;quot;on&amp;quot;&lt;br /&gt;
      MatchProduct &amp;quot;goodix-ts&amp;quot;&lt;br /&gt;
      MatchDevicePath &amp;quot;/dev/input/event0&amp;quot;&lt;br /&gt;
      MatchDriver &amp;quot;libinput&amp;quot;&lt;br /&gt;
      # Rotate Right / clockwise, 90 degrees &lt;br /&gt;
      Option &amp;quot;CalibrationMatrix&amp;quot; &amp;quot;0 1 0 -1 0 1 0 0 1&amp;quot;&lt;br /&gt;
      # Rotate upside down, 180 degrees&lt;br /&gt;
  #   Option &amp;quot;CalibrationMatrix&amp;quot; &amp;quot;-1 0 1 0 -1 1 0 0 1&amp;quot;&lt;br /&gt;
      # otate counter clockwise, 270 degrees &lt;br /&gt;
  #   Option &amp;quot;CalibrationMatrix&amp;quot; &amp;quot;0 -1 1 1 0 0 0 0 1&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
:For Server image, you can change the framebuffer rotation in two ways:&lt;br /&gt;
&lt;br /&gt;
:1. Sysfs dynamically change.&lt;br /&gt;
&lt;br /&gt;
  echo 0 &amp;gt; /sys/class/graphics/fbcon/rotate    //origin 0 degree&lt;br /&gt;
  echo 1 &amp;gt; /sys/class/graphics/fbcon/rotate    //90 degree&lt;br /&gt;
  echo 2 &amp;gt; /sys/class/graphics/fbcon/rotate    //180 degree&lt;br /&gt;
  echo 3 &amp;gt; /sys/class/graphics/fbcon/rotate    //270 degree&lt;br /&gt;
&lt;br /&gt;
:2. Boot Configuration change.&lt;br /&gt;
:change the fb_rotate env in /boot/env.txt&lt;br /&gt;
&lt;br /&gt;
  # Framebuffer Rotate&lt;br /&gt;
  # 0 - origin 0 degree&lt;br /&gt;
  # 1 - 90 degree&lt;br /&gt;
  # 2 - 180 degree&lt;br /&gt;
  # 3 - 270 degree&lt;br /&gt;
  fb_rotate=0&lt;br /&gt;
&lt;br /&gt;
===Enable Wifi and BT===&lt;br /&gt;
:CM4 has onboard wifi/bt RTL8822CS, and is not enabled in default image, you can enable it with the following procedure.&lt;br /&gt;
&lt;br /&gt;
:1. Add the wifi module name to /etc/modules for loaded automatically next boot.&lt;br /&gt;
  # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
  # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
  88x2cs&lt;br /&gt;
&lt;br /&gt;
:2. Install bluetooth packages for server images&lt;br /&gt;
  $ sudo apt update&lt;br /&gt;
  $ sudo apt install bluez rfkill&lt;br /&gt;
  $ bluetoothctl&lt;br /&gt;
&lt;br /&gt;
:3. Reboot system&lt;br /&gt;
&lt;br /&gt;
===Wifi client===&lt;br /&gt;
  $ ip link set wlan0 up&lt;br /&gt;
  $ iw dev wlan0 scan | grep SSID&lt;br /&gt;
  $ vim /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
  network={&lt;br /&gt;
  ssid=&amp;quot;&amp;quot; //device name&lt;br /&gt;
  psk=&amp;quot;&amp;quot;  //password&lt;br /&gt;
  priority=1&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  $ wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
  $ dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
: Note: This WiringPi only support set 26pins gpio to output, input, pwm or software pwm, for io functions as i2c, spi, ..., you must enable dtb overlay in boot.ini&lt;br /&gt;
&lt;br /&gt;
:1. Build and install wiringPi&lt;br /&gt;
  $ git clone https://github.com/Dangku/amlogic-wiringPi&lt;br /&gt;
  $ cd amlogic-wiringPi&lt;br /&gt;
  $ chmod a+x build&lt;br /&gt;
  $ sudo ./build&lt;br /&gt;
&lt;br /&gt;
:2. Run '''gpio readall''' to show all 26pins status.&lt;br /&gt;
[[File:cm4_wiringpi.png]]&lt;br /&gt;
&lt;br /&gt;
:3. BPI GPIO Extend board and examples in [https://github.com/Dangku/amlogic-wiringPi/tree/master/examples amlogic-wiringPi/examples]&lt;br /&gt;
&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/blinkall.c blinkall], blink all pin header gpios, no extend board.&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/lcd-bpi.c lcd1602-pi], [http://wiki.banana-pi.org/BPI_LCD_1602_display_module BPI LCD 1602 display module] example.&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/52pi-bpi.c 52pi-bpi], [http://wiki.banana-pi.org/BPI_OLED_Display_Module BPI OLED Display Module] example.&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/matrixled-bpi.c matrixled-bpi], [http://wiki.banana-pi.org/BPI_RGB_LED_Matrix_Expansion_Module BPI RGB LED Matrix Expansion Module] example.&lt;br /&gt;
:[https://github.com/Dangku/amlogic-wiringPi/blob/master/examples/berryclip-bpi.c berryclip-bpi], [http://wiki.banana-pi.org/BPI_BerryClip_Module BPI BerryClip Module]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get Install build-essential python python-dev python-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python setup.py clean --all&lt;br /&gt;
  $ sudo python setup.py build install&lt;br /&gt;
&lt;br /&gt;
===WiringPi2-Python===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get Install python python-dev python-setuptools swig git&lt;br /&gt;
  $ git clone --recursive  https://github.com/Dangku/WiringPi2-Python-Amlogic.git&lt;br /&gt;
  $ cd WiringPi2-Python-Amlogic&lt;br /&gt;
  $ sudo python setup.py install&lt;br /&gt;
&lt;br /&gt;
===Custom Linux Boot Logo===&lt;br /&gt;
:Linux uboot limit boot logo fb size to 1080p60hz/1920x1080 default, so oversize resolution will not be supported by default image, but you can modify uboot source code to support it.&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
:2. copy the target file to /boot/firmware/ or /boot/ directory.&lt;br /&gt;
&lt;br /&gt;
===EC20 LTE 4G Module===&lt;br /&gt;
:1. AT test&lt;br /&gt;
:After the module is connected and Linux OS bootup. several ttyUSB* device files are created in the directory /dev. For EC20, /dev/ttyUSB2 is the AT port.&lt;br /&gt;
&lt;br /&gt;
:2. Connect Network via qmi_wwan on Ubuntu Desktop&lt;br /&gt;
&lt;br /&gt;
:Click edit connections in network manager menu&lt;br /&gt;
:[[File:ec20_desktop_0.png]]&lt;br /&gt;
&lt;br /&gt;
:Add a new mobile broadband connection&lt;br /&gt;
:[[File:ec20_desktop_1.png]]&lt;br /&gt;
&lt;br /&gt;
:Choose qmi channel device&lt;br /&gt;
::When the qmi_wwan_q driver has been installed in the module, a network device and a QMI channel are created. The network device is named as wwanX and the QMI channel is /dev/cdc-wdmX. The network device is used for data transmission, and QMI channel is used for QMI message interaction&lt;br /&gt;
:[[File:ec20_desktop_2.png]]&lt;br /&gt;
&lt;br /&gt;
:Choose carrier provider's country region&lt;br /&gt;
:[[File:ec20_desktop_3.png]]&lt;br /&gt;
&lt;br /&gt;
:Choose carrier provider.&lt;br /&gt;
:[[File:ec20_desktop_4.png]]&lt;br /&gt;
:[[File:ec20_desktop_5.png]]&lt;br /&gt;
:Set connection name, carrier connection username/password and APN if needed.&lt;br /&gt;
:[[File:ec20_desktop_6.png]]&lt;br /&gt;
&lt;br /&gt;
:Setup finished, now you can connect it.&lt;br /&gt;
:[[File:ec20_desktop_7.png]]&lt;br /&gt;
&lt;br /&gt;
:3. Connect Network via pppd on Ubuntu&amp;amp;Debian Server&lt;br /&gt;
&lt;br /&gt;
:Install pppd&lt;br /&gt;
  $ sudo apt install ipppd&lt;br /&gt;
&lt;br /&gt;
:Change AT device, username and password to your local carrier in /etc/ppp/peers/quectel-ppp&lt;br /&gt;
:[[File:ec20_server_pppd_uname.png]]&lt;br /&gt;
&lt;br /&gt;
:Change APN to your local carrier in /etc/ppp/peers/quectel-chat-connect&lt;br /&gt;
:[[File:ec20_server_pppd_apn.png]]&lt;br /&gt;
&lt;br /&gt;
: Two ways command to start pppd, you can check the process of PPP calling setup log [https://github.com/Dangku/readme/blob/master/cm4/ec20_pppd.log here].&lt;br /&gt;
  # pppd call quectel-ppp &amp;amp;&lt;br /&gt;
::or&lt;br /&gt;
  # quectel-pppd.sh /dev/ttyUSB2 &amp;lt;apn&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Terminate pppd process:&lt;br /&gt;
  # quectel-ppp-kill&lt;br /&gt;
&lt;br /&gt;
:4. Connect Network via qmi_wwan on Ubuntu&amp;amp;Debian Server&lt;br /&gt;
&lt;br /&gt;
:[quectel-CM] is a connection manager program for you to set up data connection manually. You can check the process of qmi_wwan calling setup log [https://github.com/Dangku/readme/blob/master/cm4/ec20_qmiwwan.log here].&lt;br /&gt;
&lt;br /&gt;
  # quectel-CM &amp;amp;&lt;br /&gt;
&lt;br /&gt;
:Terminate quectel-CM process:&lt;br /&gt;
&lt;br /&gt;
  # killall quectel-CM&lt;br /&gt;
&lt;br /&gt;
===Boot Linux from SSD===&lt;br /&gt;
:A311d soc rom and  [https://github.com/BPI-SINOVOIP/BPI-M2S-bsp BPI-M2S-bsp] uboot are both not support nvme boot, so the only way for booting linux from SSD is create a bootable sdcard or emmc with bootloader and boot partition flashed, then load rootfs from SSD. After bootup, everything will run from SSD. You need a minipcie to nvme adapter board because bananapi cm4io has a minipcie slot onboard.&lt;br /&gt;
&lt;br /&gt;
:1. The simple way is [https://wiki.banana-pi.org/Getting_Started_with_CM4#Install_Image_to_SDcard flash the CM4 Linux image to sdcard or emmc] for bootable and also flash it to the nvme ssd for loading rootfs.&lt;br /&gt;
:2. Bootup the CM4 board with [https://wiki.banana-pi.org/Getting_Started_with_CM4#Boot_Sequence sdcard or emmc], modify /boot/boot.ini to load rootfs from nvme partition for kernel.&lt;br /&gt;
  diff a/boot/boot.ini b/boot/boot.ini&lt;br /&gt;
  index 2222e79..c485067 100755&lt;br /&gt;
  --- a/boot/boot.ini&lt;br /&gt;
  +++ b/boot/boot.ini&lt;br /&gt;
  @@ -20,6 +20,8 @@ fi;&lt;br /&gt;
 &lt;br /&gt;
   if test &amp;quot;${devtype}&amp;quot; = &amp;quot;usb&amp;quot;; then setenv rootfsdev &amp;quot;/dev/sda2&amp;quot;; fi&lt;br /&gt;
 &lt;br /&gt;
  +# force set root=/dev/nvme0n1p2&lt;br /&gt;
  +setenv rootfsdev &amp;quot;/dev/nvme0n1p2&amp;quot;&lt;br /&gt;
  +&lt;br /&gt;
   # Load env.txt&lt;br /&gt;
   fatload ${devtype} ${devno}:1 ${env_loadaddr} env.txt&lt;br /&gt;
   env import -t ${env_loadaddr} ${filesize};&lt;br /&gt;
:3. Reboot the system, kernel will load rootfs from nvme ssd.&lt;br /&gt;
:[[File:cm4_ssd_rootfs.png]]&lt;br /&gt;
&lt;br /&gt;
:4. Test performance&lt;br /&gt;
:You can verify the performance of your SSD on Pi Benchmarks using the following command:&lt;br /&gt;
  sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash&lt;br /&gt;
&lt;br /&gt;
:Test results for sd, emmc and nvme ssd (Samsung 970EVOPlus)&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Category || Test || Sdcard Test Result || Emmc Test Result || Nvme SSD Test Result&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Disk Read || 60.67 MB/s || 148.80 MB/s || 351.29 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Cached Disk Read || 56.71 MB/s || 141.02 MB/s || 347.03 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| DD || Disk Write || 14 MB/s || 51.0 MB/s || 244 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random read || 2176 IOPS (8704 KB/s) || 8438 IOPS (33753 KB/s) || 101386 IOPS (405544 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random write || 932 IOPS (3729 KB/s) || 10876 IOPS (43505 KB/s) || 43206 IOPS (172827 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k read || 8586 KB/s || 20311 KB/s || 119475 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k write || 2385 KB/s || 19016 KB/s || 90619 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random read || 6734 KB/s || 20807 KB/s || 51517 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random write || 3737 KB/s || 22731 KB/s || 95139 KB/s&lt;br /&gt;
|-&lt;br /&gt;
|  ||  || Score: 1076 || Score: 5446 || Score: 24550&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Disable SDcard UHS  mode===&lt;br /&gt;
:Add disableuhs option to kernel bootargs in /boot/env.txt to disable sdcard uhs capability&lt;br /&gt;
&lt;br /&gt;
  # User kernel args&lt;br /&gt;
  # Add customer kernel args here&lt;br /&gt;
  user_kernel_args=pci=pcie_bus_safe disableuhs&lt;br /&gt;
&lt;br /&gt;
==Other Development==&lt;br /&gt;
&lt;br /&gt;
===Boot Sequence===&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_boot_squence.png]]&lt;br /&gt;
&lt;br /&gt;
:Check bootloader loaded from SDcard or EMMC at the beginning of the console debug messages&lt;br /&gt;
&lt;br /&gt;
:1. Rom load bootloader from SDcard (Linux log example)&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  BL2 Built : 15:21:42, Mar 26 2020. g12a g486bc38 - gongwei.chen@droid11-sz&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from SD''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  fastboot data verify&lt;br /&gt;
  result: 255&lt;br /&gt;
  Cfg max: 12, cur: 1. Board id: 255. Force loop cfg&lt;br /&gt;
  DDR4 probe&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:2. Rom load bootloader from EMMC(Android Log example)&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  eMMC boot @ 0&lt;br /&gt;
  sw8 s&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from eMMC''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  00000000&lt;br /&gt;
  emmc switch 1 ok&lt;br /&gt;
  ddr saved addr:00016000&lt;br /&gt;
  Load ddr parameter from eMMC, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000, part: 0&lt;br /&gt;
  00000000&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
===Erase EMMC for SDcard Bootup===&lt;br /&gt;
:There are four possible scenarios should be pay attention to, EMMC already flashed Android image, EMMC already flashed Linux image, boot process hangup in BL2 and EMMC empty.&lt;br /&gt;
&lt;br /&gt;
:1. Bootable EMMC with Android image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using usb burning tool, unplug the type-c usb cable while the download process at '''7% formatting'''&lt;br /&gt;
&lt;br /&gt;
::[[File:m5_android_format.png]]&lt;br /&gt;
&lt;br /&gt;
::b). Using Android Fastboot tool, make sure the adb/fastboot tools is work on your PC before doing this.&lt;br /&gt;
&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb root'''&lt;br /&gt;
    adbd is already running as root&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb remount'''&lt;br /&gt;
    remount succeeded&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb shell'''&lt;br /&gt;
    bananapi_m2s:/ # '''reboot fastboot'''&lt;br /&gt;
::Wait a few seconds for board reboot to fastboot mode&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot devices'''&lt;br /&gt;
    1234567890	fastboot&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock_critical'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.044s]&lt;br /&gt;
    finished. total time: 0.044s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.047s]&lt;br /&gt;
    finished. total time: 0.047s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader'''&lt;br /&gt;
    erasing 'bootloader'...&lt;br /&gt;
    OKAY [  0.059s]&lt;br /&gt;
    finished. total time: 0.059s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot0'''&lt;br /&gt;
    erasing 'bootloader-boot0'...&lt;br /&gt;
    OKAY [  0.036s]&lt;br /&gt;
    finished. total time: 0.036s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot1'''&lt;br /&gt;
    erasing 'bootloader-boot1'...&lt;br /&gt;
    OKAY [  0.035s]&lt;br /&gt;
    finished. total time: 0.035s&lt;br /&gt;
&lt;br /&gt;
::c). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m2s_v1#'''amlmmc erase 1'''&lt;br /&gt;
    emmckey_is_protected(): protect&lt;br /&gt;
    start = 0,end = 57343&lt;br /&gt;
    start = 221184,end = 30535679&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot0&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot1&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    bananapi_m2s_v1#'''reset'''&lt;br /&gt;
    resetting ...&lt;br /&gt;
    SM1:BL:511f6b:81ca2f;FEAT:A0F83180:20282000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK;&lt;br /&gt;
&lt;br /&gt;
::These two ways actually erase the bootloader part of EMMC android, After bootup from SDcard Linux, You'd better [http://wiki.banana-pi.org/Getting_Started_with_BPI-M2S#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command].&lt;br /&gt;
&lt;br /&gt;
::d). The simplest way is insert the SDcard with Linux image flashed before power on, the Android bootloader will check boot.ini file whether exist in SDcard vfat partition, so that the SDcard Linux will bootup. After bootup, you can [http://wiki.banana-pi.org/Getting_Started_with_BPI-M2S#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command] and then flash the Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
    BPI: try boot from sdcard&lt;br /&gt;
    reading boot.ini&lt;br /&gt;
    2453 bytes read in 3 ms (797.9 KiB/s)&lt;br /&gt;
    ## Executing script at 03080000&lt;br /&gt;
    Starting boot.ini...&lt;br /&gt;
    reading env.txt&lt;br /&gt;
    3483 bytes read in 7 ms (485.4 KiB/s)&lt;br /&gt;
    HDMI: Autodetect: 1080p60hz&lt;br /&gt;
    reading Image.gz&lt;br /&gt;
    10924573 bytes read in 611 ms (17.1 MiB/s)&lt;br /&gt;
    reading bananapi_m2s.dtb&lt;br /&gt;
    88054 bytes read in 12 ms (7 MiB/s)&lt;br /&gt;
    reading uInitrd&lt;br /&gt;
    11704481 bytes read in 655 ms (17 MiB/s)&lt;br /&gt;
    reading overlays/wifi_bt_rtl8822cs.dtbo&lt;br /&gt;
    729 bytes read in 6 ms (118.2 KiB/s)&lt;br /&gt;
&lt;br /&gt;
:2. Bootable EMMC with Linux image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m2s# mmc erase 0 1000&lt;br /&gt;
&lt;br /&gt;
::b). Linux u-boot also check boot.ini file whether exist in SDcard vfat partition so that the SDcard Linux will bootup. After bootup, you can format the whole EMMC by dd command or flash the Linux image directly to EMMC.&lt;br /&gt;
&lt;br /&gt;
:3. A '''extreme situation''' is bootloader or uboot corrupted, Rom load it from EMMC but hangup in u-boot or BL2, for example the boot process will hangup in BL2 of EMMC if dram init failed,  The only way is format the EMMC with usb burning tool, or download the Android image completely and then try other ways to erase EMMC or flash Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
:4. Rom will try to load bootloader from SDcard directly if EMMC is empty.&lt;br /&gt;
&lt;br /&gt;
===Erase Emmc Android by dd command===&lt;br /&gt;
:If the board is flashed android before, the whole emmc must be erased by these commands if you want bootup it with SDcard Linux image.&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1M status=noxfer &lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1M status=noxfer&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M status=noxfer &lt;br /&gt;
  $ sync&lt;br /&gt;
&lt;br /&gt;
===Cloud-init&amp;amp;Snap===&lt;br /&gt;
:Cloud-init and Snap service are enabled default, you can disable or remove them.&lt;br /&gt;
&lt;br /&gt;
:1. disable or remove cloud-init&lt;br /&gt;
  $ sudo touch /etc/cloud/cloud-init.disabled&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo apt purge cloud-init&lt;br /&gt;
&lt;br /&gt;
:2. disable or remove snap&lt;br /&gt;
  $ sudo apt purge snapd&lt;br /&gt;
&lt;br /&gt;
===Enable rc-local===&lt;br /&gt;
:The systemd service rc-local.service already exists in release image, but there is no [Install] part in the unit file. As a result, Systemd is unable to enable it. First, we must update the file.&lt;br /&gt;
&lt;br /&gt;
  $ sudo nano /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=/etc/rc.local Compatibility&lt;br /&gt;
  Documentation=man:systemd-rc-local-generator(8)&lt;br /&gt;
  ConditionFileIsExecutable=/etc/rc.local&lt;br /&gt;
  After=network.target&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Type=forking&lt;br /&gt;
  ExecStart=/etc/rc.local start&lt;br /&gt;
  TimeoutSec=0&lt;br /&gt;
  RemainAfterExit=yes&lt;br /&gt;
  GuessMainPID=no&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=multi-user.target&lt;br /&gt;
  Alias=rc-local.service&lt;br /&gt;
&lt;br /&gt;
:Create /etc/rc.local file.&lt;br /&gt;
&lt;br /&gt;
  sudo nano /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  #&lt;br /&gt;
  # rc.local&lt;br /&gt;
  #&lt;br /&gt;
  # This script is executed at the end of each multiuser runlevel.&lt;br /&gt;
  # Make sure that the script will &amp;quot;exit 0&amp;quot; on success or any other&lt;br /&gt;
  # value on error.&lt;br /&gt;
  #&lt;br /&gt;
  # In order to enable or disable this script just change the execution&lt;br /&gt;
  # bits.&lt;br /&gt;
  #&lt;br /&gt;
  # By default this script does nothing.&lt;br /&gt;
  &lt;br /&gt;
  exit 0&lt;br /&gt;
&lt;br /&gt;
:Add executable permission to /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
:Enable rc-local.service and reboot&lt;br /&gt;
&lt;br /&gt;
  $ sudo systemctl enable rc-local.service&lt;br /&gt;
  $ sudo reboot&lt;br /&gt;
&lt;br /&gt;
===Enable sudo for Debian===&lt;br /&gt;
:The release Debian image do not install sudo default, with &amp;quot;su -&amp;quot; command, user can change to root. If you like sudo, you can install it.&lt;br /&gt;
&lt;br /&gt;
  $ su -&lt;br /&gt;
  Password:(enter bananapi)&lt;br /&gt;
  &lt;br /&gt;
  # apt install sudo&lt;br /&gt;
  # adduser pi sudo&lt;br /&gt;
&lt;br /&gt;
: Then please do logout and login again&lt;br /&gt;
&lt;br /&gt;
===Install Docker Engine===&lt;br /&gt;
:Install Docker Engine on Ubuntu 20.04 Server&lt;br /&gt;
  &lt;br /&gt;
:1. Set up the repository&lt;br /&gt;
&lt;br /&gt;
:Update the apt package index and install packages to allow apt to use a repository over HTTPS:&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
:Add Docker’s official GPG key:&lt;br /&gt;
  $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
:Set up the stable repository&lt;br /&gt;
  $  echo \&lt;br /&gt;
     &amp;quot;deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \&lt;br /&gt;
     $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
:2. Install Docker Engine&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install docker-ce docker-ce-cli containerd.io&lt;br /&gt;
&lt;br /&gt;
:3. Verify the Docker Engine is installed correctly by running the hello-world image.&lt;br /&gt;
  $ sudo docker run hello-world&lt;br /&gt;
&lt;br /&gt;
:[[File:docker-test.png]]&lt;br /&gt;
&lt;br /&gt;
Install docker with a simple command&lt;br /&gt;
&lt;br /&gt;
  $ curl -sSL get.docker.com | sudo sh&lt;br /&gt;
&lt;br /&gt;
[https://docs.docker.com/engine/install/ Install Docker Engine] on other Linux distributions&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13678</id>
		<title>Getting Started with BPI-R3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13678"/>
				<updated>2023-02-08T08:52:32Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Wifi &amp;amp; Serial cable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R3]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
[[File:Banana_pi_751.jpg]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R3 Router board with MediaTek MT7986(Filogic 830) quad core ARM A53 + MT7531A chip design ,2G DDR RAM ,8G eMMC flash onboard,It is a very high performance open source router development board,support Wi-Fi 6/6E 2.4G wifi use MT7975N and 5G wifi use MT7975P, support 2 SFP 2.5GbE  port, and 5 GbE network port.&lt;br /&gt;
&lt;br /&gt;
==MediaTek MT7986(Filogic 830)==&lt;br /&gt;
&lt;br /&gt;
The MT7986(Filogic 830) integrates four Arm Cortex-A53 cores up to 2GHz with up to 18,000 DMIPs of processing power and 6Gbps of dual 4x4 Wi-Fi 6/6E connectivity. It has two 2.5g Ethernet interfaces and serial peripheral interfaces (SPI). Filogic 830‘s built-in hardware acceleration engine enables fast and reliable Wi-Fi offloading and wireless network connection. In addition, the chip supports Mediatek FastPath™ technology, which is suitable for games, AR/VR and other low-latency applications. &lt;br /&gt;
&lt;br /&gt;
Wi-fi 6E has many advantages over its predecessors, including lower latency, larger bandwidth capacity and faster transmission rates. Wireless network devices supporting the 6GHz band mainly use 160MHz wide channel and 6GHz uncongested bandwidth to provide multigigabit transmission and low-latency wi-fi connection, providing reliable wireless network for streaming media, games, AR/VR and other applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
*. MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53+MT7531 chip design&lt;br /&gt;
*. Wifi 6/6E 4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P) &lt;br /&gt;
*. 2G DDR RAM&lt;br /&gt;
*. 8G eMMC flash&lt;br /&gt;
*. 2 SFP 2.5GbE&lt;br /&gt;
*. 5 GbE network port &lt;br /&gt;
*. POE support (optional)&lt;br /&gt;
*. Mini PCIe via USB&lt;br /&gt;
*. M.2 KEY-E PCIe inerface&lt;br /&gt;
*. Mciro SD card interface&lt;br /&gt;
*. 26 PIN GPIO&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on BPI-R3&lt;br /&gt;
&lt;br /&gt;
  [[Image:R3_debug_console.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
  * R3 bootstrap and device select Jumper Setting&lt;br /&gt;
  [[Image:BPI-R3-Jumper.png|320px]]&lt;br /&gt;
&lt;br /&gt;
   Note: SW1-A and SW1-B is for boot strap selecting;&lt;br /&gt;
         SW1-C is that SPI-Nand or SPI-Nor Device is connected to CPU's SPI bus;&lt;br /&gt;
         SW1-D is that SD Card or EMMC device is connected tp CPU's EMMC bus.&lt;br /&gt;
 &lt;br /&gt;
   * Examples:&lt;br /&gt;
     All Jumper is High.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
     All Jumper is Low.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-Low.png|320px]]&lt;br /&gt;
&lt;br /&gt;
===How to burn image to SD card===&lt;br /&gt;
  A. Note: burn image to SD card on linux computer&lt;br /&gt;
    1.You could download latest image from our forum&lt;br /&gt;
    * Here is the example image link: &lt;br /&gt;
  &lt;br /&gt;
    2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
    * apt-get install pv&lt;br /&gt;
    * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
    3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
    * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
    4.After step 3, then you can insert your TF card into R3, and press power button to setup R3&lt;br /&gt;
  B. Note: burn image to SD card on windows computer&lt;br /&gt;
    1. Download the tools from the website:   https://sourceforge.net/projects/win32diskimager/&lt;br /&gt;
    2. Install the tools into Windows computer.&lt;br /&gt;
    3. flash image into SD card.&lt;br /&gt;
  &lt;br /&gt;
 C. Change Boot Jumper to boot from SD, Enable SD Card Device.&lt;br /&gt;
    [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
====How to burn image to onboard eMMC====&lt;br /&gt;
  Note: because SD card and EMMC device share one SOC's interface, you need flash one SD image firstly, then R3 boot from SD card, then flash nand image into Nand, then change boot strap to boot from nand,  you need flash EMMC image into EMMC. Finally you change bootstrap to boot from EMMC.&lt;br /&gt;
&lt;br /&gt;
  Before burning image to eMMC, please prepare a SD card with flashed bootable image and a USB disk. Let's take OpenWrt image (mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img, mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) for example, the steps are below:&lt;br /&gt;
&lt;br /&gt;
  1. Insert the flashed SD card and power on to start the board.(the image &amp;quot;mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img&amp;quot; on the SD card can be OpenWrt or other linux OS like ubuntu...)&lt;br /&gt;
&lt;br /&gt;
  2. Copy Nand bootable and EMMC boot OpenWrt image(mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) to USB disk, if the image is compressed please uncompress it before copying to USB disk.&lt;br /&gt;
&lt;br /&gt;
  3. Plug in USB disk to the board, and mount the USB to /mnt or other directory as follows: (you can skip mounting if it is mounted automatically)&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt &lt;br /&gt;
     * change your directory to the mounting point, here is : cd /mnt&lt;br /&gt;
&lt;br /&gt;
  4. Execute following command to enable and copy image to nand flash:&lt;br /&gt;
     * mtd erase /dev/mtd0&lt;br /&gt;
     * dd if=mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin of=/dev/mtdblock0&lt;br /&gt;
&lt;br /&gt;
  5. Shutdown, remove SD card, and change bootstrap to boot from nand flash and change SD/EMMC switch jumper to EMMC, restart the board from Nand Flash.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from nand&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Flash-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
  6. repeat step 3, mount u-disk to /mnt, Execute following command to enable and copy image to EMMC device:&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt&lt;br /&gt;
     * echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
     * dd if=bl2_emmc.img of=/dev/mmcblk0boot0&lt;br /&gt;
     * dd if=mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img of=/dev/mmcblk0&lt;br /&gt;
     * mmc bootpart enable 1 1 /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  7. power off R3 board, remove u-disk driver, change bootstrap to boot from emmc device.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from EMMC.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Boot-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration refer to: http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
*Network Interface: eth1, lan0 is for WAN; lan4, rax0, lan2, lan5, ra0, lan3, lan1 is for LAN,  ra0 is for 2.4G wireless, rax0 is for 5G wireless.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3_network_interface.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# ifconfig&lt;br /&gt;
&lt;br /&gt;
br-lan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          inet6 addr: fd63:8bea:d5ce::1/60 Scope:Global&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
br-wan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8538 (8.3 KiB)&lt;br /&gt;
&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:4408 (4.3 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 4A:BB:84:B4:5D:3F&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8674 (8.4 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
lan0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan1      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan2      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan3      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan4      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan5      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:65536  Metric:1&lt;br /&gt;
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:4368 (4.2 KiB)  TX bytes:4368 (4.2 KiB)&lt;br /&gt;
&lt;br /&gt;
ra0       Link encap:Ethernet  HWaddr 00:0C:43:26:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:6&lt;br /&gt;
&lt;br /&gt;
rax0      Link encap:Ethernet  HWaddr 02:0C:43:36:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-wan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-wan          7fff.eea15781ca19       no              lan0, eth1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-lan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-lan          7fff.eea15781ca19       no              lan4, rax0, lan2, lan5, ra0, lan3, lan1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/#&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====26 Pins Definition====&lt;br /&gt;
&lt;br /&gt;
[[Image:R3_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 411&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-GPIO-Base.jpg]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 433（22+411） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio433/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio433/value&lt;br /&gt;
&lt;br /&gt;
===FAN===&lt;br /&gt;
&lt;br /&gt;
[[Image:FAN.png]]&lt;br /&gt;
&lt;br /&gt;
* R317 for 5V FAN and R318 for 12V FAN.&lt;br /&gt;
* CN23 supports PWM control while CN22 does not support.&lt;br /&gt;
&lt;br /&gt;
====PWM FAN Control====&lt;br /&gt;
* echo 0 &amp;gt; /sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 10000 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/period&lt;br /&gt;
* echo 5000 &amp;gt;  /sys/class/pwm/pwmchip0/pwm0/duty_cycle&lt;br /&gt;
* echo normal &amp;gt; /sys/class/pwm/pwmchip0/pwm0/polarity&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/enable&lt;br /&gt;
&lt;br /&gt;
===miniPCIe slot===&lt;br /&gt;
currently, miniPCIe slot only support one USB 4G module, example: EC25&lt;br /&gt;
when you insert one EC25 module, you may check it.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-miniPCIe-Slot-EC25.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SFP===&lt;br /&gt;
After high and low temperature test, the following modules are suppoted by BPI-R3:&lt;br /&gt;
&lt;br /&gt;
[[Image:SFP.png]]&lt;br /&gt;
&lt;br /&gt;
===4G&amp;amp;5G===&lt;br /&gt;
* BPI-R3 supports 4G LTE EC25.&lt;br /&gt;
* If you want to use 5G on BPI-R3:&lt;br /&gt;
    1. Insert 5G dongle into USB3.0.&lt;br /&gt;
    2. Connect RG200U-CN to mini PCIe, connect SoC through USB2.0(speed limited).&lt;br /&gt;
    3. Make an RG200U-CN LGA adapter board and insert it into M.2 KEY M.&lt;br /&gt;
Note: The availability of 4G/5G depends on the local carrier frequency band.&lt;br /&gt;
&lt;br /&gt;
===Ap mode on BPI-R3===&lt;br /&gt;
&lt;br /&gt;
* ra0  is MT7986a 2.4G wifi&lt;br /&gt;
* rax0 is MT7986a 5G wifi&lt;br /&gt;
&lt;br /&gt;
===Wifi &amp;amp; Serial cable===&lt;br /&gt;
* '''If the chip type of serial cable is pl2303, the driver fails to load the firmware apparently and thus the wifi can't work.'''&lt;br /&gt;
* '''Other types including cp2102,ch340 and FDTI are all available, serial cable vlotage must be 3.3v LVTTL standard.&lt;br /&gt;
'''&lt;br /&gt;
'''UART_TX0 is the Boot Strapping PIN and must be kept low during power-on.'''&lt;br /&gt;
&lt;br /&gt;
[[File:Strapping.png|720px]]&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*MT7986a Reference Manual for Develope Board(BPi)&lt;br /&gt;
::Google Drive：https://drive.google.com/file/d/1biSJmxnIpNzQroYDg9mtPtSTAv4i0DFf/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13661</id>
		<title>Getting Started with BPI-R3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13661"/>
				<updated>2023-02-03T01:22:20Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Wifi &amp;amp; Serial cable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R3]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
[[File:Banana_pi_751.jpg]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R3 Router board with MediaTek MT7986(Filogic 830) quad core ARM A53 + MT7531A chip design ,2G DDR RAM ,8G eMMC flash onboard,It is a very high performance open source router development board,support Wi-Fi 6/6E 2.4G wifi use MT7975N and 5G wifi use MT7975P, support 2 SFP 2.5GbE  port, and 5 GbE network port.&lt;br /&gt;
&lt;br /&gt;
==MediaTek MT7986(Filogic 830)==&lt;br /&gt;
&lt;br /&gt;
The MT7986(Filogic 830) integrates four Arm Cortex-A53 cores up to 2GHz with up to 18,000 DMIPs of processing power and 6Gbps of dual 4x4 Wi-Fi 6/6E connectivity. It has two 2.5g Ethernet interfaces and serial peripheral interfaces (SPI). Filogic 830‘s built-in hardware acceleration engine enables fast and reliable Wi-Fi offloading and wireless network connection. In addition, the chip supports Mediatek FastPath™ technology, which is suitable for games, AR/VR and other low-latency applications. &lt;br /&gt;
&lt;br /&gt;
Wi-fi 6E has many advantages over its predecessors, including lower latency, larger bandwidth capacity and faster transmission rates. Wireless network devices supporting the 6GHz band mainly use 160MHz wide channel and 6GHz uncongested bandwidth to provide multigigabit transmission and low-latency wi-fi connection, providing reliable wireless network for streaming media, games, AR/VR and other applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
*. MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53+MT7531 chip design&lt;br /&gt;
*. Wifi 6/6E 4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P) &lt;br /&gt;
*. 2G DDR RAM&lt;br /&gt;
*. 8G eMMC flash&lt;br /&gt;
*. 2 SFP 2.5GbE&lt;br /&gt;
*. 5 GbE network port &lt;br /&gt;
*. POE support (optional)&lt;br /&gt;
*. Mini PCIe via USB&lt;br /&gt;
*. M.2 KEY-E PCIe inerface&lt;br /&gt;
*. Mciro SD card interface&lt;br /&gt;
*. 26 PIN GPIO&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on BPI-R3&lt;br /&gt;
&lt;br /&gt;
  [[Image:R3_debug_console.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
  * R3 bootstrap and device select Jumper Setting&lt;br /&gt;
  [[Image:BPI-R3-Jumper.png|320px]]&lt;br /&gt;
&lt;br /&gt;
   Note: SW1-A and SW1-B is for boot strap selecting;&lt;br /&gt;
         SW1-C is that SPI-Nand or SPI-Nor Device is connected to CPU's SPI bus;&lt;br /&gt;
         SW1-D is that SD Card or EMMC device is connected tp CPU's EMMC bus.&lt;br /&gt;
 &lt;br /&gt;
   * Examples:&lt;br /&gt;
     All Jumper is High.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
     All Jumper is Low.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-Low.png|320px]]&lt;br /&gt;
&lt;br /&gt;
===How to burn image to SD card===&lt;br /&gt;
  A. Note: burn image to SD card on linux computer&lt;br /&gt;
    1.You could download latest image from our forum&lt;br /&gt;
    * Here is the example image link: &lt;br /&gt;
  &lt;br /&gt;
    2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
    * apt-get install pv&lt;br /&gt;
    * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
    3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
    * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
    4.After step 3, then you can insert your TF card into R3, and press power button to setup R3&lt;br /&gt;
  B. Note: burn image to SD card on windows computer&lt;br /&gt;
    1. Download the tools from the website:   https://sourceforge.net/projects/win32diskimager/&lt;br /&gt;
    2. Install the tools into Windows computer.&lt;br /&gt;
    3. flash image into SD card.&lt;br /&gt;
  &lt;br /&gt;
 C. Change Boot Jumper to boot from SD, Enable SD Card Device.&lt;br /&gt;
    [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
====How to burn image to onboard eMMC====&lt;br /&gt;
  Note: because SD card and EMMC device share one SOC's interface, you need flash one SD image firstly, then R3 boot from SD card, then flash nand image into Nand, then change boot strap to boot from nand,  you need flash EMMC image into EMMC. Finally you change bootstrap to boot from EMMC.&lt;br /&gt;
&lt;br /&gt;
  Before burning image to eMMC, please prepare a SD card with flashed bootable image and a USB disk. Let's take OpenWrt image (mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img, mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) for example, the steps are below:&lt;br /&gt;
&lt;br /&gt;
  1. Insert the flashed SD card and power on to start the board.(the image &amp;quot;mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img&amp;quot; on the SD card can be OpenWrt or other linux OS like ubuntu...)&lt;br /&gt;
&lt;br /&gt;
  2. Copy Nand bootable and EMMC boot OpenWrt image(mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) to USB disk, if the image is compressed please uncompress it before copying to USB disk.&lt;br /&gt;
&lt;br /&gt;
  3. Plug in USB disk to the board, and mount the USB to /mnt or other directory as follows: (you can skip mounting if it is mounted automatically)&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt &lt;br /&gt;
     * change your directory to the mounting point, here is : cd /mnt&lt;br /&gt;
&lt;br /&gt;
  4. Execute following command to enable and copy image to nand flash:&lt;br /&gt;
     * mtd erase /dev/mtd0&lt;br /&gt;
     * dd if=mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin of=/dev/mtdblock0&lt;br /&gt;
&lt;br /&gt;
  5. Shutdown, remove SD card, and change bootstrap to boot from nand flash and change SD/EMMC switch jumper to EMMC, restart the board from Nand Flash.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from nand&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Flash-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
  6. repeat step 3, mount u-disk to /mnt, Execute following command to enable and copy image to EMMC device:&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt&lt;br /&gt;
     * echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
     * dd if=bl2_emmc.img of=/dev/mmcblk0boot0&lt;br /&gt;
     * dd if=mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img of=/dev/mmcblk0&lt;br /&gt;
     * mmc bootpart enable 1 1 /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  7. power off R3 board, remove u-disk driver, change bootstrap to boot from emmc device.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from EMMC.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Boot-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration refer to: http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
*Network Interface: eth1, lan0 is for WAN; lan4, rax0, lan2, lan5, ra0, lan3, lan1 is for LAN,  ra0 is for 2.4G wireless, rax0 is for 5G wireless.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3_network_interface.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# ifconfig&lt;br /&gt;
&lt;br /&gt;
br-lan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          inet6 addr: fd63:8bea:d5ce::1/60 Scope:Global&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
br-wan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8538 (8.3 KiB)&lt;br /&gt;
&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:4408 (4.3 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 4A:BB:84:B4:5D:3F&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8674 (8.4 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
lan0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan1      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan2      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan3      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan4      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan5      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:65536  Metric:1&lt;br /&gt;
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:4368 (4.2 KiB)  TX bytes:4368 (4.2 KiB)&lt;br /&gt;
&lt;br /&gt;
ra0       Link encap:Ethernet  HWaddr 00:0C:43:26:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:6&lt;br /&gt;
&lt;br /&gt;
rax0      Link encap:Ethernet  HWaddr 02:0C:43:36:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-wan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-wan          7fff.eea15781ca19       no              lan0, eth1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-lan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-lan          7fff.eea15781ca19       no              lan4, rax0, lan2, lan5, ra0, lan3, lan1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/#&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====26 Pins Definition====&lt;br /&gt;
&lt;br /&gt;
[[Image:R3_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 411&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-GPIO-Base.jpg]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 433（22+411） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio433/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio433/value&lt;br /&gt;
&lt;br /&gt;
===FAN===&lt;br /&gt;
&lt;br /&gt;
[[Image:FAN.png]]&lt;br /&gt;
&lt;br /&gt;
* R317 for 5V FAN and R318 for 12V FAN.&lt;br /&gt;
* CN23 supports PWM control while CN22 does not support.&lt;br /&gt;
&lt;br /&gt;
====PWM FAN Control====&lt;br /&gt;
* echo 0 &amp;gt; /sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 10000 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/period&lt;br /&gt;
* echo 5000 &amp;gt;  /sys/class/pwm/pwmchip0/pwm0/duty_cycle&lt;br /&gt;
* echo normal &amp;gt; /sys/class/pwm/pwmchip0/pwm0/polarity&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/enable&lt;br /&gt;
&lt;br /&gt;
===miniPCIe slot===&lt;br /&gt;
currently, miniPCIe slot only support one USB 4G module, example: EC25&lt;br /&gt;
when you insert one EC25 module, you may check it.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-miniPCIe-Slot-EC25.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SFP===&lt;br /&gt;
After high and low temperature test, the following modules are suppoted by BPI-R3:&lt;br /&gt;
&lt;br /&gt;
[[Image:SFP.png]]&lt;br /&gt;
&lt;br /&gt;
===4G&amp;amp;5G===&lt;br /&gt;
* BPI-R3 supports 4G LTE EC25.&lt;br /&gt;
* If you want to use 5G on BPI-R3:&lt;br /&gt;
    1. Insert 5G dongle into USB3.0.&lt;br /&gt;
    2. Connect RG200U-CN to mini PCIe, connect SoC through USB2.0(speed limited).&lt;br /&gt;
    3. Make an RG200U-CN LGA adapter board and insert it into M.2 KEY M.&lt;br /&gt;
Note: The availability of 4G/5G depends on the local carrier frequency band.&lt;br /&gt;
&lt;br /&gt;
===Ap mode on BPI-R3===&lt;br /&gt;
&lt;br /&gt;
* ra0  is MT7986a 2.4G wifi&lt;br /&gt;
* rax0 is MT7986a 5G wifi&lt;br /&gt;
&lt;br /&gt;
===Wifi &amp;amp; Serial cable===&lt;br /&gt;
* '''If the chip type of serial cable is pl2303, the driver fails to load the firmware apparently and thus the wifi can't work.'''&lt;br /&gt;
* '''Other types including cp2102,ch340 and FDTI are all available, serial cable vlotage must be 3.3v LVTTL standard.&lt;br /&gt;
[[Image:Strapping.png|720px]]&lt;br /&gt;
&lt;br /&gt;
UART_TX0 is the Boot Strapping PIN and must be kept low during power-on.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*MT7986a Reference Manual for Develope Board(BPi)&lt;br /&gt;
::Google Drive：https://drive.google.com/file/d/1biSJmxnIpNzQroYDg9mtPtSTAv4i0DFf/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13660</id>
		<title>Getting Started with BPI-R3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13660"/>
				<updated>2023-02-03T01:22:04Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Wifi &amp;amp; Serial cable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R3]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
[[File:Banana_pi_751.jpg]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R3 Router board with MediaTek MT7986(Filogic 830) quad core ARM A53 + MT7531A chip design ,2G DDR RAM ,8G eMMC flash onboard,It is a very high performance open source router development board,support Wi-Fi 6/6E 2.4G wifi use MT7975N and 5G wifi use MT7975P, support 2 SFP 2.5GbE  port, and 5 GbE network port.&lt;br /&gt;
&lt;br /&gt;
==MediaTek MT7986(Filogic 830)==&lt;br /&gt;
&lt;br /&gt;
The MT7986(Filogic 830) integrates four Arm Cortex-A53 cores up to 2GHz with up to 18,000 DMIPs of processing power and 6Gbps of dual 4x4 Wi-Fi 6/6E connectivity. It has two 2.5g Ethernet interfaces and serial peripheral interfaces (SPI). Filogic 830‘s built-in hardware acceleration engine enables fast and reliable Wi-Fi offloading and wireless network connection. In addition, the chip supports Mediatek FastPath™ technology, which is suitable for games, AR/VR and other low-latency applications. &lt;br /&gt;
&lt;br /&gt;
Wi-fi 6E has many advantages over its predecessors, including lower latency, larger bandwidth capacity and faster transmission rates. Wireless network devices supporting the 6GHz band mainly use 160MHz wide channel and 6GHz uncongested bandwidth to provide multigigabit transmission and low-latency wi-fi connection, providing reliable wireless network for streaming media, games, AR/VR and other applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
*. MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53+MT7531 chip design&lt;br /&gt;
*. Wifi 6/6E 4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P) &lt;br /&gt;
*. 2G DDR RAM&lt;br /&gt;
*. 8G eMMC flash&lt;br /&gt;
*. 2 SFP 2.5GbE&lt;br /&gt;
*. 5 GbE network port &lt;br /&gt;
*. POE support (optional)&lt;br /&gt;
*. Mini PCIe via USB&lt;br /&gt;
*. M.2 KEY-E PCIe inerface&lt;br /&gt;
*. Mciro SD card interface&lt;br /&gt;
*. 26 PIN GPIO&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on BPI-R3&lt;br /&gt;
&lt;br /&gt;
  [[Image:R3_debug_console.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
  * R3 bootstrap and device select Jumper Setting&lt;br /&gt;
  [[Image:BPI-R3-Jumper.png|320px]]&lt;br /&gt;
&lt;br /&gt;
   Note: SW1-A and SW1-B is for boot strap selecting;&lt;br /&gt;
         SW1-C is that SPI-Nand or SPI-Nor Device is connected to CPU's SPI bus;&lt;br /&gt;
         SW1-D is that SD Card or EMMC device is connected tp CPU's EMMC bus.&lt;br /&gt;
 &lt;br /&gt;
   * Examples:&lt;br /&gt;
     All Jumper is High.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
     All Jumper is Low.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-Low.png|320px]]&lt;br /&gt;
&lt;br /&gt;
===How to burn image to SD card===&lt;br /&gt;
  A. Note: burn image to SD card on linux computer&lt;br /&gt;
    1.You could download latest image from our forum&lt;br /&gt;
    * Here is the example image link: &lt;br /&gt;
  &lt;br /&gt;
    2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
    * apt-get install pv&lt;br /&gt;
    * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
    3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
    * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
    4.After step 3, then you can insert your TF card into R3, and press power button to setup R3&lt;br /&gt;
  B. Note: burn image to SD card on windows computer&lt;br /&gt;
    1. Download the tools from the website:   https://sourceforge.net/projects/win32diskimager/&lt;br /&gt;
    2. Install the tools into Windows computer.&lt;br /&gt;
    3. flash image into SD card.&lt;br /&gt;
  &lt;br /&gt;
 C. Change Boot Jumper to boot from SD, Enable SD Card Device.&lt;br /&gt;
    [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
====How to burn image to onboard eMMC====&lt;br /&gt;
  Note: because SD card and EMMC device share one SOC's interface, you need flash one SD image firstly, then R3 boot from SD card, then flash nand image into Nand, then change boot strap to boot from nand,  you need flash EMMC image into EMMC. Finally you change bootstrap to boot from EMMC.&lt;br /&gt;
&lt;br /&gt;
  Before burning image to eMMC, please prepare a SD card with flashed bootable image and a USB disk. Let's take OpenWrt image (mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img, mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) for example, the steps are below:&lt;br /&gt;
&lt;br /&gt;
  1. Insert the flashed SD card and power on to start the board.(the image &amp;quot;mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img&amp;quot; on the SD card can be OpenWrt or other linux OS like ubuntu...)&lt;br /&gt;
&lt;br /&gt;
  2. Copy Nand bootable and EMMC boot OpenWrt image(mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) to USB disk, if the image is compressed please uncompress it before copying to USB disk.&lt;br /&gt;
&lt;br /&gt;
  3. Plug in USB disk to the board, and mount the USB to /mnt or other directory as follows: (you can skip mounting if it is mounted automatically)&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt &lt;br /&gt;
     * change your directory to the mounting point, here is : cd /mnt&lt;br /&gt;
&lt;br /&gt;
  4. Execute following command to enable and copy image to nand flash:&lt;br /&gt;
     * mtd erase /dev/mtd0&lt;br /&gt;
     * dd if=mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin of=/dev/mtdblock0&lt;br /&gt;
&lt;br /&gt;
  5. Shutdown, remove SD card, and change bootstrap to boot from nand flash and change SD/EMMC switch jumper to EMMC, restart the board from Nand Flash.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from nand&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Flash-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
  6. repeat step 3, mount u-disk to /mnt, Execute following command to enable and copy image to EMMC device:&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt&lt;br /&gt;
     * echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
     * dd if=bl2_emmc.img of=/dev/mmcblk0boot0&lt;br /&gt;
     * dd if=mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img of=/dev/mmcblk0&lt;br /&gt;
     * mmc bootpart enable 1 1 /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  7. power off R3 board, remove u-disk driver, change bootstrap to boot from emmc device.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from EMMC.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Boot-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration refer to: http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
*Network Interface: eth1, lan0 is for WAN; lan4, rax0, lan2, lan5, ra0, lan3, lan1 is for LAN,  ra0 is for 2.4G wireless, rax0 is for 5G wireless.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3_network_interface.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# ifconfig&lt;br /&gt;
&lt;br /&gt;
br-lan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          inet6 addr: fd63:8bea:d5ce::1/60 Scope:Global&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
br-wan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8538 (8.3 KiB)&lt;br /&gt;
&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:4408 (4.3 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 4A:BB:84:B4:5D:3F&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8674 (8.4 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
lan0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan1      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan2      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan3      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan4      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan5      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:65536  Metric:1&lt;br /&gt;
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:4368 (4.2 KiB)  TX bytes:4368 (4.2 KiB)&lt;br /&gt;
&lt;br /&gt;
ra0       Link encap:Ethernet  HWaddr 00:0C:43:26:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:6&lt;br /&gt;
&lt;br /&gt;
rax0      Link encap:Ethernet  HWaddr 02:0C:43:36:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-wan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-wan          7fff.eea15781ca19       no              lan0, eth1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-lan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-lan          7fff.eea15781ca19       no              lan4, rax0, lan2, lan5, ra0, lan3, lan1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/#&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====26 Pins Definition====&lt;br /&gt;
&lt;br /&gt;
[[Image:R3_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 411&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-GPIO-Base.jpg]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 433（22+411） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio433/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio433/value&lt;br /&gt;
&lt;br /&gt;
===FAN===&lt;br /&gt;
&lt;br /&gt;
[[Image:FAN.png]]&lt;br /&gt;
&lt;br /&gt;
* R317 for 5V FAN and R318 for 12V FAN.&lt;br /&gt;
* CN23 supports PWM control while CN22 does not support.&lt;br /&gt;
&lt;br /&gt;
====PWM FAN Control====&lt;br /&gt;
* echo 0 &amp;gt; /sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 10000 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/period&lt;br /&gt;
* echo 5000 &amp;gt;  /sys/class/pwm/pwmchip0/pwm0/duty_cycle&lt;br /&gt;
* echo normal &amp;gt; /sys/class/pwm/pwmchip0/pwm0/polarity&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/enable&lt;br /&gt;
&lt;br /&gt;
===miniPCIe slot===&lt;br /&gt;
currently, miniPCIe slot only support one USB 4G module, example: EC25&lt;br /&gt;
when you insert one EC25 module, you may check it.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-miniPCIe-Slot-EC25.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SFP===&lt;br /&gt;
After high and low temperature test, the following modules are suppoted by BPI-R3:&lt;br /&gt;
&lt;br /&gt;
[[Image:SFP.png]]&lt;br /&gt;
&lt;br /&gt;
===4G&amp;amp;5G===&lt;br /&gt;
* BPI-R3 supports 4G LTE EC25.&lt;br /&gt;
* If you want to use 5G on BPI-R3:&lt;br /&gt;
    1. Insert 5G dongle into USB3.0.&lt;br /&gt;
    2. Connect RG200U-CN to mini PCIe, connect SoC through USB2.0(speed limited).&lt;br /&gt;
    3. Make an RG200U-CN LGA adapter board and insert it into M.2 KEY M.&lt;br /&gt;
Note: The availability of 4G/5G depends on the local carrier frequency band.&lt;br /&gt;
&lt;br /&gt;
===Ap mode on BPI-R3===&lt;br /&gt;
&lt;br /&gt;
* ra0  is MT7986a 2.4G wifi&lt;br /&gt;
* rax0 is MT7986a 5G wifi&lt;br /&gt;
&lt;br /&gt;
===Wifi &amp;amp; Serial cable===&lt;br /&gt;
* '''If the chip type of serial cable is pl2303, the driver fails to load the firmware apparently and thus the wifi can't work.'''&lt;br /&gt;
* '''Other types including cp2102,ch340 and FDTI are all available, serial cable vlotage must be 3.3v LVTTL standard.&lt;br /&gt;
[[Image:Strapping.png|720px]]&lt;br /&gt;
UART_TX0 is the Boot Strapping PIN and must be kept low during power-on&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*MT7986a Reference Manual for Develope Board(BPi)&lt;br /&gt;
::Google Drive：https://drive.google.com/file/d/1biSJmxnIpNzQroYDg9mtPtSTAv4i0DFf/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13659</id>
		<title>Getting Started with BPI-R3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-R3&amp;diff=13659"/>
				<updated>2023-02-03T01:19:38Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Wifi &amp;amp; Serial cable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-R3]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
[[File:Banana_pi_751.jpg]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-R3 Router board with MediaTek MT7986(Filogic 830) quad core ARM A53 + MT7531A chip design ,2G DDR RAM ,8G eMMC flash onboard,It is a very high performance open source router development board,support Wi-Fi 6/6E 2.4G wifi use MT7975N and 5G wifi use MT7975P, support 2 SFP 2.5GbE  port, and 5 GbE network port.&lt;br /&gt;
&lt;br /&gt;
==MediaTek MT7986(Filogic 830)==&lt;br /&gt;
&lt;br /&gt;
The MT7986(Filogic 830) integrates four Arm Cortex-A53 cores up to 2GHz with up to 18,000 DMIPs of processing power and 6Gbps of dual 4x4 Wi-Fi 6/6E connectivity. It has two 2.5g Ethernet interfaces and serial peripheral interfaces (SPI). Filogic 830‘s built-in hardware acceleration engine enables fast and reliable Wi-Fi offloading and wireless network connection. In addition, the chip supports Mediatek FastPath™ technology, which is suitable for games, AR/VR and other low-latency applications. &lt;br /&gt;
&lt;br /&gt;
Wi-fi 6E has many advantages over its predecessors, including lower latency, larger bandwidth capacity and faster transmission rates. Wireless network devices supporting the 6GHz band mainly use 160MHz wide channel and 6GHz uncongested bandwidth to provide multigigabit transmission and low-latency wi-fi connection, providing reliable wireless network for streaming media, games, AR/VR and other applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
*. MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53+MT7531 chip design&lt;br /&gt;
*. Wifi 6/6E 4x4 2.4G Wifi(MT7975N) +4x4 5G Wifi(MT7975P) &lt;br /&gt;
*. 2G DDR RAM&lt;br /&gt;
*. 8G eMMC flash&lt;br /&gt;
*. 2 SFP 2.5GbE&lt;br /&gt;
*. 5 GbE network port &lt;br /&gt;
*. POE support (optional)&lt;br /&gt;
*. Mini PCIe via USB&lt;br /&gt;
*. M.2 KEY-E PCIe inerface&lt;br /&gt;
*. Mciro SD card interface&lt;br /&gt;
*. 26 PIN GPIO&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on BPI-R3&lt;br /&gt;
&lt;br /&gt;
  [[Image:R3_debug_console.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
  * R3 bootstrap and device select Jumper Setting&lt;br /&gt;
  [[Image:BPI-R3-Jumper.png|320px]]&lt;br /&gt;
&lt;br /&gt;
   Note: SW1-A and SW1-B is for boot strap selecting;&lt;br /&gt;
         SW1-C is that SPI-Nand or SPI-Nor Device is connected to CPU's SPI bus;&lt;br /&gt;
         SW1-D is that SD Card or EMMC device is connected tp CPU's EMMC bus.&lt;br /&gt;
 &lt;br /&gt;
   * Examples:&lt;br /&gt;
     All Jumper is High.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
     All Jumper is Low.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-ALL-Low.png|320px]]&lt;br /&gt;
&lt;br /&gt;
===How to burn image to SD card===&lt;br /&gt;
  A. Note: burn image to SD card on linux computer&lt;br /&gt;
    1.You could download latest image from our forum&lt;br /&gt;
    * Here is the example image link: &lt;br /&gt;
  &lt;br /&gt;
    2.Install bpi-tools on your Ubuntu. If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
    * apt-get install pv&lt;br /&gt;
    * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
  &lt;br /&gt;
    3.After you download the image, insert your TF card into your Ubuntu&lt;br /&gt;
    * Execute &amp;quot;bpi-copy xxx.img /dev/sdx&amp;quot; to install image on your TF card&lt;br /&gt;
  &lt;br /&gt;
    4.After step 3, then you can insert your TF card into R3, and press power button to setup R3&lt;br /&gt;
  B. Note: burn image to SD card on windows computer&lt;br /&gt;
    1. Download the tools from the website:   https://sourceforge.net/projects/win32diskimager/&lt;br /&gt;
    2. Install the tools into Windows computer.&lt;br /&gt;
    3. flash image into SD card.&lt;br /&gt;
  &lt;br /&gt;
 C. Change Boot Jumper to boot from SD, Enable SD Card Device.&lt;br /&gt;
    [[Image:BPI-R3-Jumper-ALL-High.png|320px]]&lt;br /&gt;
&lt;br /&gt;
====How to burn image to onboard eMMC====&lt;br /&gt;
  Note: because SD card and EMMC device share one SOC's interface, you need flash one SD image firstly, then R3 boot from SD card, then flash nand image into Nand, then change boot strap to boot from nand,  you need flash EMMC image into EMMC. Finally you change bootstrap to boot from EMMC.&lt;br /&gt;
&lt;br /&gt;
  Before burning image to eMMC, please prepare a SD card with flashed bootable image and a USB disk. Let's take OpenWrt image (mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img, mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) for example, the steps are below:&lt;br /&gt;
&lt;br /&gt;
  1. Insert the flashed SD card and power on to start the board.(the image &amp;quot;mtk-bpi-r3-SD-WAN1-SFP1-20220619-single-image.img&amp;quot; on the SD card can be OpenWrt or other linux OS like ubuntu...)&lt;br /&gt;
&lt;br /&gt;
  2. Copy Nand bootable and EMMC boot OpenWrt image(mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin, bl2_emmc.img, mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img) to USB disk, if the image is compressed please uncompress it before copying to USB disk.&lt;br /&gt;
&lt;br /&gt;
  3. Plug in USB disk to the board, and mount the USB to /mnt or other directory as follows: (you can skip mounting if it is mounted automatically)&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt &lt;br /&gt;
     * change your directory to the mounting point, here is : cd /mnt&lt;br /&gt;
&lt;br /&gt;
  4. Execute following command to enable and copy image to nand flash:&lt;br /&gt;
     * mtd erase /dev/mtd0&lt;br /&gt;
     * dd if=mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin of=/dev/mtdblock0&lt;br /&gt;
&lt;br /&gt;
  5. Shutdown, remove SD card, and change bootstrap to boot from nand flash and change SD/EMMC switch jumper to EMMC, restart the board from Nand Flash.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from nand&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Flash-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
  6. repeat step 3, mount u-disk to /mnt, Execute following command to enable and copy image to EMMC device:&lt;br /&gt;
     * mount -t vfat /dev/sda1 /mnt&lt;br /&gt;
     * echo 0 &amp;gt; /sys/block/mmcblk0boot0/force_ro&lt;br /&gt;
     * dd if=bl2_emmc.img of=/dev/mmcblk0boot0&lt;br /&gt;
     * dd if=mtk-bpi-r3-EMMC-WAN1-SFP1-20220619-single-image.img of=/dev/mmcblk0&lt;br /&gt;
     * mmc bootpart enable 1 1 /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
  7. power off R3 board, remove u-disk driver, change bootstrap to boot from emmc device.&lt;br /&gt;
     Note: Enable EMMC device, boot strap is from EMMC.&lt;br /&gt;
     [[Image:BPI-R3-Jumper-Boot-EMMC.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Network-Configuration===&lt;br /&gt;
*Network-Configuration refer to: http://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:network:start&lt;br /&gt;
*Network Interface: eth1, lan0 is for WAN; lan4, rax0, lan2, lan5, ra0, lan3, lan1 is for LAN,  ra0 is for 2.4G wireless, rax0 is for 5G wireless.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3_network_interface.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# ifconfig&lt;br /&gt;
&lt;br /&gt;
br-lan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          inet6 addr: fd63:8bea:d5ce::1/60 Scope:Global&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
br-wan    Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8538 (8.3 KiB)&lt;br /&gt;
&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          inet6 addr: fe80::eca1:57ff:fe81:ca19/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:4408 (4.3 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 4A:BB:84:B4:5D:3F&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:8674 (8.4 KiB)&lt;br /&gt;
          Interrupt:124&lt;br /&gt;
&lt;br /&gt;
lan0      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan1      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan2      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan3      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan4      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lan5      Link encap:Ethernet  HWaddr EE:A1:57:81:CA:19&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:2418 (2.3 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:65536  Metric:1&lt;br /&gt;
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:4368 (4.2 KiB)  TX bytes:4368 (4.2 KiB)&lt;br /&gt;
&lt;br /&gt;
ra0       Link encap:Ethernet  HWaddr 00:0C:43:26:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:6&lt;br /&gt;
&lt;br /&gt;
rax0      Link encap:Ethernet  HWaddr 02:0C:43:36:60:38&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-wan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-wan          7fff.eea15781ca19       no              lan0, eth1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/# brctl show br-lan&lt;br /&gt;
&lt;br /&gt;
bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
br-lan          7fff.eea15781ca19       no              lan4, rax0, lan2, lan5, ra0, lan3, lan1&lt;br /&gt;
&lt;br /&gt;
root@OpenWrt:/#&lt;br /&gt;
&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
===GPIO===&lt;br /&gt;
====26 Pins Definition====&lt;br /&gt;
&lt;br /&gt;
[[Image:R3_gpio_40.jpg]]&lt;br /&gt;
&lt;br /&gt;
====GPIO Control====&lt;br /&gt;
* echo xxx &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo in/out &amp;gt; /sys/class/gpio/gpioxxx/direction&lt;br /&gt;
* echo 0/1 &amp;gt; /sys/class/gpio/gpioxxx/value&lt;br /&gt;
&lt;br /&gt;
Check the base gpio, you could see mine is 411&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-GPIO-Base.jpg]]&lt;br /&gt;
&lt;br /&gt;
For example: if you want to change gpio 22 as out highlevel, you need input commands like this：&lt;br /&gt;
&lt;br /&gt;
* echo 433（22+411） &amp;gt; /sys/class/gpio/export&lt;br /&gt;
* echo out &amp;gt; /sys/class/gpio/gpio433/direction&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/gpio/gpio433/value&lt;br /&gt;
&lt;br /&gt;
===FAN===&lt;br /&gt;
&lt;br /&gt;
[[Image:FAN.png]]&lt;br /&gt;
&lt;br /&gt;
* R317 for 5V FAN and R318 for 12V FAN.&lt;br /&gt;
* CN23 supports PWM control while CN22 does not support.&lt;br /&gt;
&lt;br /&gt;
====PWM FAN Control====&lt;br /&gt;
* echo 0 &amp;gt; /sys/class/pwm/pwmchip0/export&lt;br /&gt;
* echo 10000 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/period&lt;br /&gt;
* echo 5000 &amp;gt;  /sys/class/pwm/pwmchip0/pwm0/duty_cycle&lt;br /&gt;
* echo normal &amp;gt; /sys/class/pwm/pwmchip0/pwm0/polarity&lt;br /&gt;
* echo 1 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/enable&lt;br /&gt;
&lt;br /&gt;
===miniPCIe slot===&lt;br /&gt;
currently, miniPCIe slot only support one USB 4G module, example: EC25&lt;br /&gt;
when you insert one EC25 module, you may check it.&lt;br /&gt;
&lt;br /&gt;
[[Image:BPI-R3-miniPCIe-Slot-EC25.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SFP===&lt;br /&gt;
After high and low temperature test, the following modules are suppoted by BPI-R3:&lt;br /&gt;
&lt;br /&gt;
[[Image:SFP.png]]&lt;br /&gt;
&lt;br /&gt;
===4G&amp;amp;5G===&lt;br /&gt;
* BPI-R3 supports 4G LTE EC25.&lt;br /&gt;
* If you want to use 5G on BPI-R3:&lt;br /&gt;
    1. Insert 5G dongle into USB3.0.&lt;br /&gt;
    2. Connect RG200U-CN to mini PCIe, connect SoC through USB2.0(speed limited).&lt;br /&gt;
    3. Make an RG200U-CN LGA adapter board and insert it into M.2 KEY M.&lt;br /&gt;
Note: The availability of 4G/5G depends on the local carrier frequency band.&lt;br /&gt;
&lt;br /&gt;
===Ap mode on BPI-R3===&lt;br /&gt;
&lt;br /&gt;
* ra0  is MT7986a 2.4G wifi&lt;br /&gt;
* rax0 is MT7986a 5G wifi&lt;br /&gt;
&lt;br /&gt;
===Wifi &amp;amp; Serial cable===&lt;br /&gt;
UART_TX0 is the Boot Strapping PIN and must be kept low during power-on&lt;br /&gt;
[[Image:Strapping.png]]&lt;br /&gt;
* '''If the chip type of serial cable is pl2303, the driver fails to load the firmware apparently and thus the wifi can't work.'''&lt;br /&gt;
* '''Other types including cp2102,ch340 and FDTI are all available, serial cable vlotage must be 3.3v LVTTL standard.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
*MT7986a Reference Manual for Develope Board(BPi)&lt;br /&gt;
::Google Drive：https://drive.google.com/file/d/1biSJmxnIpNzQroYDg9mtPtSTAv4i0DFf/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
='''Reference Link'''=&lt;br /&gt;
&lt;br /&gt;
http://forum.banana-pi.org/&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:Strapping.png&amp;diff=13658</id>
		<title>File:Strapping.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:Strapping.png&amp;diff=13658"/>
				<updated>2023-02-03T01:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=13600</id>
		<title>Getting Started with M5/M2Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=13600"/>
				<updated>2023-01-31T01:11:36Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Install Image to EMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_4.JPG|thumb|[[Banana Pi BPI-M5]]]]&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|Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_2.jpg|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M5 is a new generation single board computer design , use Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz) Processor. Mali-G31 MP2 GPU with 4 x Execution Engines (650Mhz). support 4GB LPDDR4 and 16G eMMC flash. it have 4 USB 3.0 port,1GbE LAN port, IR Reciver, Audio Jack, 1 HDMI Out and USB type-c power supply.&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2Pro is the same SOC with M5, but different board layout. 2GB LPDDR4 and 16G eMMC flash, 2 USB 3.0 port,1GbE LAN port, rtl8821cu usb wifi/bt onboard, IR Reciver, 1 HDMI Out, 1 MicroUSB port,  DC power supply.&lt;br /&gt;
&lt;br /&gt;
=specifications=&lt;br /&gt;
&lt;br /&gt;
*SoC – Amlogic S905X3 quad-core Cortex-A55 processor @ up to 2.0 GHz with&lt;br /&gt;
*Mali-G31 MP2 GPU @ 650Mhz&lt;br /&gt;
*System Memory – 4GB LPDDR4&lt;br /&gt;
*Storage – 16GB eMMC flash (option up to 64GB), MicroSD slot up to 2TB&lt;br /&gt;
*Video Output – HDMI 2.1 up to 4Kp60 with HDR, CEC, EDID&lt;br /&gt;
*Audio – 3.5mm audio jack, digital HDMI audio&lt;br /&gt;
*Connectivity – Gigabit Ethernet&lt;br /&gt;
*USB – 4x USB 3.0 ports via VL817 hub controller, 1x USB-C port (for power only?)&lt;br /&gt;
*Expansion – 40-pin Raspberry Pi header with 28x GPIO, UART, I2C, SPI, PWM, and power signal (+5V, +3.3V, GND).&lt;br /&gt;
*Debugging – 3-pin debug header&lt;br /&gt;
*Misc – Reset, Power, and U-boot button; power and activity LED’s; IR receiver&lt;br /&gt;
*Power Supply – 5V @3A via USB Type-C port&lt;br /&gt;
*Dimensions – 92x60mm (Not the same as Raspberry Pi PCB size, but they probably included the connectors during measurement)&lt;br /&gt;
*Weight – 48grams&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Prepare==&lt;br /&gt;
:1. Prepare a usb-serial cable, a 5V/3A adaptor type-c power supply. The serial cable is used for console debug and type-c cable is used for android image download and ADB debug. M2pro is used Micro-usb port for android image download and ADB debug.&lt;br /&gt;
:2. Prepare a SDcard at least 8GB for linux development, android only support emmc boot.&lt;br /&gt;
:3. The SOC rom first boot media is emmc, so board can't bootup from SDcard if the emmc is bootable with any image flashed, more info please refer to board [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence].&lt;br /&gt;
:4. In Android SDcard is mmc0, emmc is mmc1, but in Linux SDcard is mmc1, emmc is mmc0.&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download and install the [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Fimage_download_tools%2Faml_usb_burning_tool_V2_setup_v2.2.3.3.zip AML Usb Burning Tool] for android image download via USB type-c on M5 and Micro-usb on M2pro, only support windows.&lt;br /&gt;
:2. Download the latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#Android_2 android image], and confirm that the md5 checksum is correct.&lt;br /&gt;
:3. M5 and M2pro are compatiable with same android image.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Usb Burning Tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open USB_Burning_Tool.exe, select menu File-&amp;gt;Import image, choose the android image file aml_upgrade_package.img.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. M5/M2pro board disconnect power, press and hold SW4 button beside 40pin header, plugin type-c usb cable(microUSB on m2pro) to PC&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:3. Click the Start button and wait for upgrade complete.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:4. After Burning successfull, Unplug the usb and connect to power supply adaptor to startup.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:5. Click the Stop button to cancel the upgrade process and close the USB Buring Tool.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Aml Flash Tool===&lt;br /&gt;
:[https://github.com/Dangku/aml-flash-tool aml-flash-tool] is a linux platform opensource image flash util for Amlogic android.&lt;br /&gt;
&lt;br /&gt;
  $ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_flash.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
:1. Get Android 9.0 source code&lt;br /&gt;
&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9&lt;br /&gt;
&lt;br /&gt;
:2. Build the Android 9.0 Source code&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Android DTB overlay===&lt;br /&gt;
&lt;br /&gt;
:Bananapi M5/M2Pro DTBO idx value table, default idx value is 0 in release image.&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;4&amp;quot;| '''Bananapi M5/M2pro DTBO idx value table'''&lt;br /&gt;
|-&lt;br /&gt;
|idx value|| device tree overlay || description&lt;br /&gt;
|-&lt;br /&gt;
| 0|| android_p_overlay|| default dtbo, no use&lt;br /&gt;
|-&lt;br /&gt;
| 1|| wifi_bt_rtl8822cs|| enable bpi rtl8822cs wifi/bt module&lt;br /&gt;
|-&lt;br /&gt;
| 2|| i2c2|| enable i2c 2&lt;br /&gt;
|-&lt;br /&gt;
| 3|| i2c3|| enable i2c 3&lt;br /&gt;
|-&lt;br /&gt;
| 4|| sdio|| enable sdio&lt;br /&gt;
|-&lt;br /&gt;
| 5|| uart1|| enable 2 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 6|| uart1_cts_rts|| enable 4 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 7|| uart2|| enable 2 pins uart 2&lt;br /&gt;
|-&lt;br /&gt;
| 8|| hifi_pcm5122|| enable i2s [https://shumeipai.nxez.com/hifidac-hat-for-raspberry-pi pcm5122 HiFi DAC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:'''How to apply a new dtbo'''&lt;br /&gt;
&lt;br /&gt;
:1. ADB command via sysfs&lt;br /&gt;
&lt;br /&gt;
  root@dangku-desktop:/tmp# adb root&lt;br /&gt;
  restarting adbd as root&lt;br /&gt;
  root@dangku-desktop:/tmp# adb remount&lt;br /&gt;
  remount succeeded&lt;br /&gt;
  root@dangku-desktop:/tmp# adb shell&lt;br /&gt;
  bananapi_m5:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                                                &lt;br /&gt;
  bananapi_m5:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                                                &lt;br /&gt;
  bananapi_m5:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:2. Uart console command via sysfs&lt;br /&gt;
&lt;br /&gt;
  console:/ $ &lt;br /&gt;
  console:/ $ su&lt;br /&gt;
  console:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                              &lt;br /&gt;
  [  115.702781@0] unifykey: name_store() 1302, name dtbo, 4&lt;br /&gt;
  [  115.702856@0] unifykey: name_store() 1311&lt;br /&gt;
  console:/ #&lt;br /&gt;
  console:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                              &lt;br /&gt;
  [  129.262659@0] unifykey: write_store()  is a string&lt;br /&gt;
  [  129.262733@0] unifykey: dtbo, 1, 1&lt;br /&gt;
  [  129.265312@0] unifykey: amlkey_write 393&lt;br /&gt;
  [  129.292347@1] emmc_key_write:149, write ok&lt;br /&gt;
  console:/ # &lt;br /&gt;
  console:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:3. Settings App(To-Do)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Check the bootup uart debug message and confirm which dtbo is loaded actually, here &amp;quot;1&amp;quot; means set idx=1 to apply wifi_bt_rtl8822cs dtbo.&lt;br /&gt;
&lt;br /&gt;
  load dtb from 0x1000000 ......&lt;br /&gt;
        Amlogic multi-dtb tool&lt;br /&gt;
        Single dtb detected&lt;br /&gt;
  find 2 dtbos&lt;br /&gt;
  dtbos to be applied: 1&lt;br /&gt;
  Apply dtbo 1&lt;br /&gt;
&lt;br /&gt;
:Unifykeys is stored in a specific emmc part, &amp;quot;Normal erase&amp;quot; selected in USB_Burning_Tool will not erase this data for next update, you must select &amp;quot;Erase all&amp;quot; if you want the default dtbo idx to be applied after image download.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_erase_all.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Build Android image with a specific DTBO default'''.&lt;br /&gt;
&lt;br /&gt;
:1. Default build-in overlays are defined in device/amlogic/bananapi_m5/Kernel.mk, you can add a new overlay dtbo here.&lt;br /&gt;
  DTBO_DEVICETREE := android_p_overlay wifi_bt_rtl8822cs i2c2 i2c3 sdio uart1 uart1_cts_rts uart2 hifi_pcm5122&lt;br /&gt;
&lt;br /&gt;
:2. Default apply DTBO idx is defined in device/amlogic/bananapi_m5/BoardConfig.mk, you can change the idx value to set which overlay dtbo will be applied default.&lt;br /&gt;
  BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=0&lt;br /&gt;
&lt;br /&gt;
:3. DTS files are in common/arch/arm/boot/dts/amlogic/overlay/bananapi_m5/&lt;br /&gt;
&lt;br /&gt;
:More info about android device tree overlays, please refer to [https://source.android.com/devices/architecture/dto google android offical site]&lt;br /&gt;
&lt;br /&gt;
===Install OpenGapps===&lt;br /&gt;
&lt;br /&gt;
:1. Download install package from [https://opengapps.org/ OpenGapps], Android release image is arm/android 9.0 variant.&lt;br /&gt;
&lt;br /&gt;
[[File:opengapps.PNG]]&lt;br /&gt;
&lt;br /&gt;
:2. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fapps%2Fdevice_id_v1.3.2.apk device_id.apk].&lt;br /&gt;
:3. Copy the OpenGapp package to a udisk or sdcard root directory.&lt;br /&gt;
:4. Create a txt file named '''factory_update_param.aml''' in udisk or sdcard root directory with the following android recovery parameter content, and replace the file name with the actual downloaded package.  &lt;br /&gt;
::udisk:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/udisk/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
::sdcard:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/sdcard/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
:5. Plugin the udisk or sdcard to the board and poweron.&lt;br /&gt;
&lt;br /&gt;
:6.OpenGapps install and certify.&lt;br /&gt;
:&amp;lt;youtube&amp;gt;fXOKmWfpqF8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
:watch this video on [https://www.bilibili.com/video/BV13y4y1s77i/ bilibili]&lt;br /&gt;
&lt;br /&gt;
===IR Remote Control Custom===&lt;br /&gt;
:Before starting this work, some android basic concepts and knowledge need to be known.&lt;br /&gt;
&lt;br /&gt;
:*Linux kernel input key event.&lt;br /&gt;
:*Android keycode.&lt;br /&gt;
:*Linux keycode map to android keycode.&lt;br /&gt;
:*Android Adb function work on your PC&lt;br /&gt;
&lt;br /&gt;
:1. pull the remote files from device&lt;br /&gt;
  # adb pull /vendor/etc/remote.cfg&lt;br /&gt;
  # adb pull /vendor/etc/remote.tab &lt;br /&gt;
&lt;br /&gt;
:2. modify remote.cfg to enable remote debug message&lt;br /&gt;
:[[File:remotecfg.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.cfg back&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.cfg /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.cfg&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -d                                                  &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
&lt;br /&gt;
:3. Get the remote keycode&lt;br /&gt;
:Press your remote key one by one and then print the dmesg to get the remote custom_code and each remote key code.&lt;br /&gt;
&lt;br /&gt;
  # adb shell dmesg | grep framecode=&lt;br /&gt;
:[[File:keycode.png]]&lt;br /&gt;
&lt;br /&gt;
:custom_code = 0xfe01&lt;br /&gt;
:keycode = 0x00, 0x01, 0x09, 0x02, 0x0a, 0x05, 0x04 0x06, 0x03, 0x0b, 0x40, 0x48, 0x44&lt;br /&gt;
&lt;br /&gt;
:4. Modify remote.tab to map the scancode to android keycode&lt;br /&gt;
:[[File:remotetab.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.tab and test each key whether works&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.tab1 /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.tab&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -t /vendor/etc/remote.tab -d                                                                                                                               &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
  tabdir = /vendor/etc/remote.tab&lt;br /&gt;
  custom_name = nec-test&lt;br /&gt;
  fn_key_scancode = 0xffff&lt;br /&gt;
  cursor_left_scancode = 0xffff&lt;br /&gt;
  cursor_right_scancode = 0xffff&lt;br /&gt;
  cursor_up_scancode = 0xffff&lt;br /&gt;
  cursor_down_scancode = 0xffff&lt;br /&gt;
  cursor_ok_scancode = 0xffff&lt;br /&gt;
  custom_code = 0xfe01&lt;br /&gt;
  release_delay = 80&lt;br /&gt;
  map_size = 13&lt;br /&gt;
  key[0] = 0x74&lt;br /&gt;
  key[1] = 0x1008b&lt;br /&gt;
  key[2] = 0x90066&lt;br /&gt;
  key[3] = 0x20069&lt;br /&gt;
  key[4] = 0xa006a&lt;br /&gt;
  key[5] = 0x50067&lt;br /&gt;
  key[6] = 0x4006c&lt;br /&gt;
  key[7] = 0x6001c&lt;br /&gt;
  key[8] = 0x30072&lt;br /&gt;
  key[9] = 0xb0073&lt;br /&gt;
  key[10] = 0x40009e&lt;br /&gt;
  key[11] = 0x4800a4&lt;br /&gt;
  key[12] = 0x440071&lt;br /&gt;
&lt;br /&gt;
:5. Reboot the board&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 [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. M5 and M2pro are compatiable with same Linux image.&lt;br /&gt;
&lt;br /&gt;
:2. Make sure bootable EMMC is formatted if you want bootup from SDcard, more info refer to [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_EMMC_for_SDcard_Bootup Erase EMMC for SDcard Bootup]&lt;br /&gt;
&lt;br /&gt;
:3. 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;
:4. Install bpi-tools on your Linux PC(if [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash image] with other tools, ignore this step). If you can't access this URL or any other install problem, please go to [https://github.com/bpi-sinovoip/bpi-tools bpi-tools] source repo, download and install this tools manually.&lt;br /&gt;
  $ apt-get install pv&lt;br /&gt;
  $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
&lt;br /&gt;
:5. Download Linux latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#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;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with 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 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-m5-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:3. 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-m5-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to EMMC===&lt;br /&gt;
:1. Prepare a [https://wiki.banana-pi.org/Getting_Started_with_BPI-M5/M2Pro#Install_Image_to_SDcard SDcard with Linux image] flashed and bootup board with this SDcard.&lt;br /&gt;
&lt;br /&gt;
:2. Copy Linux image to udisk, plug the udisk to board and mount it.&lt;br /&gt;
&lt;br /&gt;
:3. There are two ways to install the linux image to board.&lt;br /&gt;
  3.1 Install with dd command, umount mmcblk0p1 and mmcblk0p2 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-m5-xxx.img.zip | pv | dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
  3.2 Install the linux image in udisk with bpi-tools command&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-m5-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
:4. After download complete, power off safely and eject the SDcard.&lt;br /&gt;
&lt;br /&gt;
===Build Linux Source Code===&lt;br /&gt;
:1. Get the Linux bsp source code&lt;br /&gt;
  $  git clone https://github.com/BPI-SINOVOIP/BPI-M5-bsp&lt;br /&gt;
:2. Build the bsp source code&lt;br /&gt;
&lt;br /&gt;
::Please read the source code [https://github.com/BPI-SINOVOIP/BPI-M5-bsp/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
:3. If you want build uboot and kernel separately, please download the [https://github.com/Dangku/amlogic-u-boot/tree/odroidg12-v2015.01-c4-m5 u-boot] the [https://github.com/Dangku/amlogic-linux/tree/odroidg12-4.9.y-c4-m5 kernel] only, get the toolchains, boot script and other configuration files from [https://github.com/BPI-SINOVOIP/BPI-M5-bsp BPI-M5-bsp]&lt;br /&gt;
&lt;br /&gt;
===DTB overlay===&lt;br /&gt;
:1. DTB overlay is used for 40pin gpios multi-function configuration and install in vfat boot partition, you can check the mount point with mount command.&lt;br /&gt;
  root@bananapi:~# ls /boot/firmware/overlays/&lt;br /&gt;
  custom_ir.dtbo      pwm_b-backlight.dtbo  spi0.dtbo&lt;br /&gt;
  ds3231.dtbo         pwm_c-beeper.dtbo     uart1_cts_rts.dtbo&lt;br /&gt;
  hifi_pcm5102a.dtbo  pwm_cd-c.dtbo         uart1.dtbo&lt;br /&gt;
  hifi_pcm5122.dtbo   pwm_cd.dtbo           uart2.dtbo&lt;br /&gt;
  i2c0.dtbo           pwm_ef.dtbo           waveshare_tft24_lcd.dtbo&lt;br /&gt;
  i2c1.dtbo           pwm_ef-f.dtbo         waveshare_tft35c_lcd.dtbo&lt;br /&gt;
  pwm_ab.dtbo         sdio.dtbo             waveshare_tft35c_rtp.dtbo&lt;br /&gt;
&lt;br /&gt;
:2. Update the overlays env in vfat /boot/firmware/boot.ini to enable what you want. Default i2c0, spi0 and uart1 enabled.&lt;br /&gt;
&lt;br /&gt;
  # Overlays to load&lt;br /&gt;
  # Example combinations:&lt;br /&gt;
  #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
  #   hktft32&lt;br /&gt;
  #   hktft35&lt;br /&gt;
  setenv overlays &amp;quot;i2c0 spi0 uart1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:3. Must be restart the board for overlay dtb loaded.&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
: Note: This WiringPi only support set 40pin gpio to output, input or software pwm, for io functions as i2c, spi, pwm..., you must enable dtb overlay in boot.ini&lt;br /&gt;
&lt;br /&gt;
:1. Build and install wiringPi&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/amlogic-wiringPi&lt;br /&gt;
  $ cd amlogic-wiringPi&lt;br /&gt;
  $ chmod a+x build&lt;br /&gt;
  $ sudo ./build&lt;br /&gt;
&lt;br /&gt;
:2. Run '''gpio readall''' to show all 40pins status.&lt;br /&gt;
[[File:m5_wiringpi.png]]&lt;br /&gt;
&lt;br /&gt;
:3. BPI GPIO Extend board and examples in [https://github.com/BPI-SINOVOIP/amlogic-wiringPi/tree/master/examples amlogic-wiringPi/examples]&lt;br /&gt;
&lt;br /&gt;
:blinkall, blink all pin header gpios, no extend board.&lt;br /&gt;
:lcd-bpi, [http://wiki.banana-pi.org/BPI_LCD_1602_display_module BPI LCD 1602 display module] example.&lt;br /&gt;
:52pi-bpi, [http://wiki.banana-pi.org/BPI_OLED_Display_Module BPI OLED Display Module] example.&lt;br /&gt;
:matrixled-bpi, [http://wiki.banana-pi.org/BPI_RGB_LED_Matrix_Expansion_Module BPI RGB LED Matrix Expansion Module] example.&lt;br /&gt;
:berryclip-bpi, [http://wiki.banana-pi.org/BPI_BerryClip_Module BPI BerryClip Module]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get install build-essential python python-dev python-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python setup.py clean --all&lt;br /&gt;
  $ sudo python setup.py build install&lt;br /&gt;
&lt;br /&gt;
===WiringPi2-Python===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get install python python-dev python-setuptools swig git&lt;br /&gt;
  $ git clone --recursive  https://github.com/Dangku/WiringPi2-Python-Amlogic.git&lt;br /&gt;
  $ cd WiringPi2-Python-Amlogic&lt;br /&gt;
  $ sudo python setup.py install&lt;br /&gt;
&lt;br /&gt;
===Boot Linux from USB drive===&lt;br /&gt;
&lt;br /&gt;
:S905x3 is not support usb boot in soc rom, so the only way for booting linux from usb drive is create a bootable sdcard or emmc with bootloader flashed, then load boot and rootfs from usb drive. After bootup, everything will run from usb drive.&lt;br /&gt;
&lt;br /&gt;
:1. The simple way is [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash the M5/M2Pro Linux image to sdcard or emmc] for bootable and also flash it to the usb drive for loading boot and rootfs.&lt;br /&gt;
:2. Bootup the M5/M2pro board with [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Boot_Sequence sdcard or emmc], copy /boot/boot.ini to /boot/boot.ini.org so that bootloader load boot.ini fail and then try to load it from usb drive boot partition.&lt;br /&gt;
:3. Reboot the system, bootscript and rootfs will load from usb drive.&lt;br /&gt;
:[[File:m5_boot_from_usb.png]]&lt;br /&gt;
&lt;br /&gt;
:4. Test performance&lt;br /&gt;
:You can verify the performance of your usb drive on Pi Benchmarks using the following command:&lt;br /&gt;
  sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash&lt;br /&gt;
&lt;br /&gt;
:Test results for sd, emmc and usb drive&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Category || Test || Sdcard Test Result || Emmc Test Result || Usb Drive Test Result&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Disk Read || 67.91 MB/s || 156.64 MB/s || 253.40 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Cached Disk Read || 57.39 MB/s || 126.53 MB/s || 253.52 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| DD || Disk Write || 13.0 MB/s || 48.8 MB/s || 149 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random read || 2456 IOPS (9826 KB/s) || 9701 IOPS (38806 KB/s) || 5474 IOPS (21897 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random write || 938 IOPS (3753 KB/s) || 12888 IOPS (51554 KB/s) || 6980 IOPS (27920 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k read || 10615 KB/s || 29568 KB/s || 23770 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k write || 4276 KB/s || 33585 KB/s || 18598 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random read || 8661 KB/s || 29637 KB/s || 19982 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random write || 4795 KB/s || 38177 KB/s || 22134 KB/s&lt;br /&gt;
|-&lt;br /&gt;
|  ||  || Score: 1300 || Score: 7811 || Score: 5879&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Other Development==&lt;br /&gt;
&lt;br /&gt;
===Custom Linux Boot Logo===&lt;br /&gt;
:Linux uboot limit boot logo fb size to 1080p60hz/1920x1080 default, so oversize resolution will not be supported by default image, but you can modify uboot source code to support it.&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
:3. copy the target file to BPI-BOOT partition of linux image&lt;br /&gt;
  $ cp boot-logo.bmp.gz /media/xxx/BPI-BOOT/&lt;br /&gt;
&lt;br /&gt;
===Custom Android Boot Logo===&lt;br /&gt;
:Android bootloader limit boot logo fb display size is 1080p60hz/1920x1080 default, and android kernel dtb partition table limit boot logo partition size to 16MB default .&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:3. Download [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Flogo_create_tools%2Fm5_android_bootlogo_tool.zip m5_android_bootlogo_tool.zip]&lt;br /&gt;
&lt;br /&gt;
:4. Extract this tool&lt;br /&gt;
  $ unzip m5_android_bootlogo_tool.zip&lt;br /&gt;
  $ cd m5_android_bootlogo_tool/&lt;br /&gt;
  $ cp -a logo_img_files logo               //logo_img_files is the origin bootlogo resource in android source and copy from &amp;lt;android-source-dir&amp;gt;/devices/amlogic/bananapi_m5/log_img_files&lt;br /&gt;
  $ ls -l logo/&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup_X3.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_bar.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_error.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_fail.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_logo.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_success.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_unfocus.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_upgrading.bmp&lt;br /&gt;
&lt;br /&gt;
:5. Copy the boot-logo.bmp.gz&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup.bmp&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup_X3.bmp&lt;br /&gt;
&lt;br /&gt;
:6. Create target logo.img with img pack tool, the binary and related libs of m5_android_bootlogo_tool are copy from &amp;lt;android-source-dir&amp;gt;/out/host/linux-x86&lt;br /&gt;
  $ ./logo_img_packer -r logo logo.img&lt;br /&gt;
&lt;br /&gt;
:7. Flash boot logo with fastboot&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb reboot fastboot&lt;br /&gt;
:Wait few seconds and check whether fastboot connected&lt;br /&gt;
  $ fastboot device&lt;br /&gt;
  1234567890      fastboot&lt;br /&gt;
  $ fastboot flashing unlock_critical&lt;br /&gt;
  $ fastboot flashing unlock&lt;br /&gt;
  $ fastboot flash logo logo.img&lt;br /&gt;
  $ fastboot reboot&lt;br /&gt;
&lt;br /&gt;
===Boot Sequence===&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_boot_squence.png]]&lt;br /&gt;
&lt;br /&gt;
:Check bootloader loaded from SDcard or EMMC at the beginning of the console debug messages&lt;br /&gt;
&lt;br /&gt;
:1. Rom load bootloader from SDcard (Linux log example)&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  BL2 Built : 15:21:42, Mar 26 2020. g12a g486bc38 - gongwei.chen@droid11-sz&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from SD''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  fastboot data verify&lt;br /&gt;
  result: 255&lt;br /&gt;
  Cfg max: 12, cur: 1. Board id: 255. Force loop cfg&lt;br /&gt;
  DDR4 probe&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:2. Rom load bootloader from EMMC(Android Log example)&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  eMMC boot @ 0&lt;br /&gt;
  sw8 s&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from eMMC''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  00000000&lt;br /&gt;
  emmc switch 1 ok&lt;br /&gt;
  ddr saved addr:00016000&lt;br /&gt;
  Load ddr parameter from eMMC, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000, part: 0&lt;br /&gt;
  00000000&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
===Erase EMMC for SDcard Bootup===&lt;br /&gt;
:There are four possible scenarios should be pay attention to, EMMC already flashed Android image, EMMC already flashed Linux image, boot process hangup in BL2 and EMMC empty.&lt;br /&gt;
&lt;br /&gt;
:1. Bootable EMMC with Android image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using usb burning tool, unplug the download usb cable while the download process at '''7% formatting'''&lt;br /&gt;
&lt;br /&gt;
::[[File:m5_android_format.png]]&lt;br /&gt;
&lt;br /&gt;
::b). Using Android Fastboot tool, make sure the adb/fastboot tools is work on your PC before doing this.&lt;br /&gt;
&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb root'''&lt;br /&gt;
    adbd is already running as root&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb remount'''&lt;br /&gt;
    remount succeeded&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb shell'''&lt;br /&gt;
    bananapi_m5:/ # '''reboot fastboot'''&lt;br /&gt;
::Wait a few seconds for board reboot to fastboot mode&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot devices'''&lt;br /&gt;
    1234567890	fastboot&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock_critical'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.044s]&lt;br /&gt;
    finished. total time: 0.044s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.047s]&lt;br /&gt;
    finished. total time: 0.047s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader'''&lt;br /&gt;
    erasing 'bootloader'...&lt;br /&gt;
    OKAY [  0.059s]&lt;br /&gt;
    finished. total time: 0.059s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot0'''&lt;br /&gt;
    erasing 'bootloader-boot0'...&lt;br /&gt;
    OKAY [  0.036s]&lt;br /&gt;
    finished. total time: 0.036s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot1'''&lt;br /&gt;
    erasing 'bootloader-boot1'...&lt;br /&gt;
    OKAY [  0.035s]&lt;br /&gt;
    finished. total time: 0.035s&lt;br /&gt;
&lt;br /&gt;
::c). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5_v1#'''amlmmc erase 1'''&lt;br /&gt;
    emmckey_is_protected(): protect&lt;br /&gt;
    start = 0,end = 57343&lt;br /&gt;
    start = 221184,end = 30535679&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot0&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot1&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    bananapi_m5_v1#'''reset'''&lt;br /&gt;
    resetting ...&lt;br /&gt;
    SM1:BL:511f6b:81ca2f;FEAT:A0F83180:20282000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK;&lt;br /&gt;
&lt;br /&gt;
::These two ways actually erase the bootloader part of EMMC android, After bootup from SDcard Linux, You'd better [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command].&lt;br /&gt;
&lt;br /&gt;
::d). The simplest way is insert the SDcard with Linux image flashed before power on, the Android bootloader will check boot.ini file whether exist in SDcard vfat partition, so that the SDcard Linux will bootup. After bootup, you can [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command] and then flash the Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
    BPI: try boot from sdcard&lt;br /&gt;
    reading boot.ini&lt;br /&gt;
    5699 bytes read in 3 ms (1.8 MiB/s)&lt;br /&gt;
    ## Executing script at 01b00000&lt;br /&gt;
    ...&lt;br /&gt;
    reading Image.gz&lt;br /&gt;
    9143358 bytes read in 510 ms (17.1 MiB/s)&lt;br /&gt;
    reading meson64_bananapi_m5.dtb&lt;br /&gt;
    70850 bytes read in 8 ms (8.4 MiB/s)&lt;br /&gt;
    reading uInitrd&lt;br /&gt;
    11704481 bytes read in 655 ms (17 MiB/s)&lt;br /&gt;
    reading overlays/i2c0.dtbo&lt;br /&gt;
    223 bytes read in 6 ms (36.1 KiB/s)&lt;br /&gt;
    reading overlays/spi0.dtbo&lt;br /&gt;
    516 bytes read in 6 ms (84 KiB/s)&lt;br /&gt;
    reading overlays/uart1.dtbo&lt;br /&gt;
    225 bytes read in 5 ms (43.9 KiB/s)&lt;br /&gt;
&lt;br /&gt;
:2. Bootable EMMC with Linux image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5# mmc erase 0 1000&lt;br /&gt;
&lt;br /&gt;
::b). Linux u-boot also check boot.ini file whether exist in SDcard vfat partition so that the SDcard Linux will bootup. After bootup, you can format the whole EMMC by dd command or flash the Linux image directly to EMMC.&lt;br /&gt;
&lt;br /&gt;
:3. A extreme situation is bootloader or uboot corrupted, Rom load it from EMMC but hangup in u-boot or BL2, for example the boot process will hangup in BL2 of EMMC if dram init failed,  The only way is format the EMMC with usb burning tool, or download the Android image completely and then try other ways to erase EMMC or flash Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
:4. Rom will try to load bootloader from SDcard directly if EMMC is empty.&lt;br /&gt;
&lt;br /&gt;
===Erase Emmc Android by dd command===&lt;br /&gt;
:If the board is flashed android before, the whole emmc must be erased by these commands if you want bootup it with SDcard Linux image.&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1M status=noxfer &lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1M status=noxfer&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M status=noxfer &lt;br /&gt;
  $ sync&lt;br /&gt;
&lt;br /&gt;
===Wifi/BT support===&lt;br /&gt;
&lt;br /&gt;
:1. Android test and support.&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
  rtl8814au wifi(usb), please get the [https://github.com/aircrack-ng/rtl8814au aircrack-ng] driver and install.&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Android Wifi/BT'''&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and reboot the system, After bootup, you can enable or disable wifi and bluetooth in Settings app.&lt;br /&gt;
:SDIO/UART type: Connect the hardware module to 40pin header correctly and [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Android_DTB_overlay configure the Android DTB overlay] to enable it.&lt;br /&gt;
&lt;br /&gt;
:'''Note''': Android is not support that ethernet and wifi are both connected at the same time, Ethernet have a higher prioprity than wifi, it means wifi can't connect network if ethernet already connected, and wifi will drop connection if ethernet cable plugin.&lt;br /&gt;
&lt;br /&gt;
:2. Linux test and support.&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  rtl8192eu wifi(usb)&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8811au wifi(usb)&lt;br /&gt;
  rtl8812au wifi(usb)&lt;br /&gt;
  rtl8812bu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Wifi'''&lt;br /&gt;
&lt;br /&gt;
:Wifi module drivers are already prebuild in the release images.&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
:SDIO/UART type:&lt;br /&gt;
::1). Connect the hardware module to 40pin header correctly.&lt;br /&gt;
::2). Configure the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#DTB_overlay dtb overlay]&lt;br /&gt;
   # Overlays to load&lt;br /&gt;
   # Example combinations:&lt;br /&gt;
   #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
   #   hktft32&lt;br /&gt;
   #   hktft35&lt;br /&gt;
   setenv overlays &amp;quot;wifi_bt_rtl8822cs&amp;quot;&lt;br /&gt;
::3). Add the wifi module name to /etc/modules for loaded automatically next boot.&lt;br /&gt;
  # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
  # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
  88x2cs&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Bluetooth'''&lt;br /&gt;
&lt;br /&gt;
::1). Please download [https://github.com/Dangku/m5-rtk-linux-bt-driver rtk-linux-bt-driver] source code, build and install usb or uart rtk linux bluetooth drivers/firmwares to your image.&lt;br /&gt;
::2). For USB type, plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
::3). For UART type, Configure the dtb overlay as the same as wifi before install the bluetooth drivers/firmwares. hci_uart driver will be loaded when rtk-hciuart.service start.&lt;br /&gt;
&lt;br /&gt;
===Linux Server Image Network Configuration===&lt;br /&gt;
&lt;br /&gt;
:[https://netplan.io Netplan]&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi STA mode'''&lt;br /&gt;
&lt;br /&gt;
:A sample wifi sta mode netplan configuration file, 01-wlan0-sta.yaml&lt;br /&gt;
 network:&lt;br /&gt;
   version: 2&lt;br /&gt;
   renderer: networkd&lt;br /&gt;
   wifis:&lt;br /&gt;
     wlan0:&lt;br /&gt;
       dhcp4: true&lt;br /&gt;
       access-points:&lt;br /&gt;
         &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi AP mode'''&lt;br /&gt;
&lt;br /&gt;
:1. Prepare the setup the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Wifi.2FBT_support wifi adater] correctly.&lt;br /&gt;
&lt;br /&gt;
:2. Get the wifi adapter Band, Frequencies, Channel, HT Capability, VHT Capability or other properties&lt;br /&gt;
 $ iw list&lt;br /&gt;
&lt;br /&gt;
:3. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Network-Manager.&lt;br /&gt;
&lt;br /&gt;
:Install NetworkManager because ap is only supported with NetworkManager renderer&lt;br /&gt;
 $ sudo apt install network-manager&lt;br /&gt;
&lt;br /&gt;
:A sample 2.4G wifi ap mode netplan configuration file, 01-wlan0-ap-2.4g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 2.4GHz&lt;br /&gt;
          channel: 6&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:A sample 5G wifi ap mode netplan configuration file, 01-wlan0-ap-5g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 5GHz&lt;br /&gt;
          channel: 36&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:4. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Hostapd.&lt;br /&gt;
&lt;br /&gt;
:1). Create a netplan configuration file, 01-wlan0-ap-hostapd.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: networkd&lt;br /&gt;
 ethernets:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     addresses:&lt;br /&gt;
       - 192.168.11.1/24&lt;br /&gt;
&lt;br /&gt;
:2). Install hostapd&lt;br /&gt;
 $ sudo apt install hostapd&lt;br /&gt;
&lt;br /&gt;
:Create hostapd configuration file /etc/hostapd/hostapd.conf, for example&lt;br /&gt;
 interface=wlan0&lt;br /&gt;
 ssid=bananapi&lt;br /&gt;
 &lt;br /&gt;
 driver=nl80211&lt;br /&gt;
 &lt;br /&gt;
 auth_algs=1&lt;br /&gt;
 wpa=2&lt;br /&gt;
 wpa_passphrase=123456789&lt;br /&gt;
 wpa_key_mgmt=WPA-PSK&lt;br /&gt;
 rsn_pairwise=CCMP&lt;br /&gt;
 &lt;br /&gt;
 #bridge=br0&lt;br /&gt;
 beacon_int=500&lt;br /&gt;
 #SSID not hidden&lt;br /&gt;
 ignore_broadcast_ssid=0&lt;br /&gt;
 &lt;br /&gt;
 hw_mode=a&lt;br /&gt;
 channel=36&lt;br /&gt;
 max_num_sta=8&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11n&lt;br /&gt;
 ieee80211n=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 ht_capab=[HT20][HT40+][SHORT-GI-20][SHORT-GI-40][SHORT-GI-80][DSSS_CCK-40]&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11ac&lt;br /&gt;
 ieee80211ac=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 #vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]&lt;br /&gt;
 #vht_oper_chwidth=1&lt;br /&gt;
 #vht_oper_centr_freq_seg0_idx=42&lt;br /&gt;
 &lt;br /&gt;
 ### WMM&lt;br /&gt;
 wmm_enabled=1&lt;br /&gt;
&lt;br /&gt;
:3). To support 80MHz channel width you need load driver with '''rtw_vht_enable=2''' option, Or you can create /etc/modprobe.d/8822cs.conf with content&lt;br /&gt;
 options 88x2cs rtw_vht_enable=2&lt;br /&gt;
&lt;br /&gt;
:4). Install and configure dhcp server service, use isc-dhcp-server for example&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp server interface in /etc/default/isc-dhcp-server&lt;br /&gt;
 # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?&lt;br /&gt;
 #       Separate multiple interfaces with spaces, e.g. &amp;quot;eth0 eth1&amp;quot;.&lt;br /&gt;
 INTERFACESv4=&amp;quot;wlan0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp subnet and dns in /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ...&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option domain-name-servers 8.8.8.8, 114.114.114.114;&lt;br /&gt;
 ...&lt;br /&gt;
 # No service will be given on this subnet, but declaring it helps the &lt;br /&gt;
 # DHCP server to understand the network topology.&lt;br /&gt;
 subnet 192.168.11.0 netmask 255.255.255.0 {&lt;br /&gt;
   range dynamic-bootp 192.168.11.1 192.168.11.100;&lt;br /&gt;
   option broadcast-address 192.168.11.255;&lt;br /&gt;
   option routers 192.168.11.1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
:5). Start Service&lt;br /&gt;
 $ sudo hostapd /etc/hostapd/hostapd.conf -B&lt;br /&gt;
 $ sudo systemctl restart isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:6). Routing configuration.&lt;br /&gt;
 sysctl net.ipv4.ip_forward=1&lt;br /&gt;
 iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
===Cloud-init&amp;amp;Snap===&lt;br /&gt;
:Cloud-init and Snap service are enabled default, you can disable or remove them.&lt;br /&gt;
&lt;br /&gt;
:1. disable or remove cloud-init&lt;br /&gt;
  $ sudo touch /etc/cloud/cloud-init.disabled&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo apt purge cloud-init&lt;br /&gt;
&lt;br /&gt;
:2. disable or remove snap&lt;br /&gt;
  $ sudo apt purge snapd&lt;br /&gt;
&lt;br /&gt;
===Enable rc-local===&lt;br /&gt;
:The systemd service rc-local.service already exists in release image, but there is no [Install] part in the unit file. As a result, Systemd is unable to enable it. First, we must update the file.&lt;br /&gt;
&lt;br /&gt;
  $ sudo nano /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=/etc/rc.local Compatibility&lt;br /&gt;
  Documentation=man:systemd-rc-local-generator(8)&lt;br /&gt;
  ConditionFileIsExecutable=/etc/rc.local&lt;br /&gt;
  After=network.target&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Type=forking&lt;br /&gt;
  ExecStart=/etc/rc.local start&lt;br /&gt;
  TimeoutSec=0&lt;br /&gt;
  RemainAfterExit=yes&lt;br /&gt;
  GuessMainPID=no&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=multi-user.target&lt;br /&gt;
  Alias=rc-local.service&lt;br /&gt;
&lt;br /&gt;
:Create /etc/rc.local file.&lt;br /&gt;
&lt;br /&gt;
  sudo nano /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  #&lt;br /&gt;
  # rc.local&lt;br /&gt;
  #&lt;br /&gt;
  # This script is executed at the end of each multiuser runlevel.&lt;br /&gt;
  # Make sure that the script will &amp;quot;exit 0&amp;quot; on success or any other&lt;br /&gt;
  # value on error.&lt;br /&gt;
  #&lt;br /&gt;
  # In order to enable or disable this script just change the execution&lt;br /&gt;
  # bits.&lt;br /&gt;
  #&lt;br /&gt;
  # By default this script does nothing.&lt;br /&gt;
  &lt;br /&gt;
  exit 0&lt;br /&gt;
&lt;br /&gt;
:Add executable permission to /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
:Enable rc-local.service and reboot&lt;br /&gt;
&lt;br /&gt;
  $ sudo systemctl enable rc-local.service&lt;br /&gt;
  $ sudo reboot&lt;br /&gt;
&lt;br /&gt;
===Enable sudo for Debian===&lt;br /&gt;
:The release Debian image do not install sudo default, with &amp;quot;su -&amp;quot; command, user can change to root. If you like sudo, you can install it.&lt;br /&gt;
&lt;br /&gt;
  $ su -&lt;br /&gt;
  Password:(enter bananapi)&lt;br /&gt;
  &lt;br /&gt;
  # apt install sudo&lt;br /&gt;
  # adduser pi sudo&lt;br /&gt;
&lt;br /&gt;
: Then please do logout and login again&lt;br /&gt;
&lt;br /&gt;
===Install Docker Engine===&lt;br /&gt;
:Install Docker Engine on Ubuntu 20.04 Server&lt;br /&gt;
  &lt;br /&gt;
:1. Set up the repository&lt;br /&gt;
&lt;br /&gt;
:Update the apt package index and install packages to allow apt to use a repository over HTTPS:&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
:Add Docker’s official GPG key:&lt;br /&gt;
  $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
:Set up the stable repository&lt;br /&gt;
  $  echo \&lt;br /&gt;
     &amp;quot;deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \&lt;br /&gt;
     $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
:2. Install Docker Engine&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install docker-ce docker-ce-cli containerd.io&lt;br /&gt;
&lt;br /&gt;
:3. Verify the Docker Engine is installed correctly by running the hello-world image.&lt;br /&gt;
  $ sudo docker run hello-world&lt;br /&gt;
&lt;br /&gt;
:[[File:docker-test.png]]&lt;br /&gt;
&lt;br /&gt;
Install docker with a simple command&lt;br /&gt;
&lt;br /&gt;
  $ curl -sSL get.docker.com | sudo sh&lt;br /&gt;
&lt;br /&gt;
[https://docs.docker.com/engine/install/ Install Docker Engine] on other Linux distributions&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=13599</id>
		<title>Getting Started with M5/M2Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=13599"/>
				<updated>2023-01-31T01:10:12Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* Install Image to EMMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_4.JPG|thumb|[[Banana Pi BPI-M5]]]]&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|Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_2.jpg|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M5 is a new generation single board computer design , use Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz) Processor. Mali-G31 MP2 GPU with 4 x Execution Engines (650Mhz). support 4GB LPDDR4 and 16G eMMC flash. it have 4 USB 3.0 port,1GbE LAN port, IR Reciver, Audio Jack, 1 HDMI Out and USB type-c power supply.&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2Pro is the same SOC with M5, but different board layout. 2GB LPDDR4 and 16G eMMC flash, 2 USB 3.0 port,1GbE LAN port, rtl8821cu usb wifi/bt onboard, IR Reciver, 1 HDMI Out, 1 MicroUSB port,  DC power supply.&lt;br /&gt;
&lt;br /&gt;
=specifications=&lt;br /&gt;
&lt;br /&gt;
*SoC – Amlogic S905X3 quad-core Cortex-A55 processor @ up to 2.0 GHz with&lt;br /&gt;
*Mali-G31 MP2 GPU @ 650Mhz&lt;br /&gt;
*System Memory – 4GB LPDDR4&lt;br /&gt;
*Storage – 16GB eMMC flash (option up to 64GB), MicroSD slot up to 2TB&lt;br /&gt;
*Video Output – HDMI 2.1 up to 4Kp60 with HDR, CEC, EDID&lt;br /&gt;
*Audio – 3.5mm audio jack, digital HDMI audio&lt;br /&gt;
*Connectivity – Gigabit Ethernet&lt;br /&gt;
*USB – 4x USB 3.0 ports via VL817 hub controller, 1x USB-C port (for power only?)&lt;br /&gt;
*Expansion – 40-pin Raspberry Pi header with 28x GPIO, UART, I2C, SPI, PWM, and power signal (+5V, +3.3V, GND).&lt;br /&gt;
*Debugging – 3-pin debug header&lt;br /&gt;
*Misc – Reset, Power, and U-boot button; power and activity LED’s; IR receiver&lt;br /&gt;
*Power Supply – 5V @3A via USB Type-C port&lt;br /&gt;
*Dimensions – 92x60mm (Not the same as Raspberry Pi PCB size, but they probably included the connectors during measurement)&lt;br /&gt;
*Weight – 48grams&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Prepare==&lt;br /&gt;
:1. Prepare a usb-serial cable, a 5V/3A adaptor type-c power supply. The serial cable is used for console debug and type-c cable is used for android image download and ADB debug. M2pro is used Micro-usb port for android image download and ADB debug.&lt;br /&gt;
:2. Prepare a SDcard at least 8GB for linux development, android only support emmc boot.&lt;br /&gt;
:3. The SOC rom first boot media is emmc, so board can't bootup from SDcard if the emmc is bootable with any image flashed, more info please refer to board [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence].&lt;br /&gt;
:4. In Android SDcard is mmc0, emmc is mmc1, but in Linux SDcard is mmc1, emmc is mmc0.&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download and install the [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Fimage_download_tools%2Faml_usb_burning_tool_V2_setup_v2.2.3.3.zip AML Usb Burning Tool] for android image download via USB type-c on M5 and Micro-usb on M2pro, only support windows.&lt;br /&gt;
:2. Download the latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#Android_2 android image], and confirm that the md5 checksum is correct.&lt;br /&gt;
:3. M5 and M2pro are compatiable with same android image.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Usb Burning Tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open USB_Burning_Tool.exe, select menu File-&amp;gt;Import image, choose the android image file aml_upgrade_package.img.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. M5/M2pro board disconnect power, press and hold SW4 button beside 40pin header, plugin type-c usb cable(microUSB on m2pro) to PC&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:3. Click the Start button and wait for upgrade complete.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:4. After Burning successfull, Unplug the usb and connect to power supply adaptor to startup.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:5. Click the Stop button to cancel the upgrade process and close the USB Buring Tool.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Aml Flash Tool===&lt;br /&gt;
:[https://github.com/Dangku/aml-flash-tool aml-flash-tool] is a linux platform opensource image flash util for Amlogic android.&lt;br /&gt;
&lt;br /&gt;
  $ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_flash.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
:1. Get Android 9.0 source code&lt;br /&gt;
&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9&lt;br /&gt;
&lt;br /&gt;
:2. Build the Android 9.0 Source code&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Android DTB overlay===&lt;br /&gt;
&lt;br /&gt;
:Bananapi M5/M2Pro DTBO idx value table, default idx value is 0 in release image.&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;4&amp;quot;| '''Bananapi M5/M2pro DTBO idx value table'''&lt;br /&gt;
|-&lt;br /&gt;
|idx value|| device tree overlay || description&lt;br /&gt;
|-&lt;br /&gt;
| 0|| android_p_overlay|| default dtbo, no use&lt;br /&gt;
|-&lt;br /&gt;
| 1|| wifi_bt_rtl8822cs|| enable bpi rtl8822cs wifi/bt module&lt;br /&gt;
|-&lt;br /&gt;
| 2|| i2c2|| enable i2c 2&lt;br /&gt;
|-&lt;br /&gt;
| 3|| i2c3|| enable i2c 3&lt;br /&gt;
|-&lt;br /&gt;
| 4|| sdio|| enable sdio&lt;br /&gt;
|-&lt;br /&gt;
| 5|| uart1|| enable 2 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 6|| uart1_cts_rts|| enable 4 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 7|| uart2|| enable 2 pins uart 2&lt;br /&gt;
|-&lt;br /&gt;
| 8|| hifi_pcm5122|| enable i2s [https://shumeipai.nxez.com/hifidac-hat-for-raspberry-pi pcm5122 HiFi DAC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:'''How to apply a new dtbo'''&lt;br /&gt;
&lt;br /&gt;
:1. ADB command via sysfs&lt;br /&gt;
&lt;br /&gt;
  root@dangku-desktop:/tmp# adb root&lt;br /&gt;
  restarting adbd as root&lt;br /&gt;
  root@dangku-desktop:/tmp# adb remount&lt;br /&gt;
  remount succeeded&lt;br /&gt;
  root@dangku-desktop:/tmp# adb shell&lt;br /&gt;
  bananapi_m5:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                                                &lt;br /&gt;
  bananapi_m5:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                                                &lt;br /&gt;
  bananapi_m5:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:2. Uart console command via sysfs&lt;br /&gt;
&lt;br /&gt;
  console:/ $ &lt;br /&gt;
  console:/ $ su&lt;br /&gt;
  console:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                              &lt;br /&gt;
  [  115.702781@0] unifykey: name_store() 1302, name dtbo, 4&lt;br /&gt;
  [  115.702856@0] unifykey: name_store() 1311&lt;br /&gt;
  console:/ #&lt;br /&gt;
  console:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                              &lt;br /&gt;
  [  129.262659@0] unifykey: write_store()  is a string&lt;br /&gt;
  [  129.262733@0] unifykey: dtbo, 1, 1&lt;br /&gt;
  [  129.265312@0] unifykey: amlkey_write 393&lt;br /&gt;
  [  129.292347@1] emmc_key_write:149, write ok&lt;br /&gt;
  console:/ # &lt;br /&gt;
  console:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:3. Settings App(To-Do)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Check the bootup uart debug message and confirm which dtbo is loaded actually, here &amp;quot;1&amp;quot; means set idx=1 to apply wifi_bt_rtl8822cs dtbo.&lt;br /&gt;
&lt;br /&gt;
  load dtb from 0x1000000 ......&lt;br /&gt;
        Amlogic multi-dtb tool&lt;br /&gt;
        Single dtb detected&lt;br /&gt;
  find 2 dtbos&lt;br /&gt;
  dtbos to be applied: 1&lt;br /&gt;
  Apply dtbo 1&lt;br /&gt;
&lt;br /&gt;
:Unifykeys is stored in a specific emmc part, &amp;quot;Normal erase&amp;quot; selected in USB_Burning_Tool will not erase this data for next update, you must select &amp;quot;Erase all&amp;quot; if you want the default dtbo idx to be applied after image download.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_erase_all.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Build Android image with a specific DTBO default'''.&lt;br /&gt;
&lt;br /&gt;
:1. Default build-in overlays are defined in device/amlogic/bananapi_m5/Kernel.mk, you can add a new overlay dtbo here.&lt;br /&gt;
  DTBO_DEVICETREE := android_p_overlay wifi_bt_rtl8822cs i2c2 i2c3 sdio uart1 uart1_cts_rts uart2 hifi_pcm5122&lt;br /&gt;
&lt;br /&gt;
:2. Default apply DTBO idx is defined in device/amlogic/bananapi_m5/BoardConfig.mk, you can change the idx value to set which overlay dtbo will be applied default.&lt;br /&gt;
  BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=0&lt;br /&gt;
&lt;br /&gt;
:3. DTS files are in common/arch/arm/boot/dts/amlogic/overlay/bananapi_m5/&lt;br /&gt;
&lt;br /&gt;
:More info about android device tree overlays, please refer to [https://source.android.com/devices/architecture/dto google android offical site]&lt;br /&gt;
&lt;br /&gt;
===Install OpenGapps===&lt;br /&gt;
&lt;br /&gt;
:1. Download install package from [https://opengapps.org/ OpenGapps], Android release image is arm/android 9.0 variant.&lt;br /&gt;
&lt;br /&gt;
[[File:opengapps.PNG]]&lt;br /&gt;
&lt;br /&gt;
:2. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fapps%2Fdevice_id_v1.3.2.apk device_id.apk].&lt;br /&gt;
:3. Copy the OpenGapp package to a udisk or sdcard root directory.&lt;br /&gt;
:4. Create a txt file named '''factory_update_param.aml''' in udisk or sdcard root directory with the following android recovery parameter content, and replace the file name with the actual downloaded package.  &lt;br /&gt;
::udisk:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/udisk/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
::sdcard:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/sdcard/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
:5. Plugin the udisk or sdcard to the board and poweron.&lt;br /&gt;
&lt;br /&gt;
:6.OpenGapps install and certify.&lt;br /&gt;
:&amp;lt;youtube&amp;gt;fXOKmWfpqF8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
:watch this video on [https://www.bilibili.com/video/BV13y4y1s77i/ bilibili]&lt;br /&gt;
&lt;br /&gt;
===IR Remote Control Custom===&lt;br /&gt;
:Before starting this work, some android basic concepts and knowledge need to be known.&lt;br /&gt;
&lt;br /&gt;
:*Linux kernel input key event.&lt;br /&gt;
:*Android keycode.&lt;br /&gt;
:*Linux keycode map to android keycode.&lt;br /&gt;
:*Android Adb function work on your PC&lt;br /&gt;
&lt;br /&gt;
:1. pull the remote files from device&lt;br /&gt;
  # adb pull /vendor/etc/remote.cfg&lt;br /&gt;
  # adb pull /vendor/etc/remote.tab &lt;br /&gt;
&lt;br /&gt;
:2. modify remote.cfg to enable remote debug message&lt;br /&gt;
:[[File:remotecfg.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.cfg back&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.cfg /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.cfg&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -d                                                  &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
&lt;br /&gt;
:3. Get the remote keycode&lt;br /&gt;
:Press your remote key one by one and then print the dmesg to get the remote custom_code and each remote key code.&lt;br /&gt;
&lt;br /&gt;
  # adb shell dmesg | grep framecode=&lt;br /&gt;
:[[File:keycode.png]]&lt;br /&gt;
&lt;br /&gt;
:custom_code = 0xfe01&lt;br /&gt;
:keycode = 0x00, 0x01, 0x09, 0x02, 0x0a, 0x05, 0x04 0x06, 0x03, 0x0b, 0x40, 0x48, 0x44&lt;br /&gt;
&lt;br /&gt;
:4. Modify remote.tab to map the scancode to android keycode&lt;br /&gt;
:[[File:remotetab.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.tab and test each key whether works&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.tab1 /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.tab&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -t /vendor/etc/remote.tab -d                                                                                                                               &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
  tabdir = /vendor/etc/remote.tab&lt;br /&gt;
  custom_name = nec-test&lt;br /&gt;
  fn_key_scancode = 0xffff&lt;br /&gt;
  cursor_left_scancode = 0xffff&lt;br /&gt;
  cursor_right_scancode = 0xffff&lt;br /&gt;
  cursor_up_scancode = 0xffff&lt;br /&gt;
  cursor_down_scancode = 0xffff&lt;br /&gt;
  cursor_ok_scancode = 0xffff&lt;br /&gt;
  custom_code = 0xfe01&lt;br /&gt;
  release_delay = 80&lt;br /&gt;
  map_size = 13&lt;br /&gt;
  key[0] = 0x74&lt;br /&gt;
  key[1] = 0x1008b&lt;br /&gt;
  key[2] = 0x90066&lt;br /&gt;
  key[3] = 0x20069&lt;br /&gt;
  key[4] = 0xa006a&lt;br /&gt;
  key[5] = 0x50067&lt;br /&gt;
  key[6] = 0x4006c&lt;br /&gt;
  key[7] = 0x6001c&lt;br /&gt;
  key[8] = 0x30072&lt;br /&gt;
  key[9] = 0xb0073&lt;br /&gt;
  key[10] = 0x40009e&lt;br /&gt;
  key[11] = 0x4800a4&lt;br /&gt;
  key[12] = 0x440071&lt;br /&gt;
&lt;br /&gt;
:5. Reboot the board&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 [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. M5 and M2pro are compatiable with same Linux image.&lt;br /&gt;
&lt;br /&gt;
:2. Make sure bootable EMMC is formatted if you want bootup from SDcard, more info refer to [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_EMMC_for_SDcard_Bootup Erase EMMC for SDcard Bootup]&lt;br /&gt;
&lt;br /&gt;
:3. 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;
:4. Install bpi-tools on your Linux PC(if [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash image] with other tools, ignore this step). If you can't access this URL or any other install problem, please go to [https://github.com/bpi-sinovoip/bpi-tools bpi-tools] source repo, download and install this tools manually.&lt;br /&gt;
  $ apt-get install pv&lt;br /&gt;
  $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
&lt;br /&gt;
:5. Download Linux latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#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;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with 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 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-m5-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:3. 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-m5-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to EMMC===&lt;br /&gt;
:1. Prepare a [https://wiki.banana-pi.org/Getting_Started_with_BPI-M5/M2Pro#Install_Image_to_SDcard SDcard with Linux image] flashed and bootup board with this SDcard.&lt;br /&gt;
&lt;br /&gt;
:2. Copy Linux image to udisk, plug the udisk to board and mount it.&lt;br /&gt;
&lt;br /&gt;
:3. There are two ways to install the linux image to board&lt;br /&gt;
  3.1. Install with dd command, umount mmcblk0p1 and mmcblk0p2 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-m5-xxx.img.zip | pv | dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
  3.2. Install the linux image in udisk with bpi-tools command&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-m5-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
:4. After download complete, power off safely and eject the SDcard.&lt;br /&gt;
&lt;br /&gt;
===Build Linux Source Code===&lt;br /&gt;
:1. Get the Linux bsp source code&lt;br /&gt;
  $  git clone https://github.com/BPI-SINOVOIP/BPI-M5-bsp&lt;br /&gt;
:2. Build the bsp source code&lt;br /&gt;
&lt;br /&gt;
::Please read the source code [https://github.com/BPI-SINOVOIP/BPI-M5-bsp/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
:3. If you want build uboot and kernel separately, please download the [https://github.com/Dangku/amlogic-u-boot/tree/odroidg12-v2015.01-c4-m5 u-boot] the [https://github.com/Dangku/amlogic-linux/tree/odroidg12-4.9.y-c4-m5 kernel] only, get the toolchains, boot script and other configuration files from [https://github.com/BPI-SINOVOIP/BPI-M5-bsp BPI-M5-bsp]&lt;br /&gt;
&lt;br /&gt;
===DTB overlay===&lt;br /&gt;
:1. DTB overlay is used for 40pin gpios multi-function configuration and install in vfat boot partition, you can check the mount point with mount command.&lt;br /&gt;
  root@bananapi:~# ls /boot/firmware/overlays/&lt;br /&gt;
  custom_ir.dtbo      pwm_b-backlight.dtbo  spi0.dtbo&lt;br /&gt;
  ds3231.dtbo         pwm_c-beeper.dtbo     uart1_cts_rts.dtbo&lt;br /&gt;
  hifi_pcm5102a.dtbo  pwm_cd-c.dtbo         uart1.dtbo&lt;br /&gt;
  hifi_pcm5122.dtbo   pwm_cd.dtbo           uart2.dtbo&lt;br /&gt;
  i2c0.dtbo           pwm_ef.dtbo           waveshare_tft24_lcd.dtbo&lt;br /&gt;
  i2c1.dtbo           pwm_ef-f.dtbo         waveshare_tft35c_lcd.dtbo&lt;br /&gt;
  pwm_ab.dtbo         sdio.dtbo             waveshare_tft35c_rtp.dtbo&lt;br /&gt;
&lt;br /&gt;
:2. Update the overlays env in vfat /boot/firmware/boot.ini to enable what you want. Default i2c0, spi0 and uart1 enabled.&lt;br /&gt;
&lt;br /&gt;
  # Overlays to load&lt;br /&gt;
  # Example combinations:&lt;br /&gt;
  #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
  #   hktft32&lt;br /&gt;
  #   hktft35&lt;br /&gt;
  setenv overlays &amp;quot;i2c0 spi0 uart1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:3. Must be restart the board for overlay dtb loaded.&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
: Note: This WiringPi only support set 40pin gpio to output, input or software pwm, for io functions as i2c, spi, pwm..., you must enable dtb overlay in boot.ini&lt;br /&gt;
&lt;br /&gt;
:1. Build and install wiringPi&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/amlogic-wiringPi&lt;br /&gt;
  $ cd amlogic-wiringPi&lt;br /&gt;
  $ chmod a+x build&lt;br /&gt;
  $ sudo ./build&lt;br /&gt;
&lt;br /&gt;
:2. Run '''gpio readall''' to show all 40pins status.&lt;br /&gt;
[[File:m5_wiringpi.png]]&lt;br /&gt;
&lt;br /&gt;
:3. BPI GPIO Extend board and examples in [https://github.com/BPI-SINOVOIP/amlogic-wiringPi/tree/master/examples amlogic-wiringPi/examples]&lt;br /&gt;
&lt;br /&gt;
:blinkall, blink all pin header gpios, no extend board.&lt;br /&gt;
:lcd-bpi, [http://wiki.banana-pi.org/BPI_LCD_1602_display_module BPI LCD 1602 display module] example.&lt;br /&gt;
:52pi-bpi, [http://wiki.banana-pi.org/BPI_OLED_Display_Module BPI OLED Display Module] example.&lt;br /&gt;
:matrixled-bpi, [http://wiki.banana-pi.org/BPI_RGB_LED_Matrix_Expansion_Module BPI RGB LED Matrix Expansion Module] example.&lt;br /&gt;
:berryclip-bpi, [http://wiki.banana-pi.org/BPI_BerryClip_Module BPI BerryClip Module]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get install build-essential python python-dev python-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python setup.py clean --all&lt;br /&gt;
  $ sudo python setup.py build install&lt;br /&gt;
&lt;br /&gt;
===WiringPi2-Python===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get install python python-dev python-setuptools swig git&lt;br /&gt;
  $ git clone --recursive  https://github.com/Dangku/WiringPi2-Python-Amlogic.git&lt;br /&gt;
  $ cd WiringPi2-Python-Amlogic&lt;br /&gt;
  $ sudo python setup.py install&lt;br /&gt;
&lt;br /&gt;
===Boot Linux from USB drive===&lt;br /&gt;
&lt;br /&gt;
:S905x3 is not support usb boot in soc rom, so the only way for booting linux from usb drive is create a bootable sdcard or emmc with bootloader flashed, then load boot and rootfs from usb drive. After bootup, everything will run from usb drive.&lt;br /&gt;
&lt;br /&gt;
:1. The simple way is [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash the M5/M2Pro Linux image to sdcard or emmc] for bootable and also flash it to the usb drive for loading boot and rootfs.&lt;br /&gt;
:2. Bootup the M5/M2pro board with [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Boot_Sequence sdcard or emmc], copy /boot/boot.ini to /boot/boot.ini.org so that bootloader load boot.ini fail and then try to load it from usb drive boot partition.&lt;br /&gt;
:3. Reboot the system, bootscript and rootfs will load from usb drive.&lt;br /&gt;
:[[File:m5_boot_from_usb.png]]&lt;br /&gt;
&lt;br /&gt;
:4. Test performance&lt;br /&gt;
:You can verify the performance of your usb drive on Pi Benchmarks using the following command:&lt;br /&gt;
  sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash&lt;br /&gt;
&lt;br /&gt;
:Test results for sd, emmc and usb drive&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Category || Test || Sdcard Test Result || Emmc Test Result || Usb Drive Test Result&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Disk Read || 67.91 MB/s || 156.64 MB/s || 253.40 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Cached Disk Read || 57.39 MB/s || 126.53 MB/s || 253.52 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| DD || Disk Write || 13.0 MB/s || 48.8 MB/s || 149 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random read || 2456 IOPS (9826 KB/s) || 9701 IOPS (38806 KB/s) || 5474 IOPS (21897 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random write || 938 IOPS (3753 KB/s) || 12888 IOPS (51554 KB/s) || 6980 IOPS (27920 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k read || 10615 KB/s || 29568 KB/s || 23770 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k write || 4276 KB/s || 33585 KB/s || 18598 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random read || 8661 KB/s || 29637 KB/s || 19982 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random write || 4795 KB/s || 38177 KB/s || 22134 KB/s&lt;br /&gt;
|-&lt;br /&gt;
|  ||  || Score: 1300 || Score: 7811 || Score: 5879&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Other Development==&lt;br /&gt;
&lt;br /&gt;
===Custom Linux Boot Logo===&lt;br /&gt;
:Linux uboot limit boot logo fb size to 1080p60hz/1920x1080 default, so oversize resolution will not be supported by default image, but you can modify uboot source code to support it.&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
:3. copy the target file to BPI-BOOT partition of linux image&lt;br /&gt;
  $ cp boot-logo.bmp.gz /media/xxx/BPI-BOOT/&lt;br /&gt;
&lt;br /&gt;
===Custom Android Boot Logo===&lt;br /&gt;
:Android bootloader limit boot logo fb display size is 1080p60hz/1920x1080 default, and android kernel dtb partition table limit boot logo partition size to 16MB default .&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:3. Download [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Flogo_create_tools%2Fm5_android_bootlogo_tool.zip m5_android_bootlogo_tool.zip]&lt;br /&gt;
&lt;br /&gt;
:4. Extract this tool&lt;br /&gt;
  $ unzip m5_android_bootlogo_tool.zip&lt;br /&gt;
  $ cd m5_android_bootlogo_tool/&lt;br /&gt;
  $ cp -a logo_img_files logo               //logo_img_files is the origin bootlogo resource in android source and copy from &amp;lt;android-source-dir&amp;gt;/devices/amlogic/bananapi_m5/log_img_files&lt;br /&gt;
  $ ls -l logo/&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup_X3.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_bar.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_error.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_fail.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_logo.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_success.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_unfocus.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_upgrading.bmp&lt;br /&gt;
&lt;br /&gt;
:5. Copy the boot-logo.bmp.gz&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup.bmp&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup_X3.bmp&lt;br /&gt;
&lt;br /&gt;
:6. Create target logo.img with img pack tool, the binary and related libs of m5_android_bootlogo_tool are copy from &amp;lt;android-source-dir&amp;gt;/out/host/linux-x86&lt;br /&gt;
  $ ./logo_img_packer -r logo logo.img&lt;br /&gt;
&lt;br /&gt;
:7. Flash boot logo with fastboot&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb reboot fastboot&lt;br /&gt;
:Wait few seconds and check whether fastboot connected&lt;br /&gt;
  $ fastboot device&lt;br /&gt;
  1234567890      fastboot&lt;br /&gt;
  $ fastboot flashing unlock_critical&lt;br /&gt;
  $ fastboot flashing unlock&lt;br /&gt;
  $ fastboot flash logo logo.img&lt;br /&gt;
  $ fastboot reboot&lt;br /&gt;
&lt;br /&gt;
===Boot Sequence===&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_boot_squence.png]]&lt;br /&gt;
&lt;br /&gt;
:Check bootloader loaded from SDcard or EMMC at the beginning of the console debug messages&lt;br /&gt;
&lt;br /&gt;
:1. Rom load bootloader from SDcard (Linux log example)&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  BL2 Built : 15:21:42, Mar 26 2020. g12a g486bc38 - gongwei.chen@droid11-sz&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from SD''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  fastboot data verify&lt;br /&gt;
  result: 255&lt;br /&gt;
  Cfg max: 12, cur: 1. Board id: 255. Force loop cfg&lt;br /&gt;
  DDR4 probe&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:2. Rom load bootloader from EMMC(Android Log example)&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  eMMC boot @ 0&lt;br /&gt;
  sw8 s&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from eMMC''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  00000000&lt;br /&gt;
  emmc switch 1 ok&lt;br /&gt;
  ddr saved addr:00016000&lt;br /&gt;
  Load ddr parameter from eMMC, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000, part: 0&lt;br /&gt;
  00000000&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
===Erase EMMC for SDcard Bootup===&lt;br /&gt;
:There are four possible scenarios should be pay attention to, EMMC already flashed Android image, EMMC already flashed Linux image, boot process hangup in BL2 and EMMC empty.&lt;br /&gt;
&lt;br /&gt;
:1. Bootable EMMC with Android image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using usb burning tool, unplug the download usb cable while the download process at '''7% formatting'''&lt;br /&gt;
&lt;br /&gt;
::[[File:m5_android_format.png]]&lt;br /&gt;
&lt;br /&gt;
::b). Using Android Fastboot tool, make sure the adb/fastboot tools is work on your PC before doing this.&lt;br /&gt;
&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb root'''&lt;br /&gt;
    adbd is already running as root&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb remount'''&lt;br /&gt;
    remount succeeded&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb shell'''&lt;br /&gt;
    bananapi_m5:/ # '''reboot fastboot'''&lt;br /&gt;
::Wait a few seconds for board reboot to fastboot mode&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot devices'''&lt;br /&gt;
    1234567890	fastboot&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock_critical'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.044s]&lt;br /&gt;
    finished. total time: 0.044s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.047s]&lt;br /&gt;
    finished. total time: 0.047s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader'''&lt;br /&gt;
    erasing 'bootloader'...&lt;br /&gt;
    OKAY [  0.059s]&lt;br /&gt;
    finished. total time: 0.059s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot0'''&lt;br /&gt;
    erasing 'bootloader-boot0'...&lt;br /&gt;
    OKAY [  0.036s]&lt;br /&gt;
    finished. total time: 0.036s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot1'''&lt;br /&gt;
    erasing 'bootloader-boot1'...&lt;br /&gt;
    OKAY [  0.035s]&lt;br /&gt;
    finished. total time: 0.035s&lt;br /&gt;
&lt;br /&gt;
::c). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5_v1#'''amlmmc erase 1'''&lt;br /&gt;
    emmckey_is_protected(): protect&lt;br /&gt;
    start = 0,end = 57343&lt;br /&gt;
    start = 221184,end = 30535679&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot0&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot1&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    bananapi_m5_v1#'''reset'''&lt;br /&gt;
    resetting ...&lt;br /&gt;
    SM1:BL:511f6b:81ca2f;FEAT:A0F83180:20282000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK;&lt;br /&gt;
&lt;br /&gt;
::These two ways actually erase the bootloader part of EMMC android, After bootup from SDcard Linux, You'd better [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command].&lt;br /&gt;
&lt;br /&gt;
::d). The simplest way is insert the SDcard with Linux image flashed before power on, the Android bootloader will check boot.ini file whether exist in SDcard vfat partition, so that the SDcard Linux will bootup. After bootup, you can [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command] and then flash the Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
    BPI: try boot from sdcard&lt;br /&gt;
    reading boot.ini&lt;br /&gt;
    5699 bytes read in 3 ms (1.8 MiB/s)&lt;br /&gt;
    ## Executing script at 01b00000&lt;br /&gt;
    ...&lt;br /&gt;
    reading Image.gz&lt;br /&gt;
    9143358 bytes read in 510 ms (17.1 MiB/s)&lt;br /&gt;
    reading meson64_bananapi_m5.dtb&lt;br /&gt;
    70850 bytes read in 8 ms (8.4 MiB/s)&lt;br /&gt;
    reading uInitrd&lt;br /&gt;
    11704481 bytes read in 655 ms (17 MiB/s)&lt;br /&gt;
    reading overlays/i2c0.dtbo&lt;br /&gt;
    223 bytes read in 6 ms (36.1 KiB/s)&lt;br /&gt;
    reading overlays/spi0.dtbo&lt;br /&gt;
    516 bytes read in 6 ms (84 KiB/s)&lt;br /&gt;
    reading overlays/uart1.dtbo&lt;br /&gt;
    225 bytes read in 5 ms (43.9 KiB/s)&lt;br /&gt;
&lt;br /&gt;
:2. Bootable EMMC with Linux image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5# mmc erase 0 1000&lt;br /&gt;
&lt;br /&gt;
::b). Linux u-boot also check boot.ini file whether exist in SDcard vfat partition so that the SDcard Linux will bootup. After bootup, you can format the whole EMMC by dd command or flash the Linux image directly to EMMC.&lt;br /&gt;
&lt;br /&gt;
:3. A extreme situation is bootloader or uboot corrupted, Rom load it from EMMC but hangup in u-boot or BL2, for example the boot process will hangup in BL2 of EMMC if dram init failed,  The only way is format the EMMC with usb burning tool, or download the Android image completely and then try other ways to erase EMMC or flash Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
:4. Rom will try to load bootloader from SDcard directly if EMMC is empty.&lt;br /&gt;
&lt;br /&gt;
===Erase Emmc Android by dd command===&lt;br /&gt;
:If the board is flashed android before, the whole emmc must be erased by these commands if you want bootup it with SDcard Linux image.&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1M status=noxfer &lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1M status=noxfer&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M status=noxfer &lt;br /&gt;
  $ sync&lt;br /&gt;
&lt;br /&gt;
===Wifi/BT support===&lt;br /&gt;
&lt;br /&gt;
:1. Android test and support.&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
  rtl8814au wifi(usb), please get the [https://github.com/aircrack-ng/rtl8814au aircrack-ng] driver and install.&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Android Wifi/BT'''&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and reboot the system, After bootup, you can enable or disable wifi and bluetooth in Settings app.&lt;br /&gt;
:SDIO/UART type: Connect the hardware module to 40pin header correctly and [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Android_DTB_overlay configure the Android DTB overlay] to enable it.&lt;br /&gt;
&lt;br /&gt;
:'''Note''': Android is not support that ethernet and wifi are both connected at the same time, Ethernet have a higher prioprity than wifi, it means wifi can't connect network if ethernet already connected, and wifi will drop connection if ethernet cable plugin.&lt;br /&gt;
&lt;br /&gt;
:2. Linux test and support.&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  rtl8192eu wifi(usb)&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8811au wifi(usb)&lt;br /&gt;
  rtl8812au wifi(usb)&lt;br /&gt;
  rtl8812bu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Wifi'''&lt;br /&gt;
&lt;br /&gt;
:Wifi module drivers are already prebuild in the release images.&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
:SDIO/UART type:&lt;br /&gt;
::1). Connect the hardware module to 40pin header correctly.&lt;br /&gt;
::2). Configure the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#DTB_overlay dtb overlay]&lt;br /&gt;
   # Overlays to load&lt;br /&gt;
   # Example combinations:&lt;br /&gt;
   #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
   #   hktft32&lt;br /&gt;
   #   hktft35&lt;br /&gt;
   setenv overlays &amp;quot;wifi_bt_rtl8822cs&amp;quot;&lt;br /&gt;
::3). Add the wifi module name to /etc/modules for loaded automatically next boot.&lt;br /&gt;
  # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
  # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
  88x2cs&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Bluetooth'''&lt;br /&gt;
&lt;br /&gt;
::1). Please download [https://github.com/Dangku/m5-rtk-linux-bt-driver rtk-linux-bt-driver] source code, build and install usb or uart rtk linux bluetooth drivers/firmwares to your image.&lt;br /&gt;
::2). For USB type, plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
::3). For UART type, Configure the dtb overlay as the same as wifi before install the bluetooth drivers/firmwares. hci_uart driver will be loaded when rtk-hciuart.service start.&lt;br /&gt;
&lt;br /&gt;
===Linux Server Image Network Configuration===&lt;br /&gt;
&lt;br /&gt;
:[https://netplan.io Netplan]&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi STA mode'''&lt;br /&gt;
&lt;br /&gt;
:A sample wifi sta mode netplan configuration file, 01-wlan0-sta.yaml&lt;br /&gt;
 network:&lt;br /&gt;
   version: 2&lt;br /&gt;
   renderer: networkd&lt;br /&gt;
   wifis:&lt;br /&gt;
     wlan0:&lt;br /&gt;
       dhcp4: true&lt;br /&gt;
       access-points:&lt;br /&gt;
         &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi AP mode'''&lt;br /&gt;
&lt;br /&gt;
:1. Prepare the setup the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Wifi.2FBT_support wifi adater] correctly.&lt;br /&gt;
&lt;br /&gt;
:2. Get the wifi adapter Band, Frequencies, Channel, HT Capability, VHT Capability or other properties&lt;br /&gt;
 $ iw list&lt;br /&gt;
&lt;br /&gt;
:3. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Network-Manager.&lt;br /&gt;
&lt;br /&gt;
:Install NetworkManager because ap is only supported with NetworkManager renderer&lt;br /&gt;
 $ sudo apt install network-manager&lt;br /&gt;
&lt;br /&gt;
:A sample 2.4G wifi ap mode netplan configuration file, 01-wlan0-ap-2.4g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 2.4GHz&lt;br /&gt;
          channel: 6&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:A sample 5G wifi ap mode netplan configuration file, 01-wlan0-ap-5g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 5GHz&lt;br /&gt;
          channel: 36&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:4. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Hostapd.&lt;br /&gt;
&lt;br /&gt;
:1). Create a netplan configuration file, 01-wlan0-ap-hostapd.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: networkd&lt;br /&gt;
 ethernets:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     addresses:&lt;br /&gt;
       - 192.168.11.1/24&lt;br /&gt;
&lt;br /&gt;
:2). Install hostapd&lt;br /&gt;
 $ sudo apt install hostapd&lt;br /&gt;
&lt;br /&gt;
:Create hostapd configuration file /etc/hostapd/hostapd.conf, for example&lt;br /&gt;
 interface=wlan0&lt;br /&gt;
 ssid=bananapi&lt;br /&gt;
 &lt;br /&gt;
 driver=nl80211&lt;br /&gt;
 &lt;br /&gt;
 auth_algs=1&lt;br /&gt;
 wpa=2&lt;br /&gt;
 wpa_passphrase=123456789&lt;br /&gt;
 wpa_key_mgmt=WPA-PSK&lt;br /&gt;
 rsn_pairwise=CCMP&lt;br /&gt;
 &lt;br /&gt;
 #bridge=br0&lt;br /&gt;
 beacon_int=500&lt;br /&gt;
 #SSID not hidden&lt;br /&gt;
 ignore_broadcast_ssid=0&lt;br /&gt;
 &lt;br /&gt;
 hw_mode=a&lt;br /&gt;
 channel=36&lt;br /&gt;
 max_num_sta=8&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11n&lt;br /&gt;
 ieee80211n=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 ht_capab=[HT20][HT40+][SHORT-GI-20][SHORT-GI-40][SHORT-GI-80][DSSS_CCK-40]&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11ac&lt;br /&gt;
 ieee80211ac=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 #vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]&lt;br /&gt;
 #vht_oper_chwidth=1&lt;br /&gt;
 #vht_oper_centr_freq_seg0_idx=42&lt;br /&gt;
 &lt;br /&gt;
 ### WMM&lt;br /&gt;
 wmm_enabled=1&lt;br /&gt;
&lt;br /&gt;
:3). To support 80MHz channel width you need load driver with '''rtw_vht_enable=2''' option, Or you can create /etc/modprobe.d/8822cs.conf with content&lt;br /&gt;
 options 88x2cs rtw_vht_enable=2&lt;br /&gt;
&lt;br /&gt;
:4). Install and configure dhcp server service, use isc-dhcp-server for example&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp server interface in /etc/default/isc-dhcp-server&lt;br /&gt;
 # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?&lt;br /&gt;
 #       Separate multiple interfaces with spaces, e.g. &amp;quot;eth0 eth1&amp;quot;.&lt;br /&gt;
 INTERFACESv4=&amp;quot;wlan0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp subnet and dns in /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ...&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option domain-name-servers 8.8.8.8, 114.114.114.114;&lt;br /&gt;
 ...&lt;br /&gt;
 # No service will be given on this subnet, but declaring it helps the &lt;br /&gt;
 # DHCP server to understand the network topology.&lt;br /&gt;
 subnet 192.168.11.0 netmask 255.255.255.0 {&lt;br /&gt;
   range dynamic-bootp 192.168.11.1 192.168.11.100;&lt;br /&gt;
   option broadcast-address 192.168.11.255;&lt;br /&gt;
   option routers 192.168.11.1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
:5). Start Service&lt;br /&gt;
 $ sudo hostapd /etc/hostapd/hostapd.conf -B&lt;br /&gt;
 $ sudo systemctl restart isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:6). Routing configuration.&lt;br /&gt;
 sysctl net.ipv4.ip_forward=1&lt;br /&gt;
 iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
===Cloud-init&amp;amp;Snap===&lt;br /&gt;
:Cloud-init and Snap service are enabled default, you can disable or remove them.&lt;br /&gt;
&lt;br /&gt;
:1. disable or remove cloud-init&lt;br /&gt;
  $ sudo touch /etc/cloud/cloud-init.disabled&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo apt purge cloud-init&lt;br /&gt;
&lt;br /&gt;
:2. disable or remove snap&lt;br /&gt;
  $ sudo apt purge snapd&lt;br /&gt;
&lt;br /&gt;
===Enable rc-local===&lt;br /&gt;
:The systemd service rc-local.service already exists in release image, but there is no [Install] part in the unit file. As a result, Systemd is unable to enable it. First, we must update the file.&lt;br /&gt;
&lt;br /&gt;
  $ sudo nano /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=/etc/rc.local Compatibility&lt;br /&gt;
  Documentation=man:systemd-rc-local-generator(8)&lt;br /&gt;
  ConditionFileIsExecutable=/etc/rc.local&lt;br /&gt;
  After=network.target&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Type=forking&lt;br /&gt;
  ExecStart=/etc/rc.local start&lt;br /&gt;
  TimeoutSec=0&lt;br /&gt;
  RemainAfterExit=yes&lt;br /&gt;
  GuessMainPID=no&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=multi-user.target&lt;br /&gt;
  Alias=rc-local.service&lt;br /&gt;
&lt;br /&gt;
:Create /etc/rc.local file.&lt;br /&gt;
&lt;br /&gt;
  sudo nano /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  #&lt;br /&gt;
  # rc.local&lt;br /&gt;
  #&lt;br /&gt;
  # This script is executed at the end of each multiuser runlevel.&lt;br /&gt;
  # Make sure that the script will &amp;quot;exit 0&amp;quot; on success or any other&lt;br /&gt;
  # value on error.&lt;br /&gt;
  #&lt;br /&gt;
  # In order to enable or disable this script just change the execution&lt;br /&gt;
  # bits.&lt;br /&gt;
  #&lt;br /&gt;
  # By default this script does nothing.&lt;br /&gt;
  &lt;br /&gt;
  exit 0&lt;br /&gt;
&lt;br /&gt;
:Add executable permission to /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
:Enable rc-local.service and reboot&lt;br /&gt;
&lt;br /&gt;
  $ sudo systemctl enable rc-local.service&lt;br /&gt;
  $ sudo reboot&lt;br /&gt;
&lt;br /&gt;
===Enable sudo for Debian===&lt;br /&gt;
:The release Debian image do not install sudo default, with &amp;quot;su -&amp;quot; command, user can change to root. If you like sudo, you can install it.&lt;br /&gt;
&lt;br /&gt;
  $ su -&lt;br /&gt;
  Password:(enter bananapi)&lt;br /&gt;
  &lt;br /&gt;
  # apt install sudo&lt;br /&gt;
  # adduser pi sudo&lt;br /&gt;
&lt;br /&gt;
: Then please do logout and login again&lt;br /&gt;
&lt;br /&gt;
===Install Docker Engine===&lt;br /&gt;
:Install Docker Engine on Ubuntu 20.04 Server&lt;br /&gt;
  &lt;br /&gt;
:1. Set up the repository&lt;br /&gt;
&lt;br /&gt;
:Update the apt package index and install packages to allow apt to use a repository over HTTPS:&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
:Add Docker’s official GPG key:&lt;br /&gt;
  $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
:Set up the stable repository&lt;br /&gt;
  $  echo \&lt;br /&gt;
     &amp;quot;deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \&lt;br /&gt;
     $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
:2. Install Docker Engine&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install docker-ce docker-ce-cli containerd.io&lt;br /&gt;
&lt;br /&gt;
:3. Verify the Docker Engine is installed correctly by running the hello-world image.&lt;br /&gt;
  $ sudo docker run hello-world&lt;br /&gt;
&lt;br /&gt;
:[[File:docker-test.png]]&lt;br /&gt;
&lt;br /&gt;
Install docker with a simple command&lt;br /&gt;
&lt;br /&gt;
  $ curl -sSL get.docker.com | sudo sh&lt;br /&gt;
&lt;br /&gt;
[https://docs.docker.com/engine/install/ Install Docker Engine] on other Linux distributions&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=13598</id>
		<title>Getting Started with M5/M2Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=13598"/>
				<updated>2023-01-31T01:07:22Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* WiringPi2-Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_4.JPG|thumb|[[Banana Pi BPI-M5]]]]&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|Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_2.jpg|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M5 is a new generation single board computer design , use Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz) Processor. Mali-G31 MP2 GPU with 4 x Execution Engines (650Mhz). support 4GB LPDDR4 and 16G eMMC flash. it have 4 USB 3.0 port,1GbE LAN port, IR Reciver, Audio Jack, 1 HDMI Out and USB type-c power supply.&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2Pro is the same SOC with M5, but different board layout. 2GB LPDDR4 and 16G eMMC flash, 2 USB 3.0 port,1GbE LAN port, rtl8821cu usb wifi/bt onboard, IR Reciver, 1 HDMI Out, 1 MicroUSB port,  DC power supply.&lt;br /&gt;
&lt;br /&gt;
=specifications=&lt;br /&gt;
&lt;br /&gt;
*SoC – Amlogic S905X3 quad-core Cortex-A55 processor @ up to 2.0 GHz with&lt;br /&gt;
*Mali-G31 MP2 GPU @ 650Mhz&lt;br /&gt;
*System Memory – 4GB LPDDR4&lt;br /&gt;
*Storage – 16GB eMMC flash (option up to 64GB), MicroSD slot up to 2TB&lt;br /&gt;
*Video Output – HDMI 2.1 up to 4Kp60 with HDR, CEC, EDID&lt;br /&gt;
*Audio – 3.5mm audio jack, digital HDMI audio&lt;br /&gt;
*Connectivity – Gigabit Ethernet&lt;br /&gt;
*USB – 4x USB 3.0 ports via VL817 hub controller, 1x USB-C port (for power only?)&lt;br /&gt;
*Expansion – 40-pin Raspberry Pi header with 28x GPIO, UART, I2C, SPI, PWM, and power signal (+5V, +3.3V, GND).&lt;br /&gt;
*Debugging – 3-pin debug header&lt;br /&gt;
*Misc – Reset, Power, and U-boot button; power and activity LED’s; IR receiver&lt;br /&gt;
*Power Supply – 5V @3A via USB Type-C port&lt;br /&gt;
*Dimensions – 92x60mm (Not the same as Raspberry Pi PCB size, but they probably included the connectors during measurement)&lt;br /&gt;
*Weight – 48grams&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Prepare==&lt;br /&gt;
:1. Prepare a usb-serial cable, a 5V/3A adaptor type-c power supply. The serial cable is used for console debug and type-c cable is used for android image download and ADB debug. M2pro is used Micro-usb port for android image download and ADB debug.&lt;br /&gt;
:2. Prepare a SDcard at least 8GB for linux development, android only support emmc boot.&lt;br /&gt;
:3. The SOC rom first boot media is emmc, so board can't bootup from SDcard if the emmc is bootable with any image flashed, more info please refer to board [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence].&lt;br /&gt;
:4. In Android SDcard is mmc0, emmc is mmc1, but in Linux SDcard is mmc1, emmc is mmc0.&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download and install the [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Fimage_download_tools%2Faml_usb_burning_tool_V2_setup_v2.2.3.3.zip AML Usb Burning Tool] for android image download via USB type-c on M5 and Micro-usb on M2pro, only support windows.&lt;br /&gt;
:2. Download the latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#Android_2 android image], and confirm that the md5 checksum is correct.&lt;br /&gt;
:3. M5 and M2pro are compatiable with same android image.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Usb Burning Tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open USB_Burning_Tool.exe, select menu File-&amp;gt;Import image, choose the android image file aml_upgrade_package.img.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. M5/M2pro board disconnect power, press and hold SW4 button beside 40pin header, plugin type-c usb cable(microUSB on m2pro) to PC&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:3. Click the Start button and wait for upgrade complete.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:4. After Burning successfull, Unplug the usb and connect to power supply adaptor to startup.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:5. Click the Stop button to cancel the upgrade process and close the USB Buring Tool.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Aml Flash Tool===&lt;br /&gt;
:[https://github.com/Dangku/aml-flash-tool aml-flash-tool] is a linux platform opensource image flash util for Amlogic android.&lt;br /&gt;
&lt;br /&gt;
  $ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_flash.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
:1. Get Android 9.0 source code&lt;br /&gt;
&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9&lt;br /&gt;
&lt;br /&gt;
:2. Build the Android 9.0 Source code&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Android DTB overlay===&lt;br /&gt;
&lt;br /&gt;
:Bananapi M5/M2Pro DTBO idx value table, default idx value is 0 in release image.&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;4&amp;quot;| '''Bananapi M5/M2pro DTBO idx value table'''&lt;br /&gt;
|-&lt;br /&gt;
|idx value|| device tree overlay || description&lt;br /&gt;
|-&lt;br /&gt;
| 0|| android_p_overlay|| default dtbo, no use&lt;br /&gt;
|-&lt;br /&gt;
| 1|| wifi_bt_rtl8822cs|| enable bpi rtl8822cs wifi/bt module&lt;br /&gt;
|-&lt;br /&gt;
| 2|| i2c2|| enable i2c 2&lt;br /&gt;
|-&lt;br /&gt;
| 3|| i2c3|| enable i2c 3&lt;br /&gt;
|-&lt;br /&gt;
| 4|| sdio|| enable sdio&lt;br /&gt;
|-&lt;br /&gt;
| 5|| uart1|| enable 2 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 6|| uart1_cts_rts|| enable 4 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 7|| uart2|| enable 2 pins uart 2&lt;br /&gt;
|-&lt;br /&gt;
| 8|| hifi_pcm5122|| enable i2s [https://shumeipai.nxez.com/hifidac-hat-for-raspberry-pi pcm5122 HiFi DAC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:'''How to apply a new dtbo'''&lt;br /&gt;
&lt;br /&gt;
:1. ADB command via sysfs&lt;br /&gt;
&lt;br /&gt;
  root@dangku-desktop:/tmp# adb root&lt;br /&gt;
  restarting adbd as root&lt;br /&gt;
  root@dangku-desktop:/tmp# adb remount&lt;br /&gt;
  remount succeeded&lt;br /&gt;
  root@dangku-desktop:/tmp# adb shell&lt;br /&gt;
  bananapi_m5:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                                                &lt;br /&gt;
  bananapi_m5:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                                                &lt;br /&gt;
  bananapi_m5:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:2. Uart console command via sysfs&lt;br /&gt;
&lt;br /&gt;
  console:/ $ &lt;br /&gt;
  console:/ $ su&lt;br /&gt;
  console:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                              &lt;br /&gt;
  [  115.702781@0] unifykey: name_store() 1302, name dtbo, 4&lt;br /&gt;
  [  115.702856@0] unifykey: name_store() 1311&lt;br /&gt;
  console:/ #&lt;br /&gt;
  console:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                              &lt;br /&gt;
  [  129.262659@0] unifykey: write_store()  is a string&lt;br /&gt;
  [  129.262733@0] unifykey: dtbo, 1, 1&lt;br /&gt;
  [  129.265312@0] unifykey: amlkey_write 393&lt;br /&gt;
  [  129.292347@1] emmc_key_write:149, write ok&lt;br /&gt;
  console:/ # &lt;br /&gt;
  console:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:3. Settings App(To-Do)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Check the bootup uart debug message and confirm which dtbo is loaded actually, here &amp;quot;1&amp;quot; means set idx=1 to apply wifi_bt_rtl8822cs dtbo.&lt;br /&gt;
&lt;br /&gt;
  load dtb from 0x1000000 ......&lt;br /&gt;
        Amlogic multi-dtb tool&lt;br /&gt;
        Single dtb detected&lt;br /&gt;
  find 2 dtbos&lt;br /&gt;
  dtbos to be applied: 1&lt;br /&gt;
  Apply dtbo 1&lt;br /&gt;
&lt;br /&gt;
:Unifykeys is stored in a specific emmc part, &amp;quot;Normal erase&amp;quot; selected in USB_Burning_Tool will not erase this data for next update, you must select &amp;quot;Erase all&amp;quot; if you want the default dtbo idx to be applied after image download.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_erase_all.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Build Android image with a specific DTBO default'''.&lt;br /&gt;
&lt;br /&gt;
:1. Default build-in overlays are defined in device/amlogic/bananapi_m5/Kernel.mk, you can add a new overlay dtbo here.&lt;br /&gt;
  DTBO_DEVICETREE := android_p_overlay wifi_bt_rtl8822cs i2c2 i2c3 sdio uart1 uart1_cts_rts uart2 hifi_pcm5122&lt;br /&gt;
&lt;br /&gt;
:2. Default apply DTBO idx is defined in device/amlogic/bananapi_m5/BoardConfig.mk, you can change the idx value to set which overlay dtbo will be applied default.&lt;br /&gt;
  BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=0&lt;br /&gt;
&lt;br /&gt;
:3. DTS files are in common/arch/arm/boot/dts/amlogic/overlay/bananapi_m5/&lt;br /&gt;
&lt;br /&gt;
:More info about android device tree overlays, please refer to [https://source.android.com/devices/architecture/dto google android offical site]&lt;br /&gt;
&lt;br /&gt;
===Install OpenGapps===&lt;br /&gt;
&lt;br /&gt;
:1. Download install package from [https://opengapps.org/ OpenGapps], Android release image is arm/android 9.0 variant.&lt;br /&gt;
&lt;br /&gt;
[[File:opengapps.PNG]]&lt;br /&gt;
&lt;br /&gt;
:2. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fapps%2Fdevice_id_v1.3.2.apk device_id.apk].&lt;br /&gt;
:3. Copy the OpenGapp package to a udisk or sdcard root directory.&lt;br /&gt;
:4. Create a txt file named '''factory_update_param.aml''' in udisk or sdcard root directory with the following android recovery parameter content, and replace the file name with the actual downloaded package.  &lt;br /&gt;
::udisk:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/udisk/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
::sdcard:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/sdcard/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
:5. Plugin the udisk or sdcard to the board and poweron.&lt;br /&gt;
&lt;br /&gt;
:6.OpenGapps install and certify.&lt;br /&gt;
:&amp;lt;youtube&amp;gt;fXOKmWfpqF8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
:watch this video on [https://www.bilibili.com/video/BV13y4y1s77i/ bilibili]&lt;br /&gt;
&lt;br /&gt;
===IR Remote Control Custom===&lt;br /&gt;
:Before starting this work, some android basic concepts and knowledge need to be known.&lt;br /&gt;
&lt;br /&gt;
:*Linux kernel input key event.&lt;br /&gt;
:*Android keycode.&lt;br /&gt;
:*Linux keycode map to android keycode.&lt;br /&gt;
:*Android Adb function work on your PC&lt;br /&gt;
&lt;br /&gt;
:1. pull the remote files from device&lt;br /&gt;
  # adb pull /vendor/etc/remote.cfg&lt;br /&gt;
  # adb pull /vendor/etc/remote.tab &lt;br /&gt;
&lt;br /&gt;
:2. modify remote.cfg to enable remote debug message&lt;br /&gt;
:[[File:remotecfg.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.cfg back&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.cfg /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.cfg&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -d                                                  &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
&lt;br /&gt;
:3. Get the remote keycode&lt;br /&gt;
:Press your remote key one by one and then print the dmesg to get the remote custom_code and each remote key code.&lt;br /&gt;
&lt;br /&gt;
  # adb shell dmesg | grep framecode=&lt;br /&gt;
:[[File:keycode.png]]&lt;br /&gt;
&lt;br /&gt;
:custom_code = 0xfe01&lt;br /&gt;
:keycode = 0x00, 0x01, 0x09, 0x02, 0x0a, 0x05, 0x04 0x06, 0x03, 0x0b, 0x40, 0x48, 0x44&lt;br /&gt;
&lt;br /&gt;
:4. Modify remote.tab to map the scancode to android keycode&lt;br /&gt;
:[[File:remotetab.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.tab and test each key whether works&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.tab1 /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.tab&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -t /vendor/etc/remote.tab -d                                                                                                                               &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
  tabdir = /vendor/etc/remote.tab&lt;br /&gt;
  custom_name = nec-test&lt;br /&gt;
  fn_key_scancode = 0xffff&lt;br /&gt;
  cursor_left_scancode = 0xffff&lt;br /&gt;
  cursor_right_scancode = 0xffff&lt;br /&gt;
  cursor_up_scancode = 0xffff&lt;br /&gt;
  cursor_down_scancode = 0xffff&lt;br /&gt;
  cursor_ok_scancode = 0xffff&lt;br /&gt;
  custom_code = 0xfe01&lt;br /&gt;
  release_delay = 80&lt;br /&gt;
  map_size = 13&lt;br /&gt;
  key[0] = 0x74&lt;br /&gt;
  key[1] = 0x1008b&lt;br /&gt;
  key[2] = 0x90066&lt;br /&gt;
  key[3] = 0x20069&lt;br /&gt;
  key[4] = 0xa006a&lt;br /&gt;
  key[5] = 0x50067&lt;br /&gt;
  key[6] = 0x4006c&lt;br /&gt;
  key[7] = 0x6001c&lt;br /&gt;
  key[8] = 0x30072&lt;br /&gt;
  key[9] = 0xb0073&lt;br /&gt;
  key[10] = 0x40009e&lt;br /&gt;
  key[11] = 0x4800a4&lt;br /&gt;
  key[12] = 0x440071&lt;br /&gt;
&lt;br /&gt;
:5. Reboot the board&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 [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. M5 and M2pro are compatiable with same Linux image.&lt;br /&gt;
&lt;br /&gt;
:2. Make sure bootable EMMC is formatted if you want bootup from SDcard, more info refer to [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_EMMC_for_SDcard_Bootup Erase EMMC for SDcard Bootup]&lt;br /&gt;
&lt;br /&gt;
:3. 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;
:4. Install bpi-tools on your Linux PC(if [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash image] with other tools, ignore this step). If you can't access this URL or any other install problem, please go to [https://github.com/bpi-sinovoip/bpi-tools bpi-tools] source repo, download and install this tools manually.&lt;br /&gt;
  $ apt-get install pv&lt;br /&gt;
  $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
&lt;br /&gt;
:5. Download Linux latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#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;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with 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 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-m5-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:3. 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-m5-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to EMMC===&lt;br /&gt;
:1. Prepare a [https://wiki.banana-pi.org/Getting_Started_with_BPI-M5/M2Pro#Install_Image_to_SDcard SDcard with Linux image] flashed and bootup board with this SDcard.&lt;br /&gt;
&lt;br /&gt;
:2. Copy Linux image to udisk, plug the udisk to board and mount it.&lt;br /&gt;
&lt;br /&gt;
:3. Install with dd command, umount mmcblk0p1 and mmcblk0p2 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-m5-xxx.img.zip | pv | dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install the linux image in udisk with bpi-tools command&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-m5-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
:5. After download complete, power off safely and eject the SDcard.&lt;br /&gt;
&lt;br /&gt;
===Build Linux Source Code===&lt;br /&gt;
:1. Get the Linux bsp source code&lt;br /&gt;
  $  git clone https://github.com/BPI-SINOVOIP/BPI-M5-bsp&lt;br /&gt;
:2. Build the bsp source code&lt;br /&gt;
&lt;br /&gt;
::Please read the source code [https://github.com/BPI-SINOVOIP/BPI-M5-bsp/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
:3. If you want build uboot and kernel separately, please download the [https://github.com/Dangku/amlogic-u-boot/tree/odroidg12-v2015.01-c4-m5 u-boot] the [https://github.com/Dangku/amlogic-linux/tree/odroidg12-4.9.y-c4-m5 kernel] only, get the toolchains, boot script and other configuration files from [https://github.com/BPI-SINOVOIP/BPI-M5-bsp BPI-M5-bsp]&lt;br /&gt;
&lt;br /&gt;
===DTB overlay===&lt;br /&gt;
:1. DTB overlay is used for 40pin gpios multi-function configuration and install in vfat boot partition, you can check the mount point with mount command.&lt;br /&gt;
  root@bananapi:~# ls /boot/firmware/overlays/&lt;br /&gt;
  custom_ir.dtbo      pwm_b-backlight.dtbo  spi0.dtbo&lt;br /&gt;
  ds3231.dtbo         pwm_c-beeper.dtbo     uart1_cts_rts.dtbo&lt;br /&gt;
  hifi_pcm5102a.dtbo  pwm_cd-c.dtbo         uart1.dtbo&lt;br /&gt;
  hifi_pcm5122.dtbo   pwm_cd.dtbo           uart2.dtbo&lt;br /&gt;
  i2c0.dtbo           pwm_ef.dtbo           waveshare_tft24_lcd.dtbo&lt;br /&gt;
  i2c1.dtbo           pwm_ef-f.dtbo         waveshare_tft35c_lcd.dtbo&lt;br /&gt;
  pwm_ab.dtbo         sdio.dtbo             waveshare_tft35c_rtp.dtbo&lt;br /&gt;
&lt;br /&gt;
:2. Update the overlays env in vfat /boot/firmware/boot.ini to enable what you want. Default i2c0, spi0 and uart1 enabled.&lt;br /&gt;
&lt;br /&gt;
  # Overlays to load&lt;br /&gt;
  # Example combinations:&lt;br /&gt;
  #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
  #   hktft32&lt;br /&gt;
  #   hktft35&lt;br /&gt;
  setenv overlays &amp;quot;i2c0 spi0 uart1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:3. Must be restart the board for overlay dtb loaded.&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
: Note: This WiringPi only support set 40pin gpio to output, input or software pwm, for io functions as i2c, spi, pwm..., you must enable dtb overlay in boot.ini&lt;br /&gt;
&lt;br /&gt;
:1. Build and install wiringPi&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/amlogic-wiringPi&lt;br /&gt;
  $ cd amlogic-wiringPi&lt;br /&gt;
  $ chmod a+x build&lt;br /&gt;
  $ sudo ./build&lt;br /&gt;
&lt;br /&gt;
:2. Run '''gpio readall''' to show all 40pins status.&lt;br /&gt;
[[File:m5_wiringpi.png]]&lt;br /&gt;
&lt;br /&gt;
:3. BPI GPIO Extend board and examples in [https://github.com/BPI-SINOVOIP/amlogic-wiringPi/tree/master/examples amlogic-wiringPi/examples]&lt;br /&gt;
&lt;br /&gt;
:blinkall, blink all pin header gpios, no extend board.&lt;br /&gt;
:lcd-bpi, [http://wiki.banana-pi.org/BPI_LCD_1602_display_module BPI LCD 1602 display module] example.&lt;br /&gt;
:52pi-bpi, [http://wiki.banana-pi.org/BPI_OLED_Display_Module BPI OLED Display Module] example.&lt;br /&gt;
:matrixled-bpi, [http://wiki.banana-pi.org/BPI_RGB_LED_Matrix_Expansion_Module BPI RGB LED Matrix Expansion Module] example.&lt;br /&gt;
:berryclip-bpi, [http://wiki.banana-pi.org/BPI_BerryClip_Module BPI BerryClip Module]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get install build-essential python python-dev python-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python setup.py clean --all&lt;br /&gt;
  $ sudo python setup.py build install&lt;br /&gt;
&lt;br /&gt;
===WiringPi2-Python===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get install python python-dev python-setuptools swig git&lt;br /&gt;
  $ git clone --recursive  https://github.com/Dangku/WiringPi2-Python-Amlogic.git&lt;br /&gt;
  $ cd WiringPi2-Python-Amlogic&lt;br /&gt;
  $ sudo python setup.py install&lt;br /&gt;
&lt;br /&gt;
===Boot Linux from USB drive===&lt;br /&gt;
&lt;br /&gt;
:S905x3 is not support usb boot in soc rom, so the only way for booting linux from usb drive is create a bootable sdcard or emmc with bootloader flashed, then load boot and rootfs from usb drive. After bootup, everything will run from usb drive.&lt;br /&gt;
&lt;br /&gt;
:1. The simple way is [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash the M5/M2Pro Linux image to sdcard or emmc] for bootable and also flash it to the usb drive for loading boot and rootfs.&lt;br /&gt;
:2. Bootup the M5/M2pro board with [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Boot_Sequence sdcard or emmc], copy /boot/boot.ini to /boot/boot.ini.org so that bootloader load boot.ini fail and then try to load it from usb drive boot partition.&lt;br /&gt;
:3. Reboot the system, bootscript and rootfs will load from usb drive.&lt;br /&gt;
:[[File:m5_boot_from_usb.png]]&lt;br /&gt;
&lt;br /&gt;
:4. Test performance&lt;br /&gt;
:You can verify the performance of your usb drive on Pi Benchmarks using the following command:&lt;br /&gt;
  sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash&lt;br /&gt;
&lt;br /&gt;
:Test results for sd, emmc and usb drive&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Category || Test || Sdcard Test Result || Emmc Test Result || Usb Drive Test Result&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Disk Read || 67.91 MB/s || 156.64 MB/s || 253.40 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Cached Disk Read || 57.39 MB/s || 126.53 MB/s || 253.52 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| DD || Disk Write || 13.0 MB/s || 48.8 MB/s || 149 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random read || 2456 IOPS (9826 KB/s) || 9701 IOPS (38806 KB/s) || 5474 IOPS (21897 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random write || 938 IOPS (3753 KB/s) || 12888 IOPS (51554 KB/s) || 6980 IOPS (27920 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k read || 10615 KB/s || 29568 KB/s || 23770 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k write || 4276 KB/s || 33585 KB/s || 18598 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random read || 8661 KB/s || 29637 KB/s || 19982 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random write || 4795 KB/s || 38177 KB/s || 22134 KB/s&lt;br /&gt;
|-&lt;br /&gt;
|  ||  || Score: 1300 || Score: 7811 || Score: 5879&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Other Development==&lt;br /&gt;
&lt;br /&gt;
===Custom Linux Boot Logo===&lt;br /&gt;
:Linux uboot limit boot logo fb size to 1080p60hz/1920x1080 default, so oversize resolution will not be supported by default image, but you can modify uboot source code to support it.&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
:3. copy the target file to BPI-BOOT partition of linux image&lt;br /&gt;
  $ cp boot-logo.bmp.gz /media/xxx/BPI-BOOT/&lt;br /&gt;
&lt;br /&gt;
===Custom Android Boot Logo===&lt;br /&gt;
:Android bootloader limit boot logo fb display size is 1080p60hz/1920x1080 default, and android kernel dtb partition table limit boot logo partition size to 16MB default .&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:3. Download [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Flogo_create_tools%2Fm5_android_bootlogo_tool.zip m5_android_bootlogo_tool.zip]&lt;br /&gt;
&lt;br /&gt;
:4. Extract this tool&lt;br /&gt;
  $ unzip m5_android_bootlogo_tool.zip&lt;br /&gt;
  $ cd m5_android_bootlogo_tool/&lt;br /&gt;
  $ cp -a logo_img_files logo               //logo_img_files is the origin bootlogo resource in android source and copy from &amp;lt;android-source-dir&amp;gt;/devices/amlogic/bananapi_m5/log_img_files&lt;br /&gt;
  $ ls -l logo/&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup_X3.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_bar.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_error.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_fail.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_logo.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_success.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_unfocus.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_upgrading.bmp&lt;br /&gt;
&lt;br /&gt;
:5. Copy the boot-logo.bmp.gz&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup.bmp&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup_X3.bmp&lt;br /&gt;
&lt;br /&gt;
:6. Create target logo.img with img pack tool, the binary and related libs of m5_android_bootlogo_tool are copy from &amp;lt;android-source-dir&amp;gt;/out/host/linux-x86&lt;br /&gt;
  $ ./logo_img_packer -r logo logo.img&lt;br /&gt;
&lt;br /&gt;
:7. Flash boot logo with fastboot&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb reboot fastboot&lt;br /&gt;
:Wait few seconds and check whether fastboot connected&lt;br /&gt;
  $ fastboot device&lt;br /&gt;
  1234567890      fastboot&lt;br /&gt;
  $ fastboot flashing unlock_critical&lt;br /&gt;
  $ fastboot flashing unlock&lt;br /&gt;
  $ fastboot flash logo logo.img&lt;br /&gt;
  $ fastboot reboot&lt;br /&gt;
&lt;br /&gt;
===Boot Sequence===&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_boot_squence.png]]&lt;br /&gt;
&lt;br /&gt;
:Check bootloader loaded from SDcard or EMMC at the beginning of the console debug messages&lt;br /&gt;
&lt;br /&gt;
:1. Rom load bootloader from SDcard (Linux log example)&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  BL2 Built : 15:21:42, Mar 26 2020. g12a g486bc38 - gongwei.chen@droid11-sz&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from SD''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  fastboot data verify&lt;br /&gt;
  result: 255&lt;br /&gt;
  Cfg max: 12, cur: 1. Board id: 255. Force loop cfg&lt;br /&gt;
  DDR4 probe&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:2. Rom load bootloader from EMMC(Android Log example)&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  eMMC boot @ 0&lt;br /&gt;
  sw8 s&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from eMMC''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  00000000&lt;br /&gt;
  emmc switch 1 ok&lt;br /&gt;
  ddr saved addr:00016000&lt;br /&gt;
  Load ddr parameter from eMMC, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000, part: 0&lt;br /&gt;
  00000000&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
===Erase EMMC for SDcard Bootup===&lt;br /&gt;
:There are four possible scenarios should be pay attention to, EMMC already flashed Android image, EMMC already flashed Linux image, boot process hangup in BL2 and EMMC empty.&lt;br /&gt;
&lt;br /&gt;
:1. Bootable EMMC with Android image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using usb burning tool, unplug the download usb cable while the download process at '''7% formatting'''&lt;br /&gt;
&lt;br /&gt;
::[[File:m5_android_format.png]]&lt;br /&gt;
&lt;br /&gt;
::b). Using Android Fastboot tool, make sure the adb/fastboot tools is work on your PC before doing this.&lt;br /&gt;
&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb root'''&lt;br /&gt;
    adbd is already running as root&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb remount'''&lt;br /&gt;
    remount succeeded&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb shell'''&lt;br /&gt;
    bananapi_m5:/ # '''reboot fastboot'''&lt;br /&gt;
::Wait a few seconds for board reboot to fastboot mode&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot devices'''&lt;br /&gt;
    1234567890	fastboot&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock_critical'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.044s]&lt;br /&gt;
    finished. total time: 0.044s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.047s]&lt;br /&gt;
    finished. total time: 0.047s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader'''&lt;br /&gt;
    erasing 'bootloader'...&lt;br /&gt;
    OKAY [  0.059s]&lt;br /&gt;
    finished. total time: 0.059s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot0'''&lt;br /&gt;
    erasing 'bootloader-boot0'...&lt;br /&gt;
    OKAY [  0.036s]&lt;br /&gt;
    finished. total time: 0.036s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot1'''&lt;br /&gt;
    erasing 'bootloader-boot1'...&lt;br /&gt;
    OKAY [  0.035s]&lt;br /&gt;
    finished. total time: 0.035s&lt;br /&gt;
&lt;br /&gt;
::c). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5_v1#'''amlmmc erase 1'''&lt;br /&gt;
    emmckey_is_protected(): protect&lt;br /&gt;
    start = 0,end = 57343&lt;br /&gt;
    start = 221184,end = 30535679&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot0&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot1&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    bananapi_m5_v1#'''reset'''&lt;br /&gt;
    resetting ...&lt;br /&gt;
    SM1:BL:511f6b:81ca2f;FEAT:A0F83180:20282000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK;&lt;br /&gt;
&lt;br /&gt;
::These two ways actually erase the bootloader part of EMMC android, After bootup from SDcard Linux, You'd better [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command].&lt;br /&gt;
&lt;br /&gt;
::d). The simplest way is insert the SDcard with Linux image flashed before power on, the Android bootloader will check boot.ini file whether exist in SDcard vfat partition, so that the SDcard Linux will bootup. After bootup, you can [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command] and then flash the Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
    BPI: try boot from sdcard&lt;br /&gt;
    reading boot.ini&lt;br /&gt;
    5699 bytes read in 3 ms (1.8 MiB/s)&lt;br /&gt;
    ## Executing script at 01b00000&lt;br /&gt;
    ...&lt;br /&gt;
    reading Image.gz&lt;br /&gt;
    9143358 bytes read in 510 ms (17.1 MiB/s)&lt;br /&gt;
    reading meson64_bananapi_m5.dtb&lt;br /&gt;
    70850 bytes read in 8 ms (8.4 MiB/s)&lt;br /&gt;
    reading uInitrd&lt;br /&gt;
    11704481 bytes read in 655 ms (17 MiB/s)&lt;br /&gt;
    reading overlays/i2c0.dtbo&lt;br /&gt;
    223 bytes read in 6 ms (36.1 KiB/s)&lt;br /&gt;
    reading overlays/spi0.dtbo&lt;br /&gt;
    516 bytes read in 6 ms (84 KiB/s)&lt;br /&gt;
    reading overlays/uart1.dtbo&lt;br /&gt;
    225 bytes read in 5 ms (43.9 KiB/s)&lt;br /&gt;
&lt;br /&gt;
:2. Bootable EMMC with Linux image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5# mmc erase 0 1000&lt;br /&gt;
&lt;br /&gt;
::b). Linux u-boot also check boot.ini file whether exist in SDcard vfat partition so that the SDcard Linux will bootup. After bootup, you can format the whole EMMC by dd command or flash the Linux image directly to EMMC.&lt;br /&gt;
&lt;br /&gt;
:3. A extreme situation is bootloader or uboot corrupted, Rom load it from EMMC but hangup in u-boot or BL2, for example the boot process will hangup in BL2 of EMMC if dram init failed,  The only way is format the EMMC with usb burning tool, or download the Android image completely and then try other ways to erase EMMC or flash Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
:4. Rom will try to load bootloader from SDcard directly if EMMC is empty.&lt;br /&gt;
&lt;br /&gt;
===Erase Emmc Android by dd command===&lt;br /&gt;
:If the board is flashed android before, the whole emmc must be erased by these commands if you want bootup it with SDcard Linux image.&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1M status=noxfer &lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1M status=noxfer&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M status=noxfer &lt;br /&gt;
  $ sync&lt;br /&gt;
&lt;br /&gt;
===Wifi/BT support===&lt;br /&gt;
&lt;br /&gt;
:1. Android test and support.&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
  rtl8814au wifi(usb), please get the [https://github.com/aircrack-ng/rtl8814au aircrack-ng] driver and install.&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Android Wifi/BT'''&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and reboot the system, After bootup, you can enable or disable wifi and bluetooth in Settings app.&lt;br /&gt;
:SDIO/UART type: Connect the hardware module to 40pin header correctly and [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Android_DTB_overlay configure the Android DTB overlay] to enable it.&lt;br /&gt;
&lt;br /&gt;
:'''Note''': Android is not support that ethernet and wifi are both connected at the same time, Ethernet have a higher prioprity than wifi, it means wifi can't connect network if ethernet already connected, and wifi will drop connection if ethernet cable plugin.&lt;br /&gt;
&lt;br /&gt;
:2. Linux test and support.&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  rtl8192eu wifi(usb)&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8811au wifi(usb)&lt;br /&gt;
  rtl8812au wifi(usb)&lt;br /&gt;
  rtl8812bu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Wifi'''&lt;br /&gt;
&lt;br /&gt;
:Wifi module drivers are already prebuild in the release images.&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
:SDIO/UART type:&lt;br /&gt;
::1). Connect the hardware module to 40pin header correctly.&lt;br /&gt;
::2). Configure the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#DTB_overlay dtb overlay]&lt;br /&gt;
   # Overlays to load&lt;br /&gt;
   # Example combinations:&lt;br /&gt;
   #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
   #   hktft32&lt;br /&gt;
   #   hktft35&lt;br /&gt;
   setenv overlays &amp;quot;wifi_bt_rtl8822cs&amp;quot;&lt;br /&gt;
::3). Add the wifi module name to /etc/modules for loaded automatically next boot.&lt;br /&gt;
  # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
  # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
  88x2cs&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Bluetooth'''&lt;br /&gt;
&lt;br /&gt;
::1). Please download [https://github.com/Dangku/m5-rtk-linux-bt-driver rtk-linux-bt-driver] source code, build and install usb or uart rtk linux bluetooth drivers/firmwares to your image.&lt;br /&gt;
::2). For USB type, plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
::3). For UART type, Configure the dtb overlay as the same as wifi before install the bluetooth drivers/firmwares. hci_uart driver will be loaded when rtk-hciuart.service start.&lt;br /&gt;
&lt;br /&gt;
===Linux Server Image Network Configuration===&lt;br /&gt;
&lt;br /&gt;
:[https://netplan.io Netplan]&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi STA mode'''&lt;br /&gt;
&lt;br /&gt;
:A sample wifi sta mode netplan configuration file, 01-wlan0-sta.yaml&lt;br /&gt;
 network:&lt;br /&gt;
   version: 2&lt;br /&gt;
   renderer: networkd&lt;br /&gt;
   wifis:&lt;br /&gt;
     wlan0:&lt;br /&gt;
       dhcp4: true&lt;br /&gt;
       access-points:&lt;br /&gt;
         &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi AP mode'''&lt;br /&gt;
&lt;br /&gt;
:1. Prepare the setup the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Wifi.2FBT_support wifi adater] correctly.&lt;br /&gt;
&lt;br /&gt;
:2. Get the wifi adapter Band, Frequencies, Channel, HT Capability, VHT Capability or other properties&lt;br /&gt;
 $ iw list&lt;br /&gt;
&lt;br /&gt;
:3. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Network-Manager.&lt;br /&gt;
&lt;br /&gt;
:Install NetworkManager because ap is only supported with NetworkManager renderer&lt;br /&gt;
 $ sudo apt install network-manager&lt;br /&gt;
&lt;br /&gt;
:A sample 2.4G wifi ap mode netplan configuration file, 01-wlan0-ap-2.4g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 2.4GHz&lt;br /&gt;
          channel: 6&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:A sample 5G wifi ap mode netplan configuration file, 01-wlan0-ap-5g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 5GHz&lt;br /&gt;
          channel: 36&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:4. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Hostapd.&lt;br /&gt;
&lt;br /&gt;
:1). Create a netplan configuration file, 01-wlan0-ap-hostapd.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: networkd&lt;br /&gt;
 ethernets:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     addresses:&lt;br /&gt;
       - 192.168.11.1/24&lt;br /&gt;
&lt;br /&gt;
:2). Install hostapd&lt;br /&gt;
 $ sudo apt install hostapd&lt;br /&gt;
&lt;br /&gt;
:Create hostapd configuration file /etc/hostapd/hostapd.conf, for example&lt;br /&gt;
 interface=wlan0&lt;br /&gt;
 ssid=bananapi&lt;br /&gt;
 &lt;br /&gt;
 driver=nl80211&lt;br /&gt;
 &lt;br /&gt;
 auth_algs=1&lt;br /&gt;
 wpa=2&lt;br /&gt;
 wpa_passphrase=123456789&lt;br /&gt;
 wpa_key_mgmt=WPA-PSK&lt;br /&gt;
 rsn_pairwise=CCMP&lt;br /&gt;
 &lt;br /&gt;
 #bridge=br0&lt;br /&gt;
 beacon_int=500&lt;br /&gt;
 #SSID not hidden&lt;br /&gt;
 ignore_broadcast_ssid=0&lt;br /&gt;
 &lt;br /&gt;
 hw_mode=a&lt;br /&gt;
 channel=36&lt;br /&gt;
 max_num_sta=8&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11n&lt;br /&gt;
 ieee80211n=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 ht_capab=[HT20][HT40+][SHORT-GI-20][SHORT-GI-40][SHORT-GI-80][DSSS_CCK-40]&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11ac&lt;br /&gt;
 ieee80211ac=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 #vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]&lt;br /&gt;
 #vht_oper_chwidth=1&lt;br /&gt;
 #vht_oper_centr_freq_seg0_idx=42&lt;br /&gt;
 &lt;br /&gt;
 ### WMM&lt;br /&gt;
 wmm_enabled=1&lt;br /&gt;
&lt;br /&gt;
:3). To support 80MHz channel width you need load driver with '''rtw_vht_enable=2''' option, Or you can create /etc/modprobe.d/8822cs.conf with content&lt;br /&gt;
 options 88x2cs rtw_vht_enable=2&lt;br /&gt;
&lt;br /&gt;
:4). Install and configure dhcp server service, use isc-dhcp-server for example&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp server interface in /etc/default/isc-dhcp-server&lt;br /&gt;
 # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?&lt;br /&gt;
 #       Separate multiple interfaces with spaces, e.g. &amp;quot;eth0 eth1&amp;quot;.&lt;br /&gt;
 INTERFACESv4=&amp;quot;wlan0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp subnet and dns in /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ...&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option domain-name-servers 8.8.8.8, 114.114.114.114;&lt;br /&gt;
 ...&lt;br /&gt;
 # No service will be given on this subnet, but declaring it helps the &lt;br /&gt;
 # DHCP server to understand the network topology.&lt;br /&gt;
 subnet 192.168.11.0 netmask 255.255.255.0 {&lt;br /&gt;
   range dynamic-bootp 192.168.11.1 192.168.11.100;&lt;br /&gt;
   option broadcast-address 192.168.11.255;&lt;br /&gt;
   option routers 192.168.11.1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
:5). Start Service&lt;br /&gt;
 $ sudo hostapd /etc/hostapd/hostapd.conf -B&lt;br /&gt;
 $ sudo systemctl restart isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:6). Routing configuration.&lt;br /&gt;
 sysctl net.ipv4.ip_forward=1&lt;br /&gt;
 iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
===Cloud-init&amp;amp;Snap===&lt;br /&gt;
:Cloud-init and Snap service are enabled default, you can disable or remove them.&lt;br /&gt;
&lt;br /&gt;
:1. disable or remove cloud-init&lt;br /&gt;
  $ sudo touch /etc/cloud/cloud-init.disabled&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo apt purge cloud-init&lt;br /&gt;
&lt;br /&gt;
:2. disable or remove snap&lt;br /&gt;
  $ sudo apt purge snapd&lt;br /&gt;
&lt;br /&gt;
===Enable rc-local===&lt;br /&gt;
:The systemd service rc-local.service already exists in release image, but there is no [Install] part in the unit file. As a result, Systemd is unable to enable it. First, we must update the file.&lt;br /&gt;
&lt;br /&gt;
  $ sudo nano /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=/etc/rc.local Compatibility&lt;br /&gt;
  Documentation=man:systemd-rc-local-generator(8)&lt;br /&gt;
  ConditionFileIsExecutable=/etc/rc.local&lt;br /&gt;
  After=network.target&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Type=forking&lt;br /&gt;
  ExecStart=/etc/rc.local start&lt;br /&gt;
  TimeoutSec=0&lt;br /&gt;
  RemainAfterExit=yes&lt;br /&gt;
  GuessMainPID=no&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=multi-user.target&lt;br /&gt;
  Alias=rc-local.service&lt;br /&gt;
&lt;br /&gt;
:Create /etc/rc.local file.&lt;br /&gt;
&lt;br /&gt;
  sudo nano /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  #&lt;br /&gt;
  # rc.local&lt;br /&gt;
  #&lt;br /&gt;
  # This script is executed at the end of each multiuser runlevel.&lt;br /&gt;
  # Make sure that the script will &amp;quot;exit 0&amp;quot; on success or any other&lt;br /&gt;
  # value on error.&lt;br /&gt;
  #&lt;br /&gt;
  # In order to enable or disable this script just change the execution&lt;br /&gt;
  # bits.&lt;br /&gt;
  #&lt;br /&gt;
  # By default this script does nothing.&lt;br /&gt;
  &lt;br /&gt;
  exit 0&lt;br /&gt;
&lt;br /&gt;
:Add executable permission to /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
:Enable rc-local.service and reboot&lt;br /&gt;
&lt;br /&gt;
  $ sudo systemctl enable rc-local.service&lt;br /&gt;
  $ sudo reboot&lt;br /&gt;
&lt;br /&gt;
===Enable sudo for Debian===&lt;br /&gt;
:The release Debian image do not install sudo default, with &amp;quot;su -&amp;quot; command, user can change to root. If you like sudo, you can install it.&lt;br /&gt;
&lt;br /&gt;
  $ su -&lt;br /&gt;
  Password:(enter bananapi)&lt;br /&gt;
  &lt;br /&gt;
  # apt install sudo&lt;br /&gt;
  # adduser pi sudo&lt;br /&gt;
&lt;br /&gt;
: Then please do logout and login again&lt;br /&gt;
&lt;br /&gt;
===Install Docker Engine===&lt;br /&gt;
:Install Docker Engine on Ubuntu 20.04 Server&lt;br /&gt;
  &lt;br /&gt;
:1. Set up the repository&lt;br /&gt;
&lt;br /&gt;
:Update the apt package index and install packages to allow apt to use a repository over HTTPS:&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
:Add Docker’s official GPG key:&lt;br /&gt;
  $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
:Set up the stable repository&lt;br /&gt;
  $  echo \&lt;br /&gt;
     &amp;quot;deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \&lt;br /&gt;
     $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
:2. Install Docker Engine&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install docker-ce docker-ce-cli containerd.io&lt;br /&gt;
&lt;br /&gt;
:3. Verify the Docker Engine is installed correctly by running the hello-world image.&lt;br /&gt;
  $ sudo docker run hello-world&lt;br /&gt;
&lt;br /&gt;
:[[File:docker-test.png]]&lt;br /&gt;
&lt;br /&gt;
Install docker with a simple command&lt;br /&gt;
&lt;br /&gt;
  $ curl -sSL get.docker.com | sudo sh&lt;br /&gt;
&lt;br /&gt;
[https://docs.docker.com/engine/install/ Install Docker Engine] on other Linux distributions&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=13597</id>
		<title>Getting Started with M5/M2Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=13597"/>
				<updated>2023-01-31T01:07:15Z</updated>
		
		<summary type="html">&lt;p&gt;Czj: /* RPi.GPIO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_4.JPG|thumb|[[Banana Pi BPI-M5]]]]&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|Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_2.jpg|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M5 is a new generation single board computer design , use Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz) Processor. Mali-G31 MP2 GPU with 4 x Execution Engines (650Mhz). support 4GB LPDDR4 and 16G eMMC flash. it have 4 USB 3.0 port,1GbE LAN port, IR Reciver, Audio Jack, 1 HDMI Out and USB type-c power supply.&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2Pro is the same SOC with M5, but different board layout. 2GB LPDDR4 and 16G eMMC flash, 2 USB 3.0 port,1GbE LAN port, rtl8821cu usb wifi/bt onboard, IR Reciver, 1 HDMI Out, 1 MicroUSB port,  DC power supply.&lt;br /&gt;
&lt;br /&gt;
=specifications=&lt;br /&gt;
&lt;br /&gt;
*SoC – Amlogic S905X3 quad-core Cortex-A55 processor @ up to 2.0 GHz with&lt;br /&gt;
*Mali-G31 MP2 GPU @ 650Mhz&lt;br /&gt;
*System Memory – 4GB LPDDR4&lt;br /&gt;
*Storage – 16GB eMMC flash (option up to 64GB), MicroSD slot up to 2TB&lt;br /&gt;
*Video Output – HDMI 2.1 up to 4Kp60 with HDR, CEC, EDID&lt;br /&gt;
*Audio – 3.5mm audio jack, digital HDMI audio&lt;br /&gt;
*Connectivity – Gigabit Ethernet&lt;br /&gt;
*USB – 4x USB 3.0 ports via VL817 hub controller, 1x USB-C port (for power only?)&lt;br /&gt;
*Expansion – 40-pin Raspberry Pi header with 28x GPIO, UART, I2C, SPI, PWM, and power signal (+5V, +3.3V, GND).&lt;br /&gt;
*Debugging – 3-pin debug header&lt;br /&gt;
*Misc – Reset, Power, and U-boot button; power and activity LED’s; IR receiver&lt;br /&gt;
*Power Supply – 5V @3A via USB Type-C port&lt;br /&gt;
*Dimensions – 92x60mm (Not the same as Raspberry Pi PCB size, but they probably included the connectors during measurement)&lt;br /&gt;
*Weight – 48grams&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Prepare==&lt;br /&gt;
:1. Prepare a usb-serial cable, a 5V/3A adaptor type-c power supply. The serial cable is used for console debug and type-c cable is used for android image download and ADB debug. M2pro is used Micro-usb port for android image download and ADB debug.&lt;br /&gt;
:2. Prepare a SDcard at least 8GB for linux development, android only support emmc boot.&lt;br /&gt;
:3. The SOC rom first boot media is emmc, so board can't bootup from SDcard if the emmc is bootable with any image flashed, more info please refer to board [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence].&lt;br /&gt;
:4. In Android SDcard is mmc0, emmc is mmc1, but in Linux SDcard is mmc1, emmc is mmc0.&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download and install the [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Fimage_download_tools%2Faml_usb_burning_tool_V2_setup_v2.2.3.3.zip AML Usb Burning Tool] for android image download via USB type-c on M5 and Micro-usb on M2pro, only support windows.&lt;br /&gt;
:2. Download the latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#Android_2 android image], and confirm that the md5 checksum is correct.&lt;br /&gt;
:3. M5 and M2pro are compatiable with same android image.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Usb Burning Tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open USB_Burning_Tool.exe, select menu File-&amp;gt;Import image, choose the android image file aml_upgrade_package.img.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. M5/M2pro board disconnect power, press and hold SW4 button beside 40pin header, plugin type-c usb cable(microUSB on m2pro) to PC&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:3. Click the Start button and wait for upgrade complete.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:4. After Burning successfull, Unplug the usb and connect to power supply adaptor to startup.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:5. Click the Stop button to cancel the upgrade process and close the USB Buring Tool.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Aml Flash Tool===&lt;br /&gt;
:[https://github.com/Dangku/aml-flash-tool aml-flash-tool] is a linux platform opensource image flash util for Amlogic android.&lt;br /&gt;
&lt;br /&gt;
  $ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_flash.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
:1. Get Android 9.0 source code&lt;br /&gt;
&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9&lt;br /&gt;
&lt;br /&gt;
:2. Build the Android 9.0 Source code&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Android DTB overlay===&lt;br /&gt;
&lt;br /&gt;
:Bananapi M5/M2Pro DTBO idx value table, default idx value is 0 in release image.&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;4&amp;quot;| '''Bananapi M5/M2pro DTBO idx value table'''&lt;br /&gt;
|-&lt;br /&gt;
|idx value|| device tree overlay || description&lt;br /&gt;
|-&lt;br /&gt;
| 0|| android_p_overlay|| default dtbo, no use&lt;br /&gt;
|-&lt;br /&gt;
| 1|| wifi_bt_rtl8822cs|| enable bpi rtl8822cs wifi/bt module&lt;br /&gt;
|-&lt;br /&gt;
| 2|| i2c2|| enable i2c 2&lt;br /&gt;
|-&lt;br /&gt;
| 3|| i2c3|| enable i2c 3&lt;br /&gt;
|-&lt;br /&gt;
| 4|| sdio|| enable sdio&lt;br /&gt;
|-&lt;br /&gt;
| 5|| uart1|| enable 2 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 6|| uart1_cts_rts|| enable 4 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 7|| uart2|| enable 2 pins uart 2&lt;br /&gt;
|-&lt;br /&gt;
| 8|| hifi_pcm5122|| enable i2s [https://shumeipai.nxez.com/hifidac-hat-for-raspberry-pi pcm5122 HiFi DAC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:'''How to apply a new dtbo'''&lt;br /&gt;
&lt;br /&gt;
:1. ADB command via sysfs&lt;br /&gt;
&lt;br /&gt;
  root@dangku-desktop:/tmp# adb root&lt;br /&gt;
  restarting adbd as root&lt;br /&gt;
  root@dangku-desktop:/tmp# adb remount&lt;br /&gt;
  remount succeeded&lt;br /&gt;
  root@dangku-desktop:/tmp# adb shell&lt;br /&gt;
  bananapi_m5:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                                                &lt;br /&gt;
  bananapi_m5:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                                                &lt;br /&gt;
  bananapi_m5:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:2. Uart console command via sysfs&lt;br /&gt;
&lt;br /&gt;
  console:/ $ &lt;br /&gt;
  console:/ $ su&lt;br /&gt;
  console:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                              &lt;br /&gt;
  [  115.702781@0] unifykey: name_store() 1302, name dtbo, 4&lt;br /&gt;
  [  115.702856@0] unifykey: name_store() 1311&lt;br /&gt;
  console:/ #&lt;br /&gt;
  console:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                              &lt;br /&gt;
  [  129.262659@0] unifykey: write_store()  is a string&lt;br /&gt;
  [  129.262733@0] unifykey: dtbo, 1, 1&lt;br /&gt;
  [  129.265312@0] unifykey: amlkey_write 393&lt;br /&gt;
  [  129.292347@1] emmc_key_write:149, write ok&lt;br /&gt;
  console:/ # &lt;br /&gt;
  console:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:3. Settings App(To-Do)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Check the bootup uart debug message and confirm which dtbo is loaded actually, here &amp;quot;1&amp;quot; means set idx=1 to apply wifi_bt_rtl8822cs dtbo.&lt;br /&gt;
&lt;br /&gt;
  load dtb from 0x1000000 ......&lt;br /&gt;
        Amlogic multi-dtb tool&lt;br /&gt;
        Single dtb detected&lt;br /&gt;
  find 2 dtbos&lt;br /&gt;
  dtbos to be applied: 1&lt;br /&gt;
  Apply dtbo 1&lt;br /&gt;
&lt;br /&gt;
:Unifykeys is stored in a specific emmc part, &amp;quot;Normal erase&amp;quot; selected in USB_Burning_Tool will not erase this data for next update, you must select &amp;quot;Erase all&amp;quot; if you want the default dtbo idx to be applied after image download.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_erase_all.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Build Android image with a specific DTBO default'''.&lt;br /&gt;
&lt;br /&gt;
:1. Default build-in overlays are defined in device/amlogic/bananapi_m5/Kernel.mk, you can add a new overlay dtbo here.&lt;br /&gt;
  DTBO_DEVICETREE := android_p_overlay wifi_bt_rtl8822cs i2c2 i2c3 sdio uart1 uart1_cts_rts uart2 hifi_pcm5122&lt;br /&gt;
&lt;br /&gt;
:2. Default apply DTBO idx is defined in device/amlogic/bananapi_m5/BoardConfig.mk, you can change the idx value to set which overlay dtbo will be applied default.&lt;br /&gt;
  BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=0&lt;br /&gt;
&lt;br /&gt;
:3. DTS files are in common/arch/arm/boot/dts/amlogic/overlay/bananapi_m5/&lt;br /&gt;
&lt;br /&gt;
:More info about android device tree overlays, please refer to [https://source.android.com/devices/architecture/dto google android offical site]&lt;br /&gt;
&lt;br /&gt;
===Install OpenGapps===&lt;br /&gt;
&lt;br /&gt;
:1. Download install package from [https://opengapps.org/ OpenGapps], Android release image is arm/android 9.0 variant.&lt;br /&gt;
&lt;br /&gt;
[[File:opengapps.PNG]]&lt;br /&gt;
&lt;br /&gt;
:2. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fapps%2Fdevice_id_v1.3.2.apk device_id.apk].&lt;br /&gt;
:3. Copy the OpenGapp package to a udisk or sdcard root directory.&lt;br /&gt;
:4. Create a txt file named '''factory_update_param.aml''' in udisk or sdcard root directory with the following android recovery parameter content, and replace the file name with the actual downloaded package.  &lt;br /&gt;
::udisk:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/udisk/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
::sdcard:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/sdcard/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
:5. Plugin the udisk or sdcard to the board and poweron.&lt;br /&gt;
&lt;br /&gt;
:6.OpenGapps install and certify.&lt;br /&gt;
:&amp;lt;youtube&amp;gt;fXOKmWfpqF8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
:watch this video on [https://www.bilibili.com/video/BV13y4y1s77i/ bilibili]&lt;br /&gt;
&lt;br /&gt;
===IR Remote Control Custom===&lt;br /&gt;
:Before starting this work, some android basic concepts and knowledge need to be known.&lt;br /&gt;
&lt;br /&gt;
:*Linux kernel input key event.&lt;br /&gt;
:*Android keycode.&lt;br /&gt;
:*Linux keycode map to android keycode.&lt;br /&gt;
:*Android Adb function work on your PC&lt;br /&gt;
&lt;br /&gt;
:1. pull the remote files from device&lt;br /&gt;
  # adb pull /vendor/etc/remote.cfg&lt;br /&gt;
  # adb pull /vendor/etc/remote.tab &lt;br /&gt;
&lt;br /&gt;
:2. modify remote.cfg to enable remote debug message&lt;br /&gt;
:[[File:remotecfg.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.cfg back&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.cfg /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.cfg&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -d                                                  &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
&lt;br /&gt;
:3. Get the remote keycode&lt;br /&gt;
:Press your remote key one by one and then print the dmesg to get the remote custom_code and each remote key code.&lt;br /&gt;
&lt;br /&gt;
  # adb shell dmesg | grep framecode=&lt;br /&gt;
:[[File:keycode.png]]&lt;br /&gt;
&lt;br /&gt;
:custom_code = 0xfe01&lt;br /&gt;
:keycode = 0x00, 0x01, 0x09, 0x02, 0x0a, 0x05, 0x04 0x06, 0x03, 0x0b, 0x40, 0x48, 0x44&lt;br /&gt;
&lt;br /&gt;
:4. Modify remote.tab to map the scancode to android keycode&lt;br /&gt;
:[[File:remotetab.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.tab and test each key whether works&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.tab1 /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.tab&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -t /vendor/etc/remote.tab -d                                                                                                                               &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
  tabdir = /vendor/etc/remote.tab&lt;br /&gt;
  custom_name = nec-test&lt;br /&gt;
  fn_key_scancode = 0xffff&lt;br /&gt;
  cursor_left_scancode = 0xffff&lt;br /&gt;
  cursor_right_scancode = 0xffff&lt;br /&gt;
  cursor_up_scancode = 0xffff&lt;br /&gt;
  cursor_down_scancode = 0xffff&lt;br /&gt;
  cursor_ok_scancode = 0xffff&lt;br /&gt;
  custom_code = 0xfe01&lt;br /&gt;
  release_delay = 80&lt;br /&gt;
  map_size = 13&lt;br /&gt;
  key[0] = 0x74&lt;br /&gt;
  key[1] = 0x1008b&lt;br /&gt;
  key[2] = 0x90066&lt;br /&gt;
  key[3] = 0x20069&lt;br /&gt;
  key[4] = 0xa006a&lt;br /&gt;
  key[5] = 0x50067&lt;br /&gt;
  key[6] = 0x4006c&lt;br /&gt;
  key[7] = 0x6001c&lt;br /&gt;
  key[8] = 0x30072&lt;br /&gt;
  key[9] = 0xb0073&lt;br /&gt;
  key[10] = 0x40009e&lt;br /&gt;
  key[11] = 0x4800a4&lt;br /&gt;
  key[12] = 0x440071&lt;br /&gt;
&lt;br /&gt;
:5. Reboot the board&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 [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. M5 and M2pro are compatiable with same Linux image.&lt;br /&gt;
&lt;br /&gt;
:2. Make sure bootable EMMC is formatted if you want bootup from SDcard, more info refer to [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_EMMC_for_SDcard_Bootup Erase EMMC for SDcard Bootup]&lt;br /&gt;
&lt;br /&gt;
:3. 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;
:4. Install bpi-tools on your Linux PC(if [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash image] with other tools, ignore this step). If you can't access this URL or any other install problem, please go to [https://github.com/bpi-sinovoip/bpi-tools bpi-tools] source repo, download and install this tools manually.&lt;br /&gt;
  $ apt-get install pv&lt;br /&gt;
  $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
&lt;br /&gt;
:5. Download Linux latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#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;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with 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 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-m5-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:3. 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-m5-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to EMMC===&lt;br /&gt;
:1. Prepare a [https://wiki.banana-pi.org/Getting_Started_with_BPI-M5/M2Pro#Install_Image_to_SDcard SDcard with Linux image] flashed and bootup board with this SDcard.&lt;br /&gt;
&lt;br /&gt;
:2. Copy Linux image to udisk, plug the udisk to board and mount it.&lt;br /&gt;
&lt;br /&gt;
:3. Install with dd command, umount mmcblk0p1 and mmcblk0p2 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-m5-xxx.img.zip | pv | dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install the linux image in udisk with bpi-tools command&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-m5-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
:5. After download complete, power off safely and eject the SDcard.&lt;br /&gt;
&lt;br /&gt;
===Build Linux Source Code===&lt;br /&gt;
:1. Get the Linux bsp source code&lt;br /&gt;
  $  git clone https://github.com/BPI-SINOVOIP/BPI-M5-bsp&lt;br /&gt;
:2. Build the bsp source code&lt;br /&gt;
&lt;br /&gt;
::Please read the source code [https://github.com/BPI-SINOVOIP/BPI-M5-bsp/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
:3. If you want build uboot and kernel separately, please download the [https://github.com/Dangku/amlogic-u-boot/tree/odroidg12-v2015.01-c4-m5 u-boot] the [https://github.com/Dangku/amlogic-linux/tree/odroidg12-4.9.y-c4-m5 kernel] only, get the toolchains, boot script and other configuration files from [https://github.com/BPI-SINOVOIP/BPI-M5-bsp BPI-M5-bsp]&lt;br /&gt;
&lt;br /&gt;
===DTB overlay===&lt;br /&gt;
:1. DTB overlay is used for 40pin gpios multi-function configuration and install in vfat boot partition, you can check the mount point with mount command.&lt;br /&gt;
  root@bananapi:~# ls /boot/firmware/overlays/&lt;br /&gt;
  custom_ir.dtbo      pwm_b-backlight.dtbo  spi0.dtbo&lt;br /&gt;
  ds3231.dtbo         pwm_c-beeper.dtbo     uart1_cts_rts.dtbo&lt;br /&gt;
  hifi_pcm5102a.dtbo  pwm_cd-c.dtbo         uart1.dtbo&lt;br /&gt;
  hifi_pcm5122.dtbo   pwm_cd.dtbo           uart2.dtbo&lt;br /&gt;
  i2c0.dtbo           pwm_ef.dtbo           waveshare_tft24_lcd.dtbo&lt;br /&gt;
  i2c1.dtbo           pwm_ef-f.dtbo         waveshare_tft35c_lcd.dtbo&lt;br /&gt;
  pwm_ab.dtbo         sdio.dtbo             waveshare_tft35c_rtp.dtbo&lt;br /&gt;
&lt;br /&gt;
:2. Update the overlays env in vfat /boot/firmware/boot.ini to enable what you want. Default i2c0, spi0 and uart1 enabled.&lt;br /&gt;
&lt;br /&gt;
  # Overlays to load&lt;br /&gt;
  # Example combinations:&lt;br /&gt;
  #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
  #   hktft32&lt;br /&gt;
  #   hktft35&lt;br /&gt;
  setenv overlays &amp;quot;i2c0 spi0 uart1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:3. Must be restart the board for overlay dtb loaded.&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
: Note: This WiringPi only support set 40pin gpio to output, input or software pwm, for io functions as i2c, spi, pwm..., you must enable dtb overlay in boot.ini&lt;br /&gt;
&lt;br /&gt;
:1. Build and install wiringPi&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/amlogic-wiringPi&lt;br /&gt;
  $ cd amlogic-wiringPi&lt;br /&gt;
  $ chmod a+x build&lt;br /&gt;
  $ sudo ./build&lt;br /&gt;
&lt;br /&gt;
:2. Run '''gpio readall''' to show all 40pins status.&lt;br /&gt;
[[File:m5_wiringpi.png]]&lt;br /&gt;
&lt;br /&gt;
:3. BPI GPIO Extend board and examples in [https://github.com/BPI-SINOVOIP/amlogic-wiringPi/tree/master/examples amlogic-wiringPi/examples]&lt;br /&gt;
&lt;br /&gt;
:blinkall, blink all pin header gpios, no extend board.&lt;br /&gt;
:lcd-bpi, [http://wiki.banana-pi.org/BPI_LCD_1602_display_module BPI LCD 1602 display module] example.&lt;br /&gt;
:52pi-bpi, [http://wiki.banana-pi.org/BPI_OLED_Display_Module BPI OLED Display Module] example.&lt;br /&gt;
:matrixled-bpi, [http://wiki.banana-pi.org/BPI_RGB_LED_Matrix_Expansion_Module BPI RGB LED Matrix Expansion Module] example.&lt;br /&gt;
:berryclip-bpi, [http://wiki.banana-pi.org/BPI_BerryClip_Module BPI BerryClip Module]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get install build-essential python python-dev python-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python setup.py clean --all&lt;br /&gt;
  $ sudo python setup.py build install&lt;br /&gt;
&lt;br /&gt;
===WiringPi2-Python===&lt;br /&gt;
&lt;br /&gt;
: Build and install&lt;br /&gt;
  $ sudo apt-get Install python python-dev python-setuptools swig git&lt;br /&gt;
  $ git clone --recursive  https://github.com/Dangku/WiringPi2-Python-Amlogic.git&lt;br /&gt;
  $ cd WiringPi2-Python-Amlogic&lt;br /&gt;
  $ sudo python setup.py install&lt;br /&gt;
&lt;br /&gt;
===Boot Linux from USB drive===&lt;br /&gt;
&lt;br /&gt;
:S905x3 is not support usb boot in soc rom, so the only way for booting linux from usb drive is create a bootable sdcard or emmc with bootloader flashed, then load boot and rootfs from usb drive. After bootup, everything will run from usb drive.&lt;br /&gt;
&lt;br /&gt;
:1. The simple way is [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash the M5/M2Pro Linux image to sdcard or emmc] for bootable and also flash it to the usb drive for loading boot and rootfs.&lt;br /&gt;
:2. Bootup the M5/M2pro board with [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Boot_Sequence sdcard or emmc], copy /boot/boot.ini to /boot/boot.ini.org so that bootloader load boot.ini fail and then try to load it from usb drive boot partition.&lt;br /&gt;
:3. Reboot the system, bootscript and rootfs will load from usb drive.&lt;br /&gt;
:[[File:m5_boot_from_usb.png]]&lt;br /&gt;
&lt;br /&gt;
:4. Test performance&lt;br /&gt;
:You can verify the performance of your usb drive on Pi Benchmarks using the following command:&lt;br /&gt;
  sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash&lt;br /&gt;
&lt;br /&gt;
:Test results for sd, emmc and usb drive&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Category || Test || Sdcard Test Result || Emmc Test Result || Usb Drive Test Result&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Disk Read || 67.91 MB/s || 156.64 MB/s || 253.40 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Cached Disk Read || 57.39 MB/s || 126.53 MB/s || 253.52 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| DD || Disk Write || 13.0 MB/s || 48.8 MB/s || 149 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random read || 2456 IOPS (9826 KB/s) || 9701 IOPS (38806 KB/s) || 5474 IOPS (21897 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random write || 938 IOPS (3753 KB/s) || 12888 IOPS (51554 KB/s) || 6980 IOPS (27920 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k read || 10615 KB/s || 29568 KB/s || 23770 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k write || 4276 KB/s || 33585 KB/s || 18598 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random read || 8661 KB/s || 29637 KB/s || 19982 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random write || 4795 KB/s || 38177 KB/s || 22134 KB/s&lt;br /&gt;
|-&lt;br /&gt;
|  ||  || Score: 1300 || Score: 7811 || Score: 5879&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Other Development==&lt;br /&gt;
&lt;br /&gt;
===Custom Linux Boot Logo===&lt;br /&gt;
:Linux uboot limit boot logo fb size to 1080p60hz/1920x1080 default, so oversize resolution will not be supported by default image, but you can modify uboot source code to support it.&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
:3. copy the target file to BPI-BOOT partition of linux image&lt;br /&gt;
  $ cp boot-logo.bmp.gz /media/xxx/BPI-BOOT/&lt;br /&gt;
&lt;br /&gt;
===Custom Android Boot Logo===&lt;br /&gt;
:Android bootloader limit boot logo fb display size is 1080p60hz/1920x1080 default, and android kernel dtb partition table limit boot logo partition size to 16MB default .&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:3. Download [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Flogo_create_tools%2Fm5_android_bootlogo_tool.zip m5_android_bootlogo_tool.zip]&lt;br /&gt;
&lt;br /&gt;
:4. Extract this tool&lt;br /&gt;
  $ unzip m5_android_bootlogo_tool.zip&lt;br /&gt;
  $ cd m5_android_bootlogo_tool/&lt;br /&gt;
  $ cp -a logo_img_files logo               //logo_img_files is the origin bootlogo resource in android source and copy from &amp;lt;android-source-dir&amp;gt;/devices/amlogic/bananapi_m5/log_img_files&lt;br /&gt;
  $ ls -l logo/&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup_X3.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_bar.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_error.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_fail.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_logo.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_success.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_unfocus.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_upgrading.bmp&lt;br /&gt;
&lt;br /&gt;
:5. Copy the boot-logo.bmp.gz&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup.bmp&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup_X3.bmp&lt;br /&gt;
&lt;br /&gt;
:6. Create target logo.img with img pack tool, the binary and related libs of m5_android_bootlogo_tool are copy from &amp;lt;android-source-dir&amp;gt;/out/host/linux-x86&lt;br /&gt;
  $ ./logo_img_packer -r logo logo.img&lt;br /&gt;
&lt;br /&gt;
:7. Flash boot logo with fastboot&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb reboot fastboot&lt;br /&gt;
:Wait few seconds and check whether fastboot connected&lt;br /&gt;
  $ fastboot device&lt;br /&gt;
  1234567890      fastboot&lt;br /&gt;
  $ fastboot flashing unlock_critical&lt;br /&gt;
  $ fastboot flashing unlock&lt;br /&gt;
  $ fastboot flash logo logo.img&lt;br /&gt;
  $ fastboot reboot&lt;br /&gt;
&lt;br /&gt;
===Boot Sequence===&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_boot_squence.png]]&lt;br /&gt;
&lt;br /&gt;
:Check bootloader loaded from SDcard or EMMC at the beginning of the console debug messages&lt;br /&gt;
&lt;br /&gt;
:1. Rom load bootloader from SDcard (Linux log example)&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  BL2 Built : 15:21:42, Mar 26 2020. g12a g486bc38 - gongwei.chen@droid11-sz&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from SD''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  fastboot data verify&lt;br /&gt;
  result: 255&lt;br /&gt;
  Cfg max: 12, cur: 1. Board id: 255. Force loop cfg&lt;br /&gt;
  DDR4 probe&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:2. Rom load bootloader from EMMC(Android Log example)&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  eMMC boot @ 0&lt;br /&gt;
  sw8 s&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from eMMC''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  00000000&lt;br /&gt;
  emmc switch 1 ok&lt;br /&gt;
  ddr saved addr:00016000&lt;br /&gt;
  Load ddr parameter from eMMC, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000, part: 0&lt;br /&gt;
  00000000&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
===Erase EMMC for SDcard Bootup===&lt;br /&gt;
:There are four possible scenarios should be pay attention to, EMMC already flashed Android image, EMMC already flashed Linux image, boot process hangup in BL2 and EMMC empty.&lt;br /&gt;
&lt;br /&gt;
:1. Bootable EMMC with Android image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using usb burning tool, unplug the download usb cable while the download process at '''7% formatting'''&lt;br /&gt;
&lt;br /&gt;
::[[File:m5_android_format.png]]&lt;br /&gt;
&lt;br /&gt;
::b). Using Android Fastboot tool, make sure the adb/fastboot tools is work on your PC before doing this.&lt;br /&gt;
&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb root'''&lt;br /&gt;
    adbd is already running as root&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb remount'''&lt;br /&gt;
    remount succeeded&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb shell'''&lt;br /&gt;
    bananapi_m5:/ # '''reboot fastboot'''&lt;br /&gt;
::Wait a few seconds for board reboot to fastboot mode&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot devices'''&lt;br /&gt;
    1234567890	fastboot&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock_critical'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.044s]&lt;br /&gt;
    finished. total time: 0.044s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.047s]&lt;br /&gt;
    finished. total time: 0.047s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader'''&lt;br /&gt;
    erasing 'bootloader'...&lt;br /&gt;
    OKAY [  0.059s]&lt;br /&gt;
    finished. total time: 0.059s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot0'''&lt;br /&gt;
    erasing 'bootloader-boot0'...&lt;br /&gt;
    OKAY [  0.036s]&lt;br /&gt;
    finished. total time: 0.036s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot1'''&lt;br /&gt;
    erasing 'bootloader-boot1'...&lt;br /&gt;
    OKAY [  0.035s]&lt;br /&gt;
    finished. total time: 0.035s&lt;br /&gt;
&lt;br /&gt;
::c). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5_v1#'''amlmmc erase 1'''&lt;br /&gt;
    emmckey_is_protected(): protect&lt;br /&gt;
    start = 0,end = 57343&lt;br /&gt;
    start = 221184,end = 30535679&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot0&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot1&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    bananapi_m5_v1#'''reset'''&lt;br /&gt;
    resetting ...&lt;br /&gt;
    SM1:BL:511f6b:81ca2f;FEAT:A0F83180:20282000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK;&lt;br /&gt;
&lt;br /&gt;
::These two ways actually erase the bootloader part of EMMC android, After bootup from SDcard Linux, You'd better [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command].&lt;br /&gt;
&lt;br /&gt;
::d). The simplest way is insert the SDcard with Linux image flashed before power on, the Android bootloader will check boot.ini file whether exist in SDcard vfat partition, so that the SDcard Linux will bootup. After bootup, you can [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command] and then flash the Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
    BPI: try boot from sdcard&lt;br /&gt;
    reading boot.ini&lt;br /&gt;
    5699 bytes read in 3 ms (1.8 MiB/s)&lt;br /&gt;
    ## Executing script at 01b00000&lt;br /&gt;
    ...&lt;br /&gt;
    reading Image.gz&lt;br /&gt;
    9143358 bytes read in 510 ms (17.1 MiB/s)&lt;br /&gt;
    reading meson64_bananapi_m5.dtb&lt;br /&gt;
    70850 bytes read in 8 ms (8.4 MiB/s)&lt;br /&gt;
    reading uInitrd&lt;br /&gt;
    11704481 bytes read in 655 ms (17 MiB/s)&lt;br /&gt;
    reading overlays/i2c0.dtbo&lt;br /&gt;
    223 bytes read in 6 ms (36.1 KiB/s)&lt;br /&gt;
    reading overlays/spi0.dtbo&lt;br /&gt;
    516 bytes read in 6 ms (84 KiB/s)&lt;br /&gt;
    reading overlays/uart1.dtbo&lt;br /&gt;
    225 bytes read in 5 ms (43.9 KiB/s)&lt;br /&gt;
&lt;br /&gt;
:2. Bootable EMMC with Linux image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5# mmc erase 0 1000&lt;br /&gt;
&lt;br /&gt;
::b). Linux u-boot also check boot.ini file whether exist in SDcard vfat partition so that the SDcard Linux will bootup. After bootup, you can format the whole EMMC by dd command or flash the Linux image directly to EMMC.&lt;br /&gt;
&lt;br /&gt;
:3. A extreme situation is bootloader or uboot corrupted, Rom load it from EMMC but hangup in u-boot or BL2, for example the boot process will hangup in BL2 of EMMC if dram init failed,  The only way is format the EMMC with usb burning tool, or download the Android image completely and then try other ways to erase EMMC or flash Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
:4. Rom will try to load bootloader from SDcard directly if EMMC is empty.&lt;br /&gt;
&lt;br /&gt;
===Erase Emmc Android by dd command===&lt;br /&gt;
:If the board is flashed android before, the whole emmc must be erased by these commands if you want bootup it with SDcard Linux image.&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1M status=noxfer &lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1M status=noxfer&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M status=noxfer &lt;br /&gt;
  $ sync&lt;br /&gt;
&lt;br /&gt;
===Wifi/BT support===&lt;br /&gt;
&lt;br /&gt;
:1. Android test and support.&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
  rtl8814au wifi(usb), please get the [https://github.com/aircrack-ng/rtl8814au aircrack-ng] driver and install.&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Android Wifi/BT'''&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and reboot the system, After bootup, you can enable or disable wifi and bluetooth in Settings app.&lt;br /&gt;
:SDIO/UART type: Connect the hardware module to 40pin header correctly and [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Android_DTB_overlay configure the Android DTB overlay] to enable it.&lt;br /&gt;
&lt;br /&gt;
:'''Note''': Android is not support that ethernet and wifi are both connected at the same time, Ethernet have a higher prioprity than wifi, it means wifi can't connect network if ethernet already connected, and wifi will drop connection if ethernet cable plugin.&lt;br /&gt;
&lt;br /&gt;
:2. Linux test and support.&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  rtl8192eu wifi(usb)&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8811au wifi(usb)&lt;br /&gt;
  rtl8812au wifi(usb)&lt;br /&gt;
  rtl8812bu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Wifi'''&lt;br /&gt;
&lt;br /&gt;
:Wifi module drivers are already prebuild in the release images.&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
:SDIO/UART type:&lt;br /&gt;
::1). Connect the hardware module to 40pin header correctly.&lt;br /&gt;
::2). Configure the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#DTB_overlay dtb overlay]&lt;br /&gt;
   # Overlays to load&lt;br /&gt;
   # Example combinations:&lt;br /&gt;
   #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
   #   hktft32&lt;br /&gt;
   #   hktft35&lt;br /&gt;
   setenv overlays &amp;quot;wifi_bt_rtl8822cs&amp;quot;&lt;br /&gt;
::3). Add the wifi module name to /etc/modules for loaded automatically next boot.&lt;br /&gt;
  # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
  # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
  88x2cs&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Bluetooth'''&lt;br /&gt;
&lt;br /&gt;
::1). Please download [https://github.com/Dangku/m5-rtk-linux-bt-driver rtk-linux-bt-driver] source code, build and install usb or uart rtk linux bluetooth drivers/firmwares to your image.&lt;br /&gt;
::2). For USB type, plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
::3). For UART type, Configure the dtb overlay as the same as wifi before install the bluetooth drivers/firmwares. hci_uart driver will be loaded when rtk-hciuart.service start.&lt;br /&gt;
&lt;br /&gt;
===Linux Server Image Network Configuration===&lt;br /&gt;
&lt;br /&gt;
:[https://netplan.io Netplan]&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi STA mode'''&lt;br /&gt;
&lt;br /&gt;
:A sample wifi sta mode netplan configuration file, 01-wlan0-sta.yaml&lt;br /&gt;
 network:&lt;br /&gt;
   version: 2&lt;br /&gt;
   renderer: networkd&lt;br /&gt;
   wifis:&lt;br /&gt;
     wlan0:&lt;br /&gt;
       dhcp4: true&lt;br /&gt;
       access-points:&lt;br /&gt;
         &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi AP mode'''&lt;br /&gt;
&lt;br /&gt;
:1. Prepare the setup the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Wifi.2FBT_support wifi adater] correctly.&lt;br /&gt;
&lt;br /&gt;
:2. Get the wifi adapter Band, Frequencies, Channel, HT Capability, VHT Capability or other properties&lt;br /&gt;
 $ iw list&lt;br /&gt;
&lt;br /&gt;
:3. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Network-Manager.&lt;br /&gt;
&lt;br /&gt;
:Install NetworkManager because ap is only supported with NetworkManager renderer&lt;br /&gt;
 $ sudo apt install network-manager&lt;br /&gt;
&lt;br /&gt;
:A sample 2.4G wifi ap mode netplan configuration file, 01-wlan0-ap-2.4g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 2.4GHz&lt;br /&gt;
          channel: 6&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:A sample 5G wifi ap mode netplan configuration file, 01-wlan0-ap-5g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 5GHz&lt;br /&gt;
          channel: 36&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:4. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Hostapd.&lt;br /&gt;
&lt;br /&gt;
:1). Create a netplan configuration file, 01-wlan0-ap-hostapd.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: networkd&lt;br /&gt;
 ethernets:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     addresses:&lt;br /&gt;
       - 192.168.11.1/24&lt;br /&gt;
&lt;br /&gt;
:2). Install hostapd&lt;br /&gt;
 $ sudo apt install hostapd&lt;br /&gt;
&lt;br /&gt;
:Create hostapd configuration file /etc/hostapd/hostapd.conf, for example&lt;br /&gt;
 interface=wlan0&lt;br /&gt;
 ssid=bananapi&lt;br /&gt;
 &lt;br /&gt;
 driver=nl80211&lt;br /&gt;
 &lt;br /&gt;
 auth_algs=1&lt;br /&gt;
 wpa=2&lt;br /&gt;
 wpa_passphrase=123456789&lt;br /&gt;
 wpa_key_mgmt=WPA-PSK&lt;br /&gt;
 rsn_pairwise=CCMP&lt;br /&gt;
 &lt;br /&gt;
 #bridge=br0&lt;br /&gt;
 beacon_int=500&lt;br /&gt;
 #SSID not hidden&lt;br /&gt;
 ignore_broadcast_ssid=0&lt;br /&gt;
 &lt;br /&gt;
 hw_mode=a&lt;br /&gt;
 channel=36&lt;br /&gt;
 max_num_sta=8&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11n&lt;br /&gt;
 ieee80211n=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 ht_capab=[HT20][HT40+][SHORT-GI-20][SHORT-GI-40][SHORT-GI-80][DSSS_CCK-40]&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11ac&lt;br /&gt;
 ieee80211ac=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 #vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]&lt;br /&gt;
 #vht_oper_chwidth=1&lt;br /&gt;
 #vht_oper_centr_freq_seg0_idx=42&lt;br /&gt;
 &lt;br /&gt;
 ### WMM&lt;br /&gt;
 wmm_enabled=1&lt;br /&gt;
&lt;br /&gt;
:3). To support 80MHz channel width you need load driver with '''rtw_vht_enable=2''' option, Or you can create /etc/modprobe.d/8822cs.conf with content&lt;br /&gt;
 options 88x2cs rtw_vht_enable=2&lt;br /&gt;
&lt;br /&gt;
:4). Install and configure dhcp server service, use isc-dhcp-server for example&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp server interface in /etc/default/isc-dhcp-server&lt;br /&gt;
 # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?&lt;br /&gt;
 #       Separate multiple interfaces with spaces, e.g. &amp;quot;eth0 eth1&amp;quot;.&lt;br /&gt;
 INTERFACESv4=&amp;quot;wlan0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp subnet and dns in /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ...&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option domain-name-servers 8.8.8.8, 114.114.114.114;&lt;br /&gt;
 ...&lt;br /&gt;
 # No service will be given on this subnet, but declaring it helps the &lt;br /&gt;
 # DHCP server to understand the network topology.&lt;br /&gt;
 subnet 192.168.11.0 netmask 255.255.255.0 {&lt;br /&gt;
   range dynamic-bootp 192.168.11.1 192.168.11.100;&lt;br /&gt;
   option broadcast-address 192.168.11.255;&lt;br /&gt;
   option routers 192.168.11.1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
:5). Start Service&lt;br /&gt;
 $ sudo hostapd /etc/hostapd/hostapd.conf -B&lt;br /&gt;
 $ sudo systemctl restart isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:6). Routing configuration.&lt;br /&gt;
 sysctl net.ipv4.ip_forward=1&lt;br /&gt;
 iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
===Cloud-init&amp;amp;Snap===&lt;br /&gt;
:Cloud-init and Snap service are enabled default, you can disable or remove them.&lt;br /&gt;
&lt;br /&gt;
:1. disable or remove cloud-init&lt;br /&gt;
  $ sudo touch /etc/cloud/cloud-init.disabled&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo apt purge cloud-init&lt;br /&gt;
&lt;br /&gt;
:2. disable or remove snap&lt;br /&gt;
  $ sudo apt purge snapd&lt;br /&gt;
&lt;br /&gt;
===Enable rc-local===&lt;br /&gt;
:The systemd service rc-local.service already exists in release image, but there is no [Install] part in the unit file. As a result, Systemd is unable to enable it. First, we must update the file.&lt;br /&gt;
&lt;br /&gt;
  $ sudo nano /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=/etc/rc.local Compatibility&lt;br /&gt;
  Documentation=man:systemd-rc-local-generator(8)&lt;br /&gt;
  ConditionFileIsExecutable=/etc/rc.local&lt;br /&gt;
  After=network.target&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Type=forking&lt;br /&gt;
  ExecStart=/etc/rc.local start&lt;br /&gt;
  TimeoutSec=0&lt;br /&gt;
  RemainAfterExit=yes&lt;br /&gt;
  GuessMainPID=no&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=multi-user.target&lt;br /&gt;
  Alias=rc-local.service&lt;br /&gt;
&lt;br /&gt;
:Create /etc/rc.local file.&lt;br /&gt;
&lt;br /&gt;
  sudo nano /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  #&lt;br /&gt;
  # rc.local&lt;br /&gt;
  #&lt;br /&gt;
  # This script is executed at the end of each multiuser runlevel.&lt;br /&gt;
  # Make sure that the script will &amp;quot;exit 0&amp;quot; on success or any other&lt;br /&gt;
  # value on error.&lt;br /&gt;
  #&lt;br /&gt;
  # In order to enable or disable this script just change the execution&lt;br /&gt;
  # bits.&lt;br /&gt;
  #&lt;br /&gt;
  # By default this script does nothing.&lt;br /&gt;
  &lt;br /&gt;
  exit 0&lt;br /&gt;
&lt;br /&gt;
:Add executable permission to /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
:Enable rc-local.service and reboot&lt;br /&gt;
&lt;br /&gt;
  $ sudo systemctl enable rc-local.service&lt;br /&gt;
  $ sudo reboot&lt;br /&gt;
&lt;br /&gt;
===Enable sudo for Debian===&lt;br /&gt;
:The release Debian image do not install sudo default, with &amp;quot;su -&amp;quot; command, user can change to root. If you like sudo, you can install it.&lt;br /&gt;
&lt;br /&gt;
  $ su -&lt;br /&gt;
  Password:(enter bananapi)&lt;br /&gt;
  &lt;br /&gt;
  # apt install sudo&lt;br /&gt;
  # adduser pi sudo&lt;br /&gt;
&lt;br /&gt;
: Then please do logout and login again&lt;br /&gt;
&lt;br /&gt;
===Install Docker Engine===&lt;br /&gt;
:Install Docker Engine on Ubuntu 20.04 Server&lt;br /&gt;
  &lt;br /&gt;
:1. Set up the repository&lt;br /&gt;
&lt;br /&gt;
:Update the apt package index and install packages to allow apt to use a repository over HTTPS:&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
:Add Docker’s official GPG key:&lt;br /&gt;
  $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
:Set up the stable repository&lt;br /&gt;
  $  echo \&lt;br /&gt;
     &amp;quot;deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \&lt;br /&gt;
     $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
:2. Install Docker Engine&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install docker-ce docker-ce-cli containerd.io&lt;br /&gt;
&lt;br /&gt;
:3. Verify the Docker Engine is installed correctly by running the hello-world image.&lt;br /&gt;
  $ sudo docker run hello-world&lt;br /&gt;
&lt;br /&gt;
:[[File:docker-test.png]]&lt;br /&gt;
&lt;br /&gt;
Install docker with a simple command&lt;br /&gt;
&lt;br /&gt;
  $ curl -sSL get.docker.com | sudo sh&lt;br /&gt;
&lt;br /&gt;
[https://docs.docker.com/engine/install/ Install Docker Engine] on other Linux distributions&lt;/div&gt;</summary>
		<author><name>Czj</name></author>	</entry>

	</feed>