Difference between revisions of "Banana Pi"

From Organic Design wiki
m
m
Line 3: Line 3:
 
The Banana Pi boards are inspired by the [[Raspberry Pi]] project, and some of the models have an equivalent Raspberry version which is hardware compatible and exactly the same size so that they can work as drop-in replacements for projects that are designed around Raspberry Pi boards. The Banana Pi boards are more powerful than the Raspberry boards, and have more features, for example many Banana Pis such as the [http://wiki.banana-pi.org/Banana_Pi_BPI-M1%2B Banana Pi M1+] come with a SATA port. This means they can run off a proper hard drive rather than an SD card which has been the cause of a lot of reliability trouble with these single-board computers.
 
The Banana Pi boards are inspired by the [[Raspberry Pi]] project, and some of the models have an equivalent Raspberry version which is hardware compatible and exactly the same size so that they can work as drop-in replacements for projects that are designed around Raspberry Pi boards. The Banana Pi boards are more powerful than the Raspberry boards, and have more features, for example many Banana Pis such as the [http://wiki.banana-pi.org/Banana_Pi_BPI-M1%2B Banana Pi M1+] come with a SATA port. This means they can run off a proper hard drive rather than an SD card which has been the cause of a lot of reliability trouble with these single-board computers.
  
Note that the concept of a "drop-in" replacement only goes so far in the world of single-board computers, because OS images need to be built specifically for each board. The [[Debian]]-based [https://armbian.com Armbian] project is very good for this because it's been designed to be able to quickly support new boards and OS releases as they come out, and it has a great tool for post-installation setup called the [https://docs.armbian.com/User-Guide_Armbian-Config/ Armbian config utility]. They currently support about fifty different boards including the whole Banana Pi series.
+
Note that the concept of a "drop-in" replacement only goes so far in the world of single-board computers, because OS images need to be built specifically for each board. The [[Debian]]-based [https://armbian.com Armbian] project is very good for this because it's been designed to be able to quickly support new boards and OS releases as they come out, and it has a great tool for post-installation setup called the [https://docs.armbian.com/User-Guide_Armbian-Config/ Armbian config utility]. They currently support over 300 different boards including the whole Banana Pi series!
  
 
== Banana Pi M1+ board layout ==
 
== Banana Pi M1+ board layout ==

Revision as of 14:00, 19 September 2019

Banana Pi is an open source hardware project lead by GuangDong BiPai technology co., LTD. It focuses on the open source hardware development board of ARM and MCU series, provides open software and hardware platform, and creates the basic technology development platform. Full series open source hardware products, complete integration of voice, data, video system platform. Developers can flexibly build various application platforms on the open source hardware foundation platform. It can be applied in the Internet of things, AI artificial intelligence, industrial Internet control, STEAM education and other aspects.

The Banana Pi boards are inspired by the Raspberry Pi project, and some of the models have an equivalent Raspberry version which is hardware compatible and exactly the same size so that they can work as drop-in replacements for projects that are designed around Raspberry Pi boards. The Banana Pi boards are more powerful than the Raspberry boards, and have more features, for example many Banana Pis such as the Banana Pi M1+ come with a SATA port. This means they can run off a proper hard drive rather than an SD card which has been the cause of a lot of reliability trouble with these single-board computers.

Note that the concept of a "drop-in" replacement only goes so far in the world of single-board computers, because OS images need to be built specifically for each board. The Debian-based Armbian project is very good for this because it's been designed to be able to quickly support new boards and OS releases as they come out, and it has a great tool for post-installation setup called the Armbian config utility. They currently support over 300 different boards including the whole Banana Pi series!

Banana Pi M1+ board layout

Banana PI M1+.jpg
Close-up of the wifi chip and it's U.FL antenna connector - click image to zoom

Armbian and headless installation

Armbian is a great source of up to date OS images with versions available for the Banana Pi series. But one problem with the default minimal server images is that they are not truly headless, you need to set a root password on the first run before SSH logins will work. This is a big problem for us because we don't have keyboards and monitors lying around - occasionally we have TV available, but definitely not a keyboard since we only use laptops, phones and tablets. This is constantly being raised with the developers but they won't budge on it because their perspective is that providing a fully headless version would lead to their OS being used in malicious bot-nets.

However, we do have access to the full OS file-structure, so we can use qemu and chroot to open a shell inside the SD card OS and then set the root password before putting the card into the Pi (see this Debian wiki page and final comments in this Armbian forum post for more detail).

Here's how we can do it where XX is the path to your mounted SD card or Armbian image file. You could also do any other basic setup you may wish to do here such as create a non-root user, change over to key-based logins, set up your networking details such as wifi access (in /boot/armbian_first_run.txt based on /boot/armbian_first_run.txt.template) etc.

apt install qemu-user-static
cp /usr/bin/qemu-arm-static XX/usr/bin
chroot XX
passwd root

Important: If you have an M1+ you need to add fdtfile=sun7i-a20-bananapi-m1-plus.dtb to your /boot/armbianEnv.txt file otherwise it will be recognised as just an M1 with no wifi!

You can then power up with the card scan for you device on the subnet as usual and ssh into it with the updated details you provided.

nmap -sP 192.168.0.0/24

When you ssh into the IP you'll be asked to create an initial non-root user.

Now it's a good idea to run through the awesome Armbian config utility to configure everything the way you want it. You can even choose to configure your wlan interface as a hotspot from here!

armbian-config

Getting wifi to work on the M1+

Armbian for some reason thinks that the M1+ is an M1 which you can see with the following command. This means that the system does not register any evidence of a wifi chip and there will be no wlan0 interface in ifconfig and nothing will show in iwconfig.

# cat /proc/device-tree/model
LeMaker Banana Pi

If you get this result, then edit /boot/armbianEnv.txt and add the following line to the end of the file:

fdtfile=sun7i-a20-bananapi-m1-plus.dtb

After rebooting, you should now see the following result from the command instead and you should now have a wlan0 network interface.

# cat /proc/device-tree/model
Banana Pi BPI-M1-Plus

Useful commands

Monitor the power voltage:

while true ; do echo "$(awk '{printf ("%0.2f",$1/1000000); }' </sys/power/axp_pmu/ac/voltage)V"; sleep 1; done

Banana Pi resources

See also