Getting Started with M1P - Banana Pi Wiki

Introduction

BPI-M1P

Overview: BPI-M1P ubuntu linux
1
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.
2
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.
Copied!

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

1
* Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System
2
* Using your USB-Serial Connect debug console on M1P
Copied!

Load your first image on M1P

1
1.You could download latest image from our forum
2
3
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.
4
* apt-get install pv
5
* curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
6
7
3.After you download the image, insert your TF card into your Ubuntu
8
* Execute "bpi-copy xxx.img /dev/sdx" to install image on your TF card.
9
10
4.After step 3, then you can insert your TF card into M1P, and press power button setup M1P
Copied!

Advanced Development

SATA

1. Mount SATA on M1P
  • After insert sata interface, execute "fdisk -l"
  • Then "mount /dev/sdx /mnt/xxx"
1
Copied!
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
1
Copied!

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"

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
1
network={
2
ssid="ssid"
3
psk="password"
4
priority=1
5
}
Copied!
  • wpa_supplicant -iwlan0 -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

RPi.GPIO

Install 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

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
  • 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:
1
apt-get install git
2
apt-get update
3
apt-get upgrade
4
reboot
Copied!
  • Get last bananian available, and continu to install missing package:
1
git clone https://github.com/Bananian/linux-bananapi
2
apt-get install build-essential u-boot-tools uboot-mkimage
3
apt-get install libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev
4
apt-get install subversion
Copied!
  • Build kernel:
1
cd linux-bananapi
2
make menuconfig
Copied!
  • Exit without saving when menu appears
1
zcat /proc/config.gz > /root/linux-bananapi/.config
2
make uImage modules
3
make INSTALL_MOD_PATH=output modules_install
Copied!
  • 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.
1
mv /lib/modules /lib/modules.old
2
mv /lib/firmware /lib/firmware.old
3
mv /root/linux-bananapi/output/lib/modules /lib/modules
4
mv /root/linux-bananapi/output/lib/firmware /lib/firmware
Copied!
  • Same for uImage:
1
mount /dev/mmcblk0p1 /mnt
2
cd /mnt
3
mv uImage uImage.old
4
mv /root/linux-bananapi/arch/arm/boot/uImage /mnt
5
reboot
Copied!
  • Create link for further build:
1
cd /lib/modules/3.4.104/
2
ln -s /root/linux-bananapi build
3
cd ~
Copied!
  • Get Can4Linux and build it:
1
svn checkout https://svn.code.sf.net/p/can4linux/code/trunk can4linux-code
2
cd /root/can4linux-code/can4linux/
3
make TARGET=BANANAPI
Copied!
  • Install module for each startup of the board:
1
insmod can4linux.ko
2
cp can4linux.ko /lib/modules/3.4.104/kernel/net/can/
3
depmod -A -v
4
modprobe -v can4linux
5
echo "" >> /etc/modules ; echo "can4linux" >> /etc/modules
6
reboot
Copied!
  • Build CAN example
1
apt-get install swig
2
apt-get install python-dev
3
cd can4linux-code/can4linux-examples/
Copied!
  • Update CAN speed and device in file "pyCan-example.py"
1
# setting the device number
2
device = 0
3
defaultBaudrate = '250'
Copied!
  • Connect CAN transceiver and CAN bus, and check with for example:
1
python pyCan-example.py
Copied!
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

Last modified 6mo ago