Difference between pages "Getting Started with M2P" and "Getting Started with M1P"

From Banana Pi Wiki
(Difference between pages)
Jump to: navigation, search
(WiFi Client)
 
 
Line 1: Line 1:
 +
[[zh:快速上手_M1P]]
 
=Introduction=
 
=Introduction=
 +
==BPI-M1P==
 +
[[File:M1P_ubuntu.png|thumb|Overview: BPI-M1P ubuntu linux]]
  
[[File:M2p_ubunu.jpg|thumb|Overview: BPI-M2+ Ubuntu linux]]
+
  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.
[[File:M2p_debian.jpg|thumb|Overview:BPI-M2+ Debian linux]]
+
  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.  
[[File:Rasbian.jpg|thumb|Overview:BPI-M2+ Rasbian linux]]
 
  
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.
+
*Read more about : [[Banana Pi BPI-M1+]]
  
 
*Read more about : [[Banana Pi BPI-M2+]]
 
*Burn image  : [[Quick Start Banana pi SBC]]
 
 
==BPI-M2+ H3==
 
 
===Key Features===
 
===Key Features===
* Quad-core 1.2GHz Cortex-A7 H3
+
* Dual-core 1.0GHz CPU
* 1GB DDR3
+
* 1 GB DDR3 memeory
* 8GB eMMC onboard
+
* Mali-400 MP2 with Open GL ES 2.0/1.1
* WiFi and BlueTooth onboard
+
* WiFi onbaord
* 10/100/1000Mbps Ethernet Port
 
 
 
=Development For Android=
 
===Load your first image on M2P===
 
  1.You could download latest image from our forum.
 
  Ex: http://forum.banana-pi.org/t/bananapi-bpi-m2p-h3-new-image-android7-0-release-2018-6-30/6147
 
 
 
  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.
 
  
  * Here is the example of M3
+
=Development=
 
+
Let's get start to develop on BPI-M1P, see amazing things happen.
  [[Image:M3_Android_Burning.png]]
 
 
 
===Load your image on M2P EMMC===
 
  1.The only different with sd card burning is the image burning mode item choice
 
 
 
  * Here is the example of M3
 
 
 
  [[Image:M3_Android_Emmc_Burning.png]]
 
 
 
  2.After succeed to burn image to SD, then plug SD card in your M2P
 
 
 
  3.Press power button, device will copy image to EMMC automatically
 
 
 
  * Download PhoenixCard: https://pan.baidu.com/s/18Fo_JhYY02gmxtFw2Ps3rQ
 
 
 
=Development For Linux=
 
 
==Basic Development==
 
==Basic Development==
 
===Prepare to develop===
 
===Prepare to develop===
 
   * 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 M2P
+
   * Using your USB-Serial Connect debug console on M1P
  
===Load your first image on M2P===
+
===Load your first image on M1P===
 
   1.You could download latest image from our forum
 
   1.You could download latest image from our forum
  * 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
 
 
    
 
    
   2.Install bpi-tools on your Ubuntu
+
   2.Install bpi-tools on your system
 
   * 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 64: Line 32:
 
   * Execute "bpi-copy xxx.img /dev/sdx" to install image on your TF card.
 
   * 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 M2P, and press power button setup M2P.
+
   4.After step 3, then you can insert your TF card into M1P, and press power button setup M1P
 
 
===Load your first image on M2P EMMC===
 
  * Run your M2P with TF card
 
  * Copy "xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to your USB disk
 
  * Plug your USB disk in M2P
 
  * After M2P 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 M2P, take TF card out, power on M2P with EMMC
 
  
 
==Advanced Development==
 
==Advanced Development==
 +
===SATA===
 +
1. Mount SATA on M1P
 +
* After insert sata interface, execute "fdisk -l"
 +
* Then "mount /dev/sdx /mnt/xxx"
 +
  [[Image:M1P_Sata.png]]
  
===How to build uboot & kernel===
+
2. If you meet some errors when you mount SATA, try these following commands:
====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
 
====Clone code====
 
* git clone: https://github.com/BPI-SINOVOIP/BPI-M2P-bsp.git
 
* ./build.sh
 
  
===How to create an image ===
+
* "fdisk /dev/sdx" to create new partition , set your partition numbers and size, after created partitions, input "wq" to save and quit.
* Prepare a SD card which have installed system(Ubuntu/Raspbian/..)
+
* "mkfs.ext2 /dev/sdx" to format the SATA
* 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]
+
* "mount /dev/sdx /mnt/xxx"
* Plug your SD card in PC(which is running Linux), "cd /media", then "ln -s <your account> pi"
 
* Execute "bpi-migrate -c bpi-m2p.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx"
 
* Then you could get your own image now
 
  
===GPIO Control===
+
3. After you success to insert SATA, we could input following commands to test SATA interface:
* To access a GPIO pin you first need to export it with
+
* "time dd if=/dev/xxx of=/dev/null bs=1M count=1000" to test read speed
  echo XX > /sys/class/gpio/export
+
* "time dd if=/dev/zero of=/dev/sdx bs=1M count=1000" to test write speed
* 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)
+
  [[Image:Sata_test.png]]
  (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
 
  
===OTG===
+
===Touch screen===
1. On M2P console:
 
* Execute "./adbd.sh", then execute "ps -ax | grep adbd" to see if adbd is set up
 
 
 
2. On PC terminal:
 
* If adbd was succeed to set up, insert OTG-USB interface to M2P and PC(with Ubuntu system)
 
* Execute "adb devices" to see if PC has recognised M2P OTG
 
* If yes, we could execute "adb shell" to connect M2P by adb now
 
  
 
===GMAC===
 
===GMAC===
* Use iperf3 to test gmac
+
Use iperf3 to test gmac
 
 
[[Image:M2P_GMAC.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:
 
[[Image:M2P_BT_bluetoothctl.png]]
 
  
[[Image:M2P_BT.png]]
+
1. On PC Terminal:
 +
* Execute "iperf3 -s"
  
===WiFi on M2P===
+
2. On M1P console:
 
+
* TCP test: "iperf3 -c serverIP"
Driver code:
+
* UDP test: "iperf3 -u -c serverIP"
 
+
[[Image:M1P_Gmac_test.png]]
*https://github.com/BPI-SINOVOIP/BPI_WiFi_Firmware
 
  
 +
===WiFi on M1P===
 
====WiFi Client====
 
====WiFi Client====
 
'''You have two ways to setup WiFi Client'''
 
'''You have two ways to setup WiFi Client'''
Line 146: Line 82:
 
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB
 
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB
 
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX
 
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX
 
===Camara function===
 
We use HDF5640 camara.
 
 
[[Image:ov5640_camara.png]]
 
====Guvcview====
 
* Use your UI interface to operate camara
 
* Applications -> Sound & Video -> guvcview
 
[[Image:guvcview_ov5640.png]]
 
====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===
 
===IR function===
 
* Execute "getevent"
 
* Execute "getevent"
* Use your IR device to send information to M2P
+
* Use your IR device to send information to M1P
[[Image:IR_getevent.png]]
+
[[Image:M1P_IR.png]]
 
 
===BPI-Tools===
 
====Install Bpi-tools====
 
* Execute "curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash - "
 
 
 
====Update Bpi-tools====
 
* Execute "bpi-tools"
 
[[Image: Bpi-tools.png]]
 
  
 
===RPi.GPIO===
 
===RPi.GPIO===
 
====Install RPi.GPIO====
 
====Install RPi.GPIO====
 
* Execute "git clone https://github.com/BPI-SINOVOIP/RPi.GPIO"
 
* Execute "git clone https://github.com/BPI-SINOVOIP/RPi.GPIO"
* after clone the repo, cd RPi.GPIO
+
* after clone the repo, cd RPi,GPIO
 
* Execute "sudo apt-get update"
 
* Execute "sudo apt-get update"
 
* Execute "sudo apt-get install python-dev python3-dev"
 
* Execute "sudo apt-get install python-dev python3-dev"
Line 187: Line 102:
 
[[Image: RPi_GPIO.png]]
 
[[Image: RPi_GPIO.png]]
  
===WiringPi===
+
 
 +
===WringPi===
 
* 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====
 
* Execute "/usr/local/bin/bpi_test_lcd1602.sh"
 
* Execute "/usr/local/bin/bpi_test_lcd1602.sh"
[[Image: WringPi_1602_LCD.png]]
 
 
====0.96 Inch OLED Display====
 
* Execute "/usr/local/bin/bpi_test_52pi.sh"
 
[[Image: WringPi_0.96_OLED.png]]
 
  
 
====8x8 RGB LED Martix====
 
====8x8 RGB LED Martix====
Line 211: Line 115:
  
 
* Execute "/usr/local/bin/bpi_test_gpio40.sh"
 
* Execute "/usr/local/bin/bpi_test_gpio40.sh"
[[Image: WringPi_LED_Martix.png]]
 
  
==FAQ==
+
===File System===
 +
* read only system change to read & write mode: "mount -o remount,rw /"
 +
 
 +
===Install QT===
 +
* sudo apt-get install build-essential
 +
* sudo apt-get install libgl1-mesa-dev
 +
* sudo apt-get install libglu1-mesa-dev
 +
* sudo apt-get install freeglut3-dev
 +
* sudo apt-get install cmake
 +
* sudo apt-get install qt5-default qtcreator
 +
 
 +
===A20 CAN Bus===
 +
 
 +
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.
 +
 
 +
There is a more detailed document about CAN on the A20 at: https://dl.linux-sunxi.org/A20/CAN%20Bus1.pdf
 +
 
 +
This is a tutorial for using CAN BUS on bananapi with bananian 15-01
 +
 
 +
Thank selqcir share this example:
 +
 
 +
*Download and install "bananian-1501.img" into 8 GB SDCard.
 +
*Expand the root file system using "bananian-config"
 +
*Install missing package:
 +
apt-get install git
 +
apt-get update
 +
apt-get upgrade
 +
reboot
 +
*Get last bananian available, and continu to install missing package:
 +
git clone https://github.com/Bananian/linux-bananapi
 +
apt-get install build-essential u-boot-tools uboot-mkimage
 +
apt-get install libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev
 +
apt-get install subversion
 +
*Build kernel:
 +
cd linux-bananapi
 +
make menuconfig
 +
*Exit without saving when menu appears
 +
zcat /proc/config.gz > /root/linux-bananapi/.config
 +
make uImage modules
 +
make INSTALL_MOD_PATH=output modules_install
 +
*At this step, kernel should be compiled and "Module.symvers" should be available
 +
*Then rename modules and firmware provide by Bananian, and replace by the new one.
 +
mv /lib/modules /lib/modules.old
 +
mv /lib/firmware /lib/firmware.old
 +
mv /root/linux-bananapi/output/lib/modules /lib/modules
 +
mv /root/linux-bananapi/output/lib/firmware /lib/firmware
 +
*Same for uImage:
 +
mount /dev/mmcblk0p1 /mnt
 +
cd /mnt
 +
mv uImage uImage.old
 +
mv /root/linux-bananapi/arch/arm/boot/uImage /mnt
 +
reboot
 +
*Create link for further build:
 +
cd /lib/modules/3.4.104/
 +
ln -s /root/linux-bananapi build
 +
cd ~
 +
*Get Can4Linux and build it:
 +
svn checkout https://svn.code.sf.net/p/can4linux/code/trunk can4linux-code
 +
cd /root/can4linux-code/can4linux/
 +
make TARGET=BANANAPI
 +
*Install module for each startup of the board:
 +
insmod can4linux.ko
 +
cp can4linux.ko /lib/modules/3.4.104/kernel/net/can/
 +
depmod -A -v
 +
modprobe -v can4linux
 +
echo "" >> /etc/modules ; echo "can4linux" >> /etc/modules
 +
reboot
 +
*Build CAN example
 +
apt-get install swig
 +
apt-get install python-dev
 +
cd can4linux-code/can4linux-examples/
 +
*Update CAN speed and device in file "pyCan-example.py"
 +
# setting the device number
 +
device = 0
 +
defaultBaudrate = '250'
 +
*Connect CAN transceiver and CAN bus, and check with for example:
 +
  python pyCan-example.py
  
=Reference Link=
+
That's all
  
http://www.banana-pi.org/m2plus.html
+
With this method, kernel version is "Linux bananapi 3.4.104" instead of "Linux bananapi 3.4.104+", because i was unable to find same sources than Bananian 15-01 , but CAN bus work !
  
http://forum.banana-pi.org/
+
==FAQ==

Revision as of 02:25, 11 October 2018

Introduction

BPI-M1P

Overview: BPI-M1P ubuntu linux
  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.
  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. 

Key Features

  • Dual-core 1.0GHz CPU
  • 1 GB DDR3 memeory
  • Mali-400 MP2 with Open GL ES 2.0/1.1
  • WiFi onbaord

Development

Let's get start to develop on BPI-M1P, 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 M1P

Load your first image on M1P

 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 M1P, and press power button setup M1P

Advanced Development

SATA

1. Mount SATA on M1P

  • After insert sata interface, execute "fdisk -l"
  • Then "mount /dev/sdx /mnt/xxx"
 M1P 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

Touch screen

GMAC

Use iperf3 to test gmac

1. On PC Terminal:

  • Execute "iperf3 -s"

2. On M1P console:

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

M1P Gmac test.png

WiFi on M1P

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 -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
  • dhclient wlan0

2. Use UI interface to setup WiFi Client

Clear boot

IR function

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

M1P IR.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


WringPi

RGB 1602 LCD

  • Execute "/usr/local/bin/bpi_test_lcd1602.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 /"

Install QT

  • sudo apt-get install build-essential
  • sudo apt-get install libgl1-mesa-dev
  • sudo apt-get install libglu1-mesa-dev
  • sudo apt-get install freeglut3-dev
  • sudo apt-get install cmake
  • sudo apt-get install qt5-default qtcreator

A20 CAN Bus

In order to port 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.

There is a more detailed document about CAN on the A20 at: https://dl.linux-sunxi.org/A20/CAN%20Bus1.pdf

This is a tutorial for using CAN BUS on bananapi with bananian 15-01

Thank selqcir share this example:

  • Download and install "bananian-1501.img" into 8 GB SDCard.
  • Expand the root file system using "bananian-config"
  • Install missing package:
apt-get install git
apt-get update
apt-get upgrade
reboot
  • Get last bananian available, and continu to install missing package:
git clone https://github.com/Bananian/linux-bananapi
apt-get install build-essential u-boot-tools uboot-mkimage 
apt-get install libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev
apt-get install subversion
  • Build kernel:
cd linux-bananapi
make menuconfig
  • Exit without saving when menu appears
zcat /proc/config.gz > /root/linux-bananapi/.config
make uImage modules
make INSTALL_MOD_PATH=output modules_install
  • At this step, kernel should be compiled and "Module.symvers" should be available
  • Then rename modules and firmware provide by Bananian, and replace by the new one.
mv /lib/modules /lib/modules.old
mv /lib/firmware /lib/firmware.old
mv /root/linux-bananapi/output/lib/modules /lib/modules
mv /root/linux-bananapi/output/lib/firmware /lib/firmware
  • Same for uImage:
mount /dev/mmcblk0p1 /mnt
cd /mnt
mv uImage uImage.old
mv /root/linux-bananapi/arch/arm/boot/uImage /mnt
reboot
  • Create link for further build:
cd /lib/modules/3.4.104/
ln -s /root/linux-bananapi build
cd ~
  • Get Can4Linux and build it:
svn checkout https://svn.code.sf.net/p/can4linux/code/trunk can4linux-code
cd /root/can4linux-code/can4linux/
make TARGET=BANANAPI
  • Install module for each startup of the board:
insmod can4linux.ko
cp can4linux.ko /lib/modules/3.4.104/kernel/net/can/
depmod -A -v
modprobe -v can4linux
echo "" >> /etc/modules ; echo "can4linux" >> /etc/modules
reboot
  • Build CAN example
apt-get install swig
apt-get install python-dev
cd can4linux-code/can4linux-examples/
  • Update CAN speed and device in file "pyCan-example.py"
# setting the device number
device = 0
defaultBaudrate = '250'
  • Connect CAN transceiver and CAN bus, and check with for example:
  python pyCan-example.py

That's all

With this method, kernel version is "Linux bananapi 3.4.104" instead of "Linux bananapi 3.4.104+", because i was unable to find same sources than Bananian 15-01 , but CAN bus work !

FAQ