This tutorial assumes you have already built and deployed Android 6.0.1 for the Wandboard on an SD-card, according to our preceeding blog post in this series. For quick reference, we are using the Android source 6.0.1 for the Wandboard from the official website. The source code is assumed to be extracted to /opt/android/wand, and our host system is Ubuntu 16.04.
Android system development on an SD-card can be quite cumbersome. Even though there is the possibility of pushing and pulling files via Android Debug Bridge (ADB) between the target device and the host computer, more often than not, you still need to replace the contents of the SD-card manually. In the following, we will show you how you can boot the Linux kernel via TFTP and the Android operating system over NFS.
Continue reading “Android 6 Marshmallow over Network File System (NFS) on the Wandboard”
While our guide of how to build deploy vanilla AOSP on the Wandboard has helped many to understand more about the Android and Linux build tools, it is often required for applications to have hardware graphics acceleration.
Continue reading “Building and Deploying Android AOSP 6.01 for the Wandboard”
In this post we are going to get an overview of unit testing in Android with a few practical examples. Unfortunately, testing in Android has some pitfalls, which we will try to uncover in this tutorial. A lot of the confusion stems from the fact that Android testing has undergone major development changes in the recent past, and therefore there are various – and sometimes – conflicting resources online, which may be depreciated in the mean time. Before we delve deeper, let’s create a new Android project. We are using preview version 4 of Android Studio 2.0, which can be downloaded from here.
Start by creating a new project “Say Hello” with a Blank Activity.
Continue reading “Updated guide to Android Unit Testing”
In this post we are going to build and deploy Android Kitkat for the Wandboard Quad. The instructions are mostly identical for the Wandboard Dual, although you will need a different u-boot bootloader configuration, and a different dtb file. With the current Android 4.4.4 build we are able to use ethernet, wifi in client and AP mode, as well as ALSA sound. Bluetooth and hardware accelerated graphics is not yet accomplished.
- Host Build System: Ubuntu 13.10 (64 Bit)
It is important to use a 64 Bit version, otherwise, it is not possible to build Android.
- Hardware: Wandboard Quad revision B1
- Kernel version: 3.16 rc5
We will use the latest kernel provided by Robert Nelson
- Bootloader: u-boot bootloader by Denx
We will also download and patch as per instructions provided by Robert Nelson.
- Android version: 4.4.4_r1 AOSP
- An USB to serial converter for communicating with the Wandboard
Unless your computer has a serial port of course.
- A microSD card
We recommend at least class 10, it really makes a big difference. A size of 2GB should be enough.
For this tutorial, we will have 3 main source code repositories, namely Android, u-boot and Linux kernel sources. It is assumed that we download the Android source code, and place the u-boot and Kernel sources in their respective sub-folders “u-boot” and “armv7-multiplatform” inside the Android source‘s root. While the exact location does not matter, we will use /opt/android as an example here. Since we are going to use a cross-compiler from Android for building the bootloader, it makes sense to first download all the source code repositories before starting with this tutorial.
Continue reading “Building and Deploying Vanilla/AOSP Android 4.4.4 for the Wandboard”
Following up on the last post “How to get started with Embedded Android on the Wandboard”, this article shows how to use the GPIO Pins of the Wandboard. It is based on the Android setup, however the generic part should run under other Linux based systems as well.
Finding the right GPIO Pin Number
In the userspace you are able to access GPIO functionality through the sysclass interface.
root@android:/ # ll /sys/class/gpio/
--w------- root root 4096 2013-06-20 10:57 export
lrwxrwxrwx root root 2013-06-20 10:57 gpio101 -> ../../devices/virtual/gpio/gpio101
lrwxrwxrwx root root 2013-06-20 10:57 gpio200 -> ../../devices/virtual/gpio/gpio200
lrwxrwxrwx root root 2013-06-20 10:57 gpio24 -> ../../devices/virtual/gpio/gpio24
lrwxrwxrwx root root 2013-06-20 10:57 gpio72 -> ../../devices/virtual/gpio/gpio72
lrwxrwxrwx root root 2013-06-20 10:57 gpio75 -> ../../devices/virtual/gpio/gpio75
lrwxrwxrwx root root 2013-06-20 10:57 gpio90 -> ../../devices/virtual/gpio/gpio90
lrwxrwxrwx root root 2013-06-20 10:57 gpio91 -> ../../devices/virtual/gpio/gpio91
lrwxrwxrwx root root 2013-06-20 10:57 gpiochip0 -> ../../devices/virtual/gpio/gpiochip0
lrwxrwxrwx root root 2013-06-20 10:57 gpiochip128 -> ../../devices/virtual/gpio/gpiochip128
lrwxrwxrwx root root 2013-06-20 10:57 gpiochip160 -> ../../devices/virtual/gpio/gpiochip160
lrwxrwxrwx root root 2013-06-20 10:57 gpiochip192 -> ../../devices/virtual/gpio/gpiochip192
lrwxrwxrwx root root 2013-06-20 10:57 gpiochip32 -> ../../devices/virtual/gpio/gpiochip32
lrwxrwxrwx root root 2013-06-20 10:57 gpiochip64 -> ../../devices/virtual/gpio/gpiochip64
lrwxrwxrwx root root 2013-06-20 10:57 gpiochip96 -> ../../devices/virtual/gpio/gpiochip96
--w------- root root 4096 2013-06-20 10:57 unexport
Continue reading “Working with GPIO on the Wandboard and Writing an Android Driver for GPIO Interrupts”