Difference between revisions of "Getting Started with M3"

From Banana Pi Wiki
Jump to: navigation, search
(Prepare to develop)
(Load your image on M3 EMMC)
 
(77 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
[[zh:快速上手 香蕉派 BPI-M3]]
 
=Introduction=
 
=Introduction=
 
==BPI-M3==
 
==BPI-M3==
 +
[[File:Banana_pi_BPI-M3_1.jpg|thumb|Overview: [[Banana Pi BPI-M3]]]]
 
[[File:M3_respbian.png|thumb|Overview: BPI-M3 respbian linux]]
 
[[File:M3_respbian.png|thumb|Overview: BPI-M3 respbian linux]]
 +
[[File:BPI-m3_debian.jpg|thumb|Overview: BPI-M3 debian linux]]
 +
[[File:Bpi-m3_ubutnu.jpg|thumb|Overview: BPI-M3 ubuntu linux]]
  
 
   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.  
 
   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.  
Line 13: Line 17:
 
* WiFi & Bluetooth onboard
 
* WiFi & Bluetooth onboard
  
=Development=
+
=Development For Android=
 +
===Load your first image on M3===
 +
 
 +
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9
 +
 
 +
  1.You could download latest image from our forum.
 +
  Ex: http://wiki.banana-pi.org/Banana_Pi_BPI-M3#Android_5.1.1_V5
 +
 
 +
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.
 +
 
 +
  3.Prepare your image, and download image burning tools PhoenixCard.exe.
 +
 
 +
  4.Use "PhoenixCard.exe" to burn android image to TF card.
 +
 
 +
  [[Image:M3_Android_Burning.png | 600px]]
 +
 
 +
===Load your image on M3 EMMC===
 +
  1.The only different with sd card burning is the image burning mode item choice
 +
 
 +
  [[Image:M3_Android_Emmc_Burning.png | 600px]]
 +
 
 +
  2.After succeed to burn image to SD, then plug SD card in your M3
 +
 
 +
  3.Press power button, device will copy image to EMMC automatically
 +
 
 +
  [[Image:M3_Android_Emmc_Copy.png]]
 +
 
 +
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9
 +
 
 +
===How to buld M3 Bsp code===
 +
  * Prepare a PC which runs ubuntu
 +
  * Install Docker-ce on your PC,https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce (Install Docker Environment)
 +
  * After install Docker, execute "docker pull sinovoip/bpi-build:ubuntu12.04", to pull image (Pull Docker Image)
 +
  * Then you pulled image, execute "docker run --privileged -d -p 2222:22 -v /media:/media sinovoip/bpi-build:ubuntu12.04" (Create A Port To Login Docker Image)
 +
  * "ssh -p 2222 [email protected] #default passwd is root" (Login In Docker Image)
 +
  * Execute "git clone https://github.com/BPI-SINOVOIP/BPI-M3-bsp.git" on your ubuntu terminal (Git Clone M3 Bsp Code)
 +
  * Execute "./build.sh" to build M3 bsp code (Build M3 Bsp Code)
 +
  * After built, open a new terminal, you could copy the compile files out of docker image by executing "docker cp <your container id>:<your project path> <your pc path>"
 +
 
 +
  [[Image:docker_operate.png]]
 +
 
 +
=Development For Linux=
 
Let's get start to develop on BPI-M3, see amazing things happen.
 
Let's get start to develop on BPI-M3, see amazing things happen.
 
==Basic Development==
 
==Basic Development==
Line 19: Line 64:
 
   * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System
 
   * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System
 
   * Using your USB-Serial Connect debug console on M3
 
   * Using your USB-Serial Connect debug console on M3
 +
 +
  [[Image:M3_console_interface.png | 600px]]
  
 
===Load your first image on M3===
 
===Load your first image on M3===
 
   1.You could download latest image from our forum
 
   1.You could download latest image from our forum
 +
  * 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
 
    
 
    
   2.Install bpi-tools on your system
+
   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.
 
   * apt-get install pv
 
   * apt-get install pv
 
   * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
 
   * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
Line 38: Line 86:
 
   * After M3 recognise USB disk, execute "bpi-copy xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to install image on EMMC
 
   * After M3 recognise USB disk, execute "bpi-copy xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to install image on EMMC
 
   * Then power off M3, take TF card out, power on M3
 
   * Then power off M3, take TF card out, power on M3
 +
 +
===Update your image===
 +
For example, update your image to support new emmc5.1
 +
 +
  * execute “bpi-tools”, to update your bpi tools;
 +
  * execute “bpi-update -c bpi-m3.conf”, to download new driver to update your image
 +
  * execute “file *.tgz”, to check download files’ type is compressed data
 +
  * execute “bpi-bootsel”, you will see the bootloader path, “/usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz”
 +
  * execute “bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz”, to update your bootloader
 +
  * reboot
 +
 +
===Make your own image===
 +
====Make one raspbian image====
 +
* Prepare a SD card which have installed Raspbian system
 +
* Boot your SD card with M3, after M3 finish starting, copy your files and config your Raspbian, then poweroff M3
 +
* Plug your SD card in Linux PC, "cd /media", then "ln -s <your account> pi"
 +
* Execute "bpi-migrate -c bpi-m3.conf -c raspbian-jessie-from-sd.conf -d /dev/sdx"
 +
* Then you could get your own image now
  
 
==Advanced Development==
 
==Advanced Development==
 +
===Install Docker===
 +
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)
 +
 +
Download this image to your ubuntu PC (I am using ubuntu PC), then decompress it
 +
 +
* 7z x Debian_stretch_xxx.img
 +
* bpi-copy Debian_stretch_xxx.img /dev/sd< drive letter >
 +
 
 +
  username: root, password: 1234
 +
 +
Here are steps to install docker:
 +
 +
* vim /etc/apt/sources.list
 +
 +
* add this source:“deb http://http.debian.net/debian jessie-backports main”
 +
 +
* apt-get update
 +
 +
* apt-get install docker.io
 +
 +
To have a test, if docker has installed in your image.
 +
 +
* sudo docker run --rm hello-world
 +
 
===SATA===
 
===SATA===
 
1. Mount SATA on M3
 
1. Mount SATA on M3
 
  [[Image:M3_Sata.png]]
 
 
 
* After insert sata interface, execute "fdisk -l"
 
* After insert sata interface, execute "fdisk -l"
  [[Image:M3_Sata_fdisk_l.png]]
 
 
 
* Then "mount /dev/sdx /mnt/xxx"
 
* Then "mount /dev/sdx /mnt/xxx"
 +
  [[Image:M3_Sata.png]]
  
 
2. If you meet some errors when you mount SATA, try these following commands:
 
2. If you meet some errors when you mount SATA, try these following commands:
  
* "fdisk /dev/sdx" to create new partition , after created input "wq" to save and quit.
+
* "fdisk /dev/sdx" to create new partition , set your partition numbers and size, after created partitions, input "wq" to save and quit.
 
* "mkfs.ext2 /dev/sdx" to format the SATA
 
* "mkfs.ext2 /dev/sdx" to format the SATA
 
* "mount /dev/sdx /mnt/xxx"
 
* "mount /dev/sdx /mnt/xxx"
Line 106: Line 192:
 
* ip link set wlan0 up
 
* ip link set wlan0 up
 
* iw dev wlan0 scan | grep SSID
 
* iw dev wlan0 scan | grep SSID
* vim /etc/wpasupplicant/wpa_supplicant.conf  
+
* vim /etc/wpa_supplicant/wpa_supplicant.conf  
* network={    ssid="ssid"    psk="password"    priority=1 }
+
network={     
* wpa_supplicant -B -dd -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
+
ssid="ssid"     
 +
psk="password"     
 +
priority=1  
 +
}
 +
* wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
 
* dhclient wlan0
 
* dhclient wlan0
  
Line 118: Line 208:
  
 
===Camara function===
 
===Camara function===
We use HDF5640 camara.
+
We use HDF5640(The left one) camara and HDF8865(The right one).
  
 
[[Image:ov5640_camara.png]]
 
[[Image:ov5640_camara.png]]
 +
[[Image:ov8865_camara.png]]
 
====Guvcview====
 
====Guvcview====
 
* Use your UI interface to operate camara
 
* Use your UI interface to operate camara
 
* Applications -> Sound & Video -> guvcview
 
* Applications -> Sound & Video -> guvcview
  
 +
====Shell====
 +
'''Ov5640'''
 
* We also have built-in command in "/usr/local/bin" to test camara
 
* We also have built-in command in "/usr/local/bin" to test camara
 
* "./test_ov5640_image_mode.sh" to test picture taking function
 
* "./test_ov5640_image_mode.sh" to test picture taking function
 
* "./cameratest.sh" to test video recording function
 
* "./cameratest.sh" to test video recording function
 +
 +
'''Ov8865'''
 +
* "/test_ov8865.sh"
  
 
===IR function===
 
===IR function===
 
* Execute "getevent"
 
* Execute "getevent"
 
* Use your IR device to send information to M3
 
* Use your IR device to send information to M3
 +
[[Image:M3_IR.png]]
 +
 +
===BPI-Tools===
 +
====Install Bpi-tools====
 +
* Execute "curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash - "
  
===WringPi===
+
====Update Bpi-tools====
 +
* Execute "bpi-tools"
 +
[[Image: Bpi-tools.png]]
 +
 
 +
===RPi.GPIO===
 +
====Install RPi.GPIO====
 +
* Execute "git clone https://github.com/BPI-SINOVOIP/RPi.GPIO"
 +
* after clone the repo, cd RPi,GPIO
 +
* Execute "sudo apt-get update"
 +
* Execute "sudo apt-get install python-dev python3-dev"
 +
* Execute "sudo python setup.py install" or "sudo python3 setup.py install" to install the module
 +
 
 +
====Using RPi.GPIO====
 +
* cd /usr/local/bin
 +
* Execute "./bpi_test_g40.py" to test RPi.GPIO
 +
 
 +
[[Image: RPi_GPIO.png]]
 +
 
 +
===WiringPi===
 
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git
 
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git
 
* We also have built-in test command in "/usr/local/bin"
 
* We also have built-in test command in "/usr/local/bin"
 +
 +
====How to Update WiringPi====
 +
* Execute "bpi-update -c pkglist.conf"
 +
[[Image: Update_Pkglist.png]]
 +
 +
* Execute "bpi-update -c bpi-pkg-bpi-wiringpi.conf"
 +
[[Image: Update_WringPi.png]]
  
 
====RGB 1602 LCD====
 
====RGB 1602 LCD====
Line 148: Line 274:
  
 
* Execute "/usr/local/bin/bpi_test_gpio40.sh"
 
* Execute "/usr/local/bin/bpi_test_gpio40.sh"
 +
 +
===GPU===
 +
* Execute "glmark2-es" to start OpenGL test
 +
* glmark2 Score: 258
 +
[[Image:M3_GPU_Test.png | 320px]]
  
 
===File System===
 
===File System===

Latest revision as of 17:26, 19 March 2023

Introduction

BPI-M3

Overview: BPI-M3 respbian linux
Overview: BPI-M3 debian linux
Overview: BPI-M3 ubuntu linux
  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. 

Key Features

  • Octa-core 1.8GHz Powerful CPU
  • 2 GB LPDDR3 memory
  • 8 GB eMMC storage
  • WiFi & Bluetooth onboard

Development For Android

Load your first image on M3

 * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9
 1.You could download latest image from our forum.
 Ex: http://wiki.banana-pi.org/Banana_Pi_BPI-M3#Android_5.1.1_V5
 
 2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.
 
 3.Prepare your image, and download image burning tools PhoenixCard.exe.
 
 4.Use "PhoenixCard.exe" to burn android image to TF card.
 
 M3 Android Burning.png

Load your image on M3 EMMC

 1.The only different with sd card burning is the image burning mode item choice
  
 M3 Android Emmc Burning.png
 
 2.After succeed to burn image to SD, then plug SD card in your M3
 
 3.Press power button, device will copy image to EMMC automatically
 
 M3 Android Emmc Copy.png
 * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9

How to buld M3 Bsp code

 * Prepare a PC which runs ubuntu
 * Install Docker-ce on your PC,https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce (Install Docker Environment)
 * After install Docker, execute "docker pull sinovoip/bpi-build:ubuntu12.04", to pull image (Pull Docker Image)
 * Then you pulled image, execute "docker run --privileged -d -p 2222:22 -v /media:/media sinovoip/bpi-build:ubuntu12.04" (Create A Port To Login Docker Image)
 * "ssh -p 2222 [email protected] #default passwd is root" (Login In Docker Image)
 * Execute "git clone https://github.com/BPI-SINOVOIP/BPI-M3-bsp.git" on your ubuntu terminal (Git Clone M3 Bsp Code)
 * Execute "./build.sh" to build M3 bsp code (Build M3 Bsp Code)
 * After built, open a new terminal, you could copy the compile files out of docker image by executing "docker cp <your container id>:<your project path> <your pc path>"
 
 Docker operate.png

Development For Linux

Let's get start to develop on BPI-M3, see amazing things happen.

Basic Development

Prepare to develop

 * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System
 * Using your USB-Serial Connect debug console on M3
 M3 console interface.png

Load your first image on M3

 1.You could download latest image from our forum
 * 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
 
 2.Install bpi-tools on your system. If you can't access this URL or any other problems, please go to bpi-tools repo and install this tools manually.
 * apt-get install pv
 * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
 
 3.After you download the image, insert your TF card into your Ubuntu
 * Execute "bpi-copy xxx.img /dev/sdx" to install image on your TF card.
 
 4.After step 3, then you can insert your TF card into M3, and press power button setup M3

Load your first image on M3 EMMC

 * Run your M3 with TF card
 * Copy "xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to your USB disk
 * Plug your USB disk in M3
 * After M3 recognise USB disk, execute "bpi-copy xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to install image on EMMC
 * Then power off M3, take TF card out, power on M3

Update your image

For example, update your image to support new emmc5.1

  * execute “bpi-tools”, to update your bpi tools;
  * execute “bpi-update -c bpi-m3.conf”, to download new driver to update your image
  * execute “file *.tgz”, to check download files’ type is compressed data
  * execute “bpi-bootsel”, you will see the bootloader path, “/usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz”
  * execute “bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz”, to update your bootloader
  * reboot

Make your own image

Make one raspbian image

  • Prepare a SD card which have installed Raspbian system
  • Boot your SD card with M3, after M3 finish starting, copy your files and config your Raspbian, then poweroff M3
  • Plug your SD card in Linux PC, "cd /media", then "ln -s <your account> pi"
  • Execute "bpi-migrate -c bpi-m3.conf -c raspbian-jessie-from-sd.conf -d /dev/sdx"
  • Then you could get your own image now

Advanced Development

Install Docker

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)

Download this image to your ubuntu PC (I am using ubuntu PC), then decompress it

  • 7z x Debian_stretch_xxx.img
  • bpi-copy Debian_stretch_xxx.img /dev/sd< drive letter >
 username: root, password: 1234

Here are steps to install docker:

  • vim /etc/apt/sources.list
  • apt-get update
  • apt-get install docker.io

To have a test, if docker has installed in your image.

  • sudo docker run --rm hello-world

SATA

1. Mount SATA on M3

  • After insert sata interface, execute "fdisk -l"
  • Then "mount /dev/sdx /mnt/xxx"
 M3 Sata.png

2. If you meet some errors when you mount SATA, try these following commands:

  • "fdisk /dev/sdx" to create new partition , set your partition numbers and size, after created partitions, input "wq" to save and quit.
  • "mkfs.ext2 /dev/sdx" to format the SATA
  • "mount /dev/sdx /mnt/xxx"

3. After you success to insert SATA, we could input following commands to test SATA interface:

  • "time dd if=/dev/xxx of=/dev/null bs=1M count=1000" to test read speed
  • "time dd if=/dev/zero of=/dev/sdx bs=1M count=1000" to test write speed
 Sata test.png

OTG

1. On M3 console:

  • Execute "./adbd.sh", then execute "ps -ax | grep adbd" to see if adbd is set up
 M2P ADBD.png

2. On PC terminal:

  • If adbd was succeed to set up, insert OTG-USB interface to M3 and PC(with Ubuntu system)
  • Execute "adb devices" to see if PC has recognised M3 OTG
  • If yes, we could execute "adb shell" to connect M3 by adb now
 M2P ADBD Shell.png

LCD 5" & LCD 7"

  • Execute "bpi-bootsel", you'll see a list of boot files
  • Find "BPI_M3_LCD7.img.gz"
  • Then execute "bpi-bootsel /usr/lib/u-boot/bananapi/bpi-M3/BPI_M3_LCD7.img.gz"
 M3 bootsel lcd7.png

Touch screen

GMAC

Use iperf3 to test gmac

1. On PC Terminal:

  • Execute "iperf3 -s"

2. On M3 console:

  • TCP test: "iperf3 -c serverIP"
  • UDP test: "iperf3 -u -c serverIP"

M3 Gmac test.png

Bluetooth

  • Use bluetoothctl tool to operate BT
  • Execute "bluetoothctl"
  • If you don't know how to use bluetoothctl, type "help", you will see more commands
  • Execute these commands:

M3 bluetooth.png

WiFi on M3

WiFi Client

You have two ways to setup WiFi Client

1. Use commands to setup WiFi client

  • ip link set wlan0 up
  • iw dev wlan0 scan | grep SSID
  • vim /etc/wpa_supplicant/wpa_supplicant.conf
network={    
ssid="ssid"    
psk="password"    
priority=1 
}
  • wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
  • dhclient wlan0

2. Use UI interface to setup WiFi Client

Clear boot

Camara function

We use HDF5640(The left one) camara and HDF8865(The right one).

Ov5640 camara.png Ov8865 camara.png

Guvcview

  • Use your UI interface to operate camara
  • Applications -> Sound & Video -> guvcview

Shell

Ov5640

  • We also have built-in command in "/usr/local/bin" to test camara
  • "./test_ov5640_image_mode.sh" to test picture taking function
  • "./cameratest.sh" to test video recording function

Ov8865

  • "/test_ov8865.sh"

IR function

  • Execute "getevent"
  • Use your IR device to send information to M3

M3 IR.png

BPI-Tools

Install Bpi-tools

Update Bpi-tools

  • Execute "bpi-tools"

Bpi-tools.png

RPi.GPIO

Install RPi.GPIO

  • Execute "git clone https://github.com/BPI-SINOVOIP/RPi.GPIO"
  • after clone the repo, cd RPi,GPIO
  • Execute "sudo apt-get update"
  • Execute "sudo apt-get install python-dev python3-dev"
  • Execute "sudo python setup.py install" or "sudo python3 setup.py install" to install the module

Using RPi.GPIO

  • cd /usr/local/bin
  • Execute "./bpi_test_g40.py" to test RPi.GPIO

RPi GPIO.png

WiringPi

How to Update WiringPi

  • Execute "bpi-update -c pkglist.conf"

Update Pkglist.png

  • Execute "bpi-update -c bpi-pkg-bpi-wiringpi.conf"

Update WringPi.png

RGB 1602 LCD

  • Execute "/usr/local/bin/bpi_test_lcd1602.sh"

0.96 Inch OLED Display

  • Execute "/usr/local/bin/bpi_test_52pi.sh"

8x8 RGB LED Martix

  • Firstly you need a GPIO Extend Board for 8x8 LED Martix

WringPi LED Martix Extend Board.png

  • Execute "/usr/local/bin/bpi_test_gpio40.sh"

GPU

  • Execute "glmark2-es" to start OpenGL test
  • glmark2 Score: 258

M3 GPU Test.png

File System

  • read only system change to read & write mode: "mount -o remount,rw /"

FAQ