Difference between revisions of "Getting Started with M1P"
JackZengWiki (talk | contribs) (→BPI-M1P) |
JackZengWiki (talk | contribs) (→Introduction) |
||
Line 13: | Line 13: | ||
* Mali-400 MP2 with Open GL ES 2.0/1.1 | * Mali-400 MP2 with Open GL ES 2.0/1.1 | ||
* WiFi onbaord | * 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 | ||
+ | |||
+ | ===Load your first image on M1P EMMC=== | ||
+ | * Run your M1P with TF card | ||
+ | * Copy "xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to your USB disk | ||
+ | * Plug your USB disk in M1P | ||
+ | * After M1P 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 M1P, take TF card out, power on M1P | ||
+ | |||
+ | ===How to buld M1P 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 | ||
+ | * After install Docker, execute "docker pull sinovoip/bpi-build:ubuntu12.04", to pull image | ||
+ | * Then you pulled image, execute "docker run --privileged -d -p 2222:22 -v /media:/media sinovoip/bpi-build:ubuntu12.04" | ||
+ | * "ssh -p 2222 [email protected] #default passwd is root" | ||
+ | * Execute "git clone https://github.com/BPI-SINOVOIP/BPI-M1P-bsp.git" on your ubuntu terminal | ||
+ | * Execute "./build.sh" to build M1P bsp code | ||
+ | * After built, open a new terminal, execute "docker cp xxxxx(your container id):xxxxx(your project path) xxxxx(your pc path)" | ||
+ | |||
+ | [[Image:docker_operate.png]] | ||
+ | |||
+ | ==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]] | ||
+ | |||
+ | 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 | ||
+ | [[Image:Sata_test.png]] | ||
+ | |||
+ | ===OTG=== | ||
+ | 1. On M1P console: | ||
+ | * Execute "./adbd.sh", then execute "ps -ax | grep adbd" to see if adbd is set up | ||
+ | [[Image:M2P_ADBD.png]] | ||
+ | |||
+ | 2. On PC terminal: | ||
+ | * If adbd was succeed to set up, insert OTG-USB interface to M1P and PC(with Ubuntu system) | ||
+ | * Execute "adb devices" to see if PC has recognised M1P OTG | ||
+ | * If yes, we could execute "adb shell" to connect M1P by adb now | ||
+ | [[Image:M2P_ADBD_Shell.png]] | ||
+ | |||
+ | ===LCD 5" & LCD 7"=== | ||
+ | * Execute "bpi-bootsel", you'll see a list of boot files | ||
+ | * Find "BPI_M1P_LCD7.img.gz" | ||
+ | * Then execute "bpi-bootsel /usr/lib/u-boot/bananapi/bpi-M1P/BPI_M1P_LCD7.img.gz" | ||
+ | [[Image:M1P_bootsel_lcd7.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" | ||
+ | [[Image:M1P_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: | ||
+ | |||
+ | [[Image:M1P_bluetooth.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 -B -dd -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf | ||
+ | * dhclient wlan0 | ||
+ | |||
+ | 2. Use UI interface to setup WiFi Client | ||
+ | |||
+ | ===Clear boot=== | ||
+ | * git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB | ||
+ | * bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX | ||
+ | |||
+ | ===Camara function=== | ||
+ | We use HDF5640(The left one) camara and HDF8865(The right one). | ||
+ | |||
+ | [[Image:ov5640_camara.png]] | ||
+ | [[Image: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 M1P | ||
+ | [[Image:M1P_IR.png]] | ||
+ | |||
+ | ===WringPi=== | ||
+ | * GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git | ||
+ | * We also have built-in test command in "/usr/local/bin" | ||
+ | |||
+ | ====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 | ||
+ | [[Image: 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== |
Revision as of 02:53, 28 May 2018
Contents
Introduction
BPI-M1P
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.
- Read more about : Banana Pi BPI-M1+
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
Load your first image on M1P EMMC
* Run your M1P with TF card * Copy "xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to your USB disk * Plug your USB disk in M1P * After M1P 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 M1P, take TF card out, power on M1P
How to buld M1P 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 * After install Docker, execute "docker pull sinovoip/bpi-build:ubuntu12.04", to pull image * Then you pulled image, execute "docker run --privileged -d -p 2222:22 -v /media:/media sinovoip/bpi-build:ubuntu12.04" * "ssh -p 2222 [email protected] #default passwd is root" * Execute "git clone https://github.com/BPI-SINOVOIP/BPI-M1P-bsp.git" on your ubuntu terminal * Execute "./build.sh" to build M1P bsp code * After built, open a new terminal, execute "docker cp xxxxx(your container id):xxxxx(your project path) xxxxx(your pc path)"
Advanced Development
SATA
1. Mount SATA on M1P
- After insert sata interface, execute "fdisk -l"
- Then "mount /dev/sdx /mnt/xxx"
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
OTG
1. On M1P 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 M1P and PC(with Ubuntu system)
- Execute "adb devices" to see if PC has recognised M1P OTG
- If yes, we could execute "adb shell" to connect M1P by adb now
LCD 5" & LCD 7"
- Execute "bpi-bootsel", you'll see a list of boot files
- Find "BPI_M1P_LCD7.img.gz"
- Then execute "bpi-bootsel /usr/lib/u-boot/bananapi/bpi-M1P/BPI_M1P_LCD7.img.gz"
File:M1P bootsel lcd7.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"
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:
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 -B -dd -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
- dhclient wlan0
2. Use UI interface to setup WiFi Client
Clear boot
- git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB
- bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX
Camara function
We use HDF5640(The left one) camara and HDF8865(The right one).
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 M1P
WringPi
- GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git
- We also have built-in test command in "/usr/local/bin"
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
- Execute "/usr/local/bin/bpi_test_gpio40.sh"
File System
- read only system change to read & write mode: "mount -o remount,rw /"