Difference between revisions of "Getting Started with M2M"
(→Enable uart0 for emmc only image debug) |
(→Development) |
||
Line 20: | Line 20: | ||
:2. Connect USB-Serial to 40 pin header uart2 for kernel console debug. | :2. Connect USB-Serial to 40 pin header uart2 for kernel console debug. | ||
− | :'''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 [enable uart0 for emmc image] section. | + | :'''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. |
[[Image:M2M__debug_console.png | 240px]] [[Image:M2M__pin_define.png | 240px]] | [[Image:M2M__debug_console.png | 240px]] [[Image:M2M__pin_define.png | 240px]] |
Revision as of 00:37, 24 March 2021
Contents
Introduction
BPI-M2M
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.
- Read more about : Banana Pi BPI-M2M
Key Features
- Quad Core ARM Cortex A7 CPU. R16
- 512MB DDR3 SDRAM
- WiFi (AP6212) & Bluetooth onboard
Development
Linux
Prepare
- 1. Prepare 8G/above TF card, USB-Serial interface.
- 2. Connect USB-Serial to 40 pin header uart2 for kernel console debug.
- 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 enable uart0 debug for emmc only image section.
- 3. Install bpi-tools on your Linux PC, If you can't access this URL or any other problems, please go to bpi-tools repo and download this tools manually.
$ apt-get install pv $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
- 4. Download latest linux image, and confirm that the md5 checksum is correct.
- 5. Defautl login: pi/bananapi or root/bananapi.
Install Image to SDcard
- 1. Install image with bpi-tools on Linux, plug your sd card to your Linux PC
$ sudo bpi-copy xxx-bpi-m2m-xxx.img.zip /dev/sdX
- 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.
$ sudo apt-get install pv $ sudo unzip -p xxx-bpi-m2m-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer
- 3. Install bpi image with Etcher on Windows, Linux and MacOS
- Balena Etcher is an open source project by Balena, Flash OS images to SD cards & USB drives
Install Image to EMMC
- 1. Prepare a SDcard with Linux image flashed and bootup the board with this SDcard.
- 2. Copy emmc image to udisk, plugin the udisk to board and mount it.
- 3. Install with bpi-tools command
$ sudo bpi-copy xxx-bpi-m2m-xxx.img.zip /dev/mmcblk1
- 4. Or Install with dd command, umount mmcblk1p1 and mmcblk1p2 partition if mounted automatically, Actually bpi-copy is the same as this dd command
$ sudo apt-get install pv $ sudo unzip -p xxxb-bpi-m2m-xxx.img.zip | pv | dd of=/dev/mmcblk1 bs=10M status=noxfer
- 5. After flash complete, power off safely and eject the sdcard.
Note: If the emmc was flashed android image before, you must erase the boot partition of android before step 3 or step 4.
root@bpi-iot-ros-ai:/# echo 0 > /sys/block/mmcblk1/mmcblk1boot0/force_ro root@bpi-iot-ros-ai:/# echo 0 > /sys/block/mmcblk1/mmcblk1boot1/force_ro root@bpi-iot-ros-ai:/# root@bpi-iot-ros-ai:/# dd if=/dev/zero of=/dev/mmcblk1boot0 bs=4096 count=1024 1024+0 records in 1024+0 records out 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.421164 s, 10.0 MB/s root@bpi-iot-ros-ai:/# dd if=/dev/zero of=/dev/mmcblk1boot1 bs=4096 count=1024 1024+0 records in 1024+0 records out 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.428427 s, 9.8 MB/s
Build Source Code
- 1. Get the bsp source code
$ git clone https://github.com/BPI-SINOVOIP/BPI-M2M-bsp
- 2. Build the bsp source code
- Please read the source code README.md
Advance Development
Enable uart0 for emmc only image debug
- 1. Enable uart0 node and disable sdc0 node in sunxi-pack/sun8iw5p1/configs/BPI-M2M-LCD7/sys_config.fex.
--- a/sunxi-pack/sun8iw5p1/configs/BPI-M2M-LCD7/sys_config.fex +++ b/sunxi-pack/sun8iw5p1/configs/BPI-M2M-LCD7/sys_config.fex @@ -262,7 +262,7 @@ twi_sda = port:PE13<3><default><default><default> ;uart_type = 2:2 wire,4:4 wire,8:8 wire, full function ;---------------------------------------------------------------------------------- [uart0] -uart_used = 0 +uart_used = 1 uart_port = 0 uart_type = 2 uart_tx = port:PF02<3><1><default><default> @@ -803,7 +803,7 @@ led3_active_low = 1 ; that supports SD3.0 cards and eMMC4.4+ flashes ;------------------------------------------------------------------------------- [mmc0_para] -sdc_used = 1 +sdc_used = 0 sdc_detmode = 3 sdc_buswidth = 4 sdc_d1 = port:PF00<2><1><2><default>
- 2. Build the bsp source code.
- 3. Copy the bootloader file SD/bpi-m2m/100MB/BPI-M2M-LCD7-8k.img.gz to udisk.
- 4. Bootup the m2m board from emmc, plugin the udisk and mount it.
- 5. Flash the bootloader to emmc
$ sudo bpi-bootsel BPI-M2M-LCD7-8k.img.gz /dev/mmcblk0
- or
$ sudo gunzip -c BPI-M2M-LCD7-8k.img.gz | dd of=/dev/mmcblk0 bs=1024 seek=8 $ sync $ sudo umount /dev/sda1
- 6. Mout boot partition and set kernel debug console in uEnv.txt
$ sudo mount -t vfat /dev/mmcblk0p1 /mnt
- Change "console=ttyS2,115200" to "console=ttyS0,115200" in /mnt/bananapi/bpi-m2m/linux/lcd7/uEnv.txt
$ sudo umount /dev/mmcblk0p1
- 7. Safely poweroff the board and connect debug uart to uart0 three pin header.
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 Client
You have two ways to setup WiFi Client
1. Use commands to setup WiFi client
$ sudo su # killall wpa_supplicant # wpa_passphrase <ssid> <passphrase> > /etc/wpa_supplicant/wpa_supplicant.conf # ifconfig wlan0 up # iwlist wlan0 scan # wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf # dhclient eth0
There are some other command line ways, please google for them.
2. Use UI interface to setup WiFi Client
StartX
- apt-get install xorg
- apt-get install xserver-xorg
- apt-get install xinit
https://askubuntu.com/questions/518454/what-does-startx-command-do
NAS Application
1. Usb hub + sata to usb
- HDD is supported
- SSD is supported
Camara function
We use HDF5640 camara.
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
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"
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
WiringPi
- GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git
- We also have built-in test command in "/usr/local/bin"
How to Update WiringPi
- Execute "bpi-update -c pkglist.conf"
- Execute "bpi-update -c bpi-pkg-bpi-wiringpi.conf"
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"