Difference between revisions of "Getting Started with M64"

From Banana Pi Wiki
Jump to: navigation, search
(Introduction)
(Development For Linux)
Line 22: Line 22:
 
* WiFi (AP6212) & Bluetooth
 
* WiFi (AP6212) & Bluetooth
  
 +
=Development For Android=
 
=Development For Linux=
 
=Development For Linux=
==Basic Development==
+
==Install Linux Image on M64==
===Prepare to develop===
+
===Prepare===
 
   * 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 M64
 
   * Using your USB-Serial Connect debug console on M64
  
===Load your first image on M64===
+
===Download Image to SDcard===
 
   1.You could download latest image from our forum
 
   1.You could download latest image from our forum
 
    
 
    
Line 40: Line 41:
 
   4.After step 3, then you can insert your TF card into M64, and press power button setup M64
 
   4.After step 3, then you can insert your TF card into M64, and press power button setup M64
  
===Load your first image on M64 EMMC===
+
===Download Image to EMMC===
 
   * Run your M64 with TF card
 
   * Run your M64 with TF card
 
   * Copy "xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to your USB disk
 
   * Copy "xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to your USB disk
Line 47: Line 48:
 
   * Then power off M64, take TF card out, power on M64
 
   * Then power off M64, take TF card out, power on M64
  
==Advanced Development==
+
===Switch to LCD7 bootup===
===Update your image===
+
*The default release images are HDMI bootup type, you can switch to LCD bootup type after first boot.
  * After built bsp code, you could find "SD" directory in project, "cd SD" you could find the generated bootloader, rootfs
+
  $ sudo bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m64/BPI-M64-LCD7-linux4.4-8k.img.gz
  * execute “bpi-tools”, to update your bpi tools;
+
  $ reboot
  * execute “bpi-update -c bpi-m64.conf -d /dev/sdX”, 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-m64/u-boot-with-dtb-bpi-m64-720P-8k.img.gz”
 
  * execute “bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m64/u-boot-with-dtb-bpi-m64-720P-8k.img.gz”, to update your bootloader
 
  * reboot
 
  
===How to build uboot & kernel===
+
==Build M64 bsp source code==
====Install tools====
 
* apt-get udpate
 
* apt-get install gcc-arm-linux-gnueabihf u-boot-tools
 
* apt-get install pv
 
* curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
 
===Touch screen===
 
====LCD 7"====
 
* Execute "bpi-bootsel", you'll see a list of boot files
 
* Find "BPI_A64_LCD7.img.gz"
 
* Then execute "bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m64/u-boot-with-dtb-bpi-m64-lcd7-8k.img.gz"
 
  [[Image:A64_bootsel_lcd7.png]]
 
  
 +
==Other development and test==
 
===GMAC===
 
===GMAC===
 
Use iperf3 to test gmac
 
Use iperf3 to test gmac

Revision as of 23:59, 9 July 2020

Introduction

Overview: BPI-M64 respbian linux

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

A64 Key Features

  • 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor-A64
  • 2GB DDR3 SDRAM
  • 8G EMMC
  • 10/100/1000Mbps Ethernet
  • WiFi (AP6212) & Bluetooth

R18 Key Features

  • 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor-R18
  • 2GB DDR3 SDRAM
  • 8G EMMC
  • 10/100/1000Mbps Ethernet
  • WiFi (AP6212) & Bluetooth

Development For Android

Development For Linux

Install Linux Image on M64

Prepare

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

Download Image to SDcard

 1.You could download latest image from our forum
 
 2.Install bpi-tools on your system
 * 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 M64, and press power button setup M64

Download Image to EMMC

 * Run your M64 with TF card
 * Copy "xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to your USB disk
 * Plug your USB disk in M2U
 * After M64 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 M64, take TF card out, power on M64

Switch to LCD7 bootup

  • The default release images are HDMI bootup type, you can switch to LCD bootup type after first boot.
 $ sudo bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m64/BPI-M64-LCD7-linux4.4-8k.img.gz
 $ reboot

Build M64 bsp source code

Other development and test

GMAC

Use iperf3 to test gmac

1. On PC Terminal:

  • Execute "iperf3 -s"

2. On M2U console:

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

A64 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:

A64 bluetooth.png

WiFi on A64

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/wpasupplicant/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

Ap Mode

1.Install hostapd and create hostapd configuration file hostapd.conf:

interface=wlan0
driver=nl80211
ssid=test
hw_mode=g
channel=1

2.Execute command:"hostapd -d /<path>/hostapd.conf" If you meet problem like this:

A64 ap 1.png

Then, you could solve by following command:

  • nmcli radio wifi off

A64 ap 2.png

  • rfkill unblock 1
  • rfkill unblock 2
  • ifconfig wlan0 up
  • hostapd -d hostapd.conf

A64 ap 3.png

Clear boot

GPIO Control

  • To access a GPIO pin you first need to export it with
 echo XX > /sys/class/gpio/export
  • 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)
 (position of letter in alphabet - 1) * 32 + pin number
  for PH18 this would be ( 8 - 1) * 32 + 18 = 224 + 18 = 242 (since 'h' is the 8th letter)
  • echo "out/in" > /sys/class/gpio/gpio*NUMBER*/direction
  • echo "0/1" > /sys/class/gpio/gpio*NUMBER*/value

Camara function

We use HDF5640 camara.

Ov5640 camara.png

Guvcview

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

Shell

  • 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

IR function

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

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


WringPi

How to Update WiringPi

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

Update Pkglist.png

  • If your image is 32bit please do this command to install wring pi
  • Execute "bpi-update -c bpi-pkg-bpi-wiringpi.conf"
  • If your image is 64bit please do:"bpi-update -c bpi-pkg-bpi-wiringpi-arm64.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"

File System

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

FAQ