Create a Mini PC or Server with Olimex's Olinuxino A13/A13Micro

Olimex is a Bulgarian company known for its innovative hobbyist products. It has a wide array of microcontroller-based products, ranging from the small Arduino clones to the very able system that has the Allwinner A13 microcontroller as its brain. In this article, I describe how you can create a working Linux system for the Olinuxino A13 and Olinuxino A13Micro from scratch.

Let's begin by obtaining and compiling the kernel, creating the U-Boot system, preparing the root filesystem and getting the necessary packages to create a comfortable minimal computing environment. At the end of this article, I also explain how to install a compact desktop environment.

I am using Ubuntu 12.04 (Precise Pangolin) for my build system. Any Debian-based system users should be able to follow the instructions in this article with relative ease. Before you begin, you should create a directory under your home directory to contain all your work. I am going to call mine "A13System".

What Are Arm and eabihf?

As you progress further into the article, you will encounter the terms Arm and eabihf more than once. Let me clarify those terms in order to avoid confusion with other terms that you might encounter if you decide to go further into the world of cross-compilation.

Arm is a general name for a family of microcontroller architectures designed by ARM Holdings, a British company. You can find Arm microcontrollers inside most portable modern gadgets, ranging from mobile phones, Nintendo DS portable game consoles to Apple iPhone and Apple TV. ARM Holdings does not manufacture these microcontrollers; rather, it licenses the designs to other companies. These companies then add their own "secret recipes" into the designs and then manufacture and sell the finished microcontrollers. This is why there are so many variants of Arm architecture and so many companies that produce Arm microcontrollers.

EABI stands for Embedded Application Binary Interface. It specifies the low-level conventions for embedded software application. When it comes to Arm microcontrollers, they come in many sizes, ranging from very small to large. The smaller variants don't have the necessary memory or power to process floating-point computation on the hardware itself, thus making it necessary to do it by software. These variants are called Arm soft float. There are other variants that can process the floating-point calculation by hardware, like vector floating point (vfp). These two EABIs (soft float and vfp) are what is usually known as armel. A newer EABI that targets the higher end of Arm microcontrollers with more efficient floating-point instructions than vfp is called hard float, thus armhf.

Olimex's A13WiFI, A13 and A13Micro boards are powered by the Allwinner A13 Arm microcontroller, which are based on ARMv7 design. ARMv7, as with the newer ARMv8, fully supports armhf.


You can find all the necessary URLs for file downloads and other information in the Resources section of this article. You need to install the following programs before you can commence the build process:

  • build-essential.

  • gcc-4.6-arm-linux-gnueabihf (the version might vary from one distro to another; the latest I came across at the time of this writing is version 4.7).

  • ncurses-dev.

  • uboot-mkimage.

  • git.

  • debootstrap.

  • debian-archive-keyring (if you decide later that you want to use Debian rootfs).

  • qemu-user-static.

Once you finish installing the prerequisites, you then need to create several softlinks in the same directory where gcc-4.6-arm-linux-gnueabihf is installed (in my case, it is located in /usr/bin). Use the which command to find the installation directory:

$ which arm-linux-gnueabi-gcc-4.6

Next, create softlinks for arm-linux-gnueabihf-gcc-4.6, arm-linux-gnueabihf-gcov-4.6 and arm-linux-gnueabihf-cpp-4.6:

$ sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-4.6 \
$ sudo ln -s \
 /usr/bin/arm-linux-gnueabihf-gcov-4.6 \
$ sudo ln -s /usr/bin/arm-linux-gnueabihf-cpp-4.6 \


Ronald Kurniawan is a software developer living in Brisbane, Australia. Ronald is interested in embedded systems, Linux, Java development and trying to come up with interesting and wacky ways to combine them.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

python world from tips,tricks,jobs info,opensource,linux

neo12's picture

good post,we can also find more in

تلغرام للاندرويد

برنامج تلغرام للاندرويد 's picture

The second biggest increase. nice thanks

The second biggest increase:

sollen's picture

The second biggest increase: Insurance costs, which rose 2.76%, or $28, to an annual 18W 12V Work lamps For Motorcycles average of $1,029. AAA’s insurance cost estimates are based on a low-risk driver with a clean driving record.

The second biggest increase:

sollen's picture

The second biggest increase: Insurance costs, which rose 2.76%, or $28, to an annual average of $1,029. AAA’s insurance cost 18W 12V Work lamps For Motorcycles estimates are based on a low-risk driver with a clean driving record.

Reply to comment | Linux Journal

Knights and Dragons hack herunterladen's picture

Hacks Iphone Ipad Jeux Triche Astuces sans jailbreak.Android Hacks Apk Triche sans root illimité Gemmes Pièces OR
Argent Gratuit Telecharger.

Reply to comment | Linux Journal

herrenschmuck wiederverkäufer's picture

I like the valuable info you supply on your articles. I'll bookmark your blog and take a look at again right here regularly.
I'm quite sure I will learn many new stuff proper right here!
Best of luck for the next!