Bootstrap in less than 5 sec using BuildRoot on Arietta G25

(updated to Buildroot 2015.05 and Linux Kernel 4.0.4)

BuildRoot is a set of makefiles and patches that makes it easy to generate a complete Embedded Linux System. It can generate any or all of a cross-compilation toolchain, a root filesystem, a kernel image and a bootloader image.

This article explains how to build a very light Linux installation using BuildRoot that:

  • Takes less than 14 MByte of microSD space
  • Boots in less than 5 seconds (to have the login: on the debug port)

The configuration is minimal. Arietta will be visible as an USB lan adapter with the ssh server on 192.168.10.10 as usual.

This video shown how fast is the boot time:

Quick test

If you just want to try, use the binaries at the end of this article to create a bootable microSD.

Building BuildRoot from sources

This procedure has been tested on Ubuntu Linux versions 14.10 and 15.04.

These package are requested using a standard Ubuntu Linux for Desktop:

  • git (sudo apt-get install git) used to clone our git repository on your PC
  • liblz4-tool (sudo apt-get install liblz4-tool) used to improve the Linux zImage boot speed
  • libncurses5-dev (sudo apt-get install libncurses5-dev)

If you're running an Ubuntu distribution at 64 bit, install the libc6-i386 (sudo apt-get install libc6-i386)

Clone this Git repository from GitHub. It contains a patched version of BuidRoot 2015.05 for the Acme SoM.

~$ git clone git://github.com/tanzilli/buildroot-2015.05.acme

Move inside the BuildRoot directory:

~$ cd buildroot-2015.05.acme
~/buildroot-2015.05.acme$ 

select the Arietta G25 minimal configuration:

~/buildroot-2015.05.acme$ make acme-arietta_defconfig

If you want to add or change something of the basic BuildRoot configuratione type:

~/buildroot-2015.05.acme$ make menuconfig

And browse the configuration menu to add packages.

Save your configuratione and start with the BuildRoot compilation. This operation will take more than 1 hour.

~/buildroot-2015.05.acme$ make
...

If all has gone well you will find these three files in images directory:

  • boot.bin the at91bootstrap loader
  • zImage the Linux Kernel image
  • acme-arietta.dtb the Arietta G25 blob file
  • rootfs.tar The root file system contents
tanzilli@ubuntu:~/buildroot-2015.05.acme$ ls -al output/images
total 13300
drwxrwxr-x 2 tanzilli tanzilli     4096 Jun  3 08:36 .
drwxrwxr-x 6 tanzilli tanzilli     4096 Jun  3 08:15 ..
-rw-rw-r-- 1 tanzilli tanzilli    24311 Jun  3 08:36 acme-arietta.dtb
-rwxrwxr-x 1 tanzilli tanzilli    14529 Jun  3 08:26 boot.bin
-rw-rw-r-- 1 tanzilli tanzilli 10649600 Jun  3 08:36 rootfs.tar
-rwxrwxr-x 1 tanzilli tanzilli  2917960 Jun  3 08:36 zImage

Insert a formatted microSD card and copy these files on it:

~/buildroot-2015.05.acme$ cp output/images/boot.bin /media/$USER/kernel
~/buildroot-2015.05.acme$ cp output/images/acme-arietta.dtb /media/$USER/kernel
~/buildroot-2015.05.acme$ cp output/images/zImage /media/$USER/kernel
~/buildroot-2015.05.acme$ sudo tar xvf output/images/rootfs.tar -C /media/$USER/rootfs

At the first boot Arietta will be very slow (about 2 minutes) to calculate the openssh keys. At the next boots it will need less than 5 secs.

Linux Kernel configuration

If you need to configure the Linux Kernel (drivers, modules, protocols, etc) type:

~/buildroot-2015.05.acme$ make linux-menuconfig

Add the WiFi

To add the wifi access to this minimal configuration use:

~/buildroot-2015.05.acme$ make acme-arietta-wifi_defconfig

instead of make acme-arietta_defconfig then create the image and changing the file /etc/wpa_supplicant.conf inside
board/acmesystems/arietta-wifi/rootfs_overlay/etc.

Related links



ARIETTA-G25
EUR 25.00


ARM9 Linux Embedded Module (128MB)

Arietta G25 is a small and low-cost multi-chip module that integrates:

  • a ARM9 @ 400Mhz CPU Atmel AT91SAM9G25
  • a 128MB of DDR2 RAM
  • up to 3 USB 2.0 host ports
  • 20x2 pads for strip pitch 2.54mm (100mil)

Basic Version with no strips mounted. If you need to have any strip mounted take a look to the Welding services

| Product description |

ARIETTA-G25-256
EUR 30.00


ARM9 Linux Embedded Module (256MB)

Arietta G25 is a small and low-cost multi-chip module that integrates:

  • a ARM9 @ 400Mhz CPU Atmel AT91SAM9G25
  • a 256MB of DDR2 RAM
  • up to 3 USB 2.0 host ports
  • 20x2 pads for strip pitch 2.54mm (100mil)

Basic Version with no strips mounted. If you need to have any strip mounted take a look to the Welding services

| Product description |

WIFI-2
EUR 7.00


WiFi USB module

OEM Small USB 2.0 IEEE 802.11 b/g/n Wi-Fi compliant module based on the RaLink RT5370N chip. It works at 3.3V and can be configured also in Access Point mode.

This model requires an external antenna model AN-WIFI-01 or AN-WIFI-02.

| Product description |

AN-WIFI-01
EUR 3.50


WiFi pcb external antenna

WiFi PCB antenna with 11 cm cable and UMC 2mm connector to be plugged on WIFI-2 module.

| Antenna datasheet |