Buildroot:TechShowcase2015 Demo

This page documents the Buildroot demo that was presented during the technical show case at the Embedded Linux Conference 2015 in San Jose.

There are two sides to the demo:


 * 1) A NAS serving media files via various means: DLNA, NFS
 * 2) A media player running Kodi 14.1 Helix, playing media files served by the NAS

Both systems were built using Buildroot, go get it there:

git clone  cd buildroot git checkout 

NAS
The NAS is an OpenBlocks AX3:


 * Dual-core Marvel Armada XP Cortex A9 @1.33GHz
 * 1GiB DDR3 RAM, 128MiB NOR Flash
 * Giga-bit ethernet
 * SATA II

The software stack running on the NAS is mainly composed of:


 * Linux kernel 3.18.7, plus backported patches to improve Armada XP support
 * Avahi 0.6.31
 * MiniDLNA 1.1.4
 * Dropbear 2015.67

Build the NAS firmware:

mkdir -p output/NAS make O=output/NAS  make O=output/NAS

The result is available in output/NAS/images/, with the following two files being the important ones:


 * , which is the kernel image. It contains an appended Device Tree Blob, because the AX3 bootloader doesn't support Device Tree booting.
 * , which is the root filesystem image, in the UBI format.

We will flash both on the NOR flash. We could have stored the system in the SATA hard disk, but we preferred to keep it only for the NAS data, and have the system stored separately.

You can flash the resulting system to the AX3 using the following U-Boot commands, assuming you have a working TFTP server:

erase 0xf8800000 +0x800000; tftp 0x2000000 uImage; cp.b 0x2000000 0xf8800000 ${filesize} erase 0xf9000000 +0x2000000; tftp 0x2000000 rootfs.ubi; cp.b 0x2000000 0xf9000000 ${filesize}

Then, to boot the system, set the following environment variables:

setenv bootargs console=ttyS0,115200 mtdparts=f0000000.nor:8M@8M(kernel),32M(rootfs) ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs setenv bootcmd cp.b 0xf8800000 0x2000000 0x800000; bootm 0x2000000

The system will automatically mount the /dev/sda1 partition in /data, assuming it is used for the NAS storage. Notice that the system is basic, and does not attempt to create or format this partition: it assumes it already exists.

Media player
The media player is a Raspeberry Pi 2:


 * Quad-core Broadcom BCM2836 Cortex A7 @900MHz
 * 1GiB RAM
 * 100Mb ethernet
 * µSD

The software stack running on the media player is mainly composed of:


 * Linux kernel 3.19.0 (plus RPi patches)
 * Kodi 14.1 Helix
 * Kodi PVR and audio-encoder add-ons
 * samba 3.6.25
 * Avahi 0.6.31
 * ConnMan 1.27
 * Dropbear 2015.67
 * eudev 2.1.1
 * tzdata 2015a

Build the Media player firmware:

mkdir -p output/mediaplayer make O=output/mediaplayer  make O=output/mediaplayer

The result is available in output/mediaplayer/images/. You can flash it with:

