How to customize Linaro Linux system for DragonBoard 410c

As we mentioned in the previous blog, the DragonBoard 410c is compatible with the 96Boards Consumer Edition (CE) specification. Let's take a look at the 96Boards specification.

The 96Boards is the ARM Open Platform Specification and the first open specification to define the Cortex-A development board, which is maintained by the Linaro Community Council. Standardized extended Peripheral I/O bus, display and camera. Target mobile, embedded and digital homes. Allows the hardware ecosystem to develop a range of compatible component products that can be used on any 96Board-compatible platform during their lifetime.

Based on Linaro's 96board specification, the DragonBoard 410c helps developers, manufacturers, universities and commercial manufacturers leverage the capabilities of the Opteron 410 processor, such as next-generation robots, medical devices, building automation, digital signage and gaming consoles.

The previous blog has introduced the customization method of the Android system. Today I will introduce how to customize the Linaro Linux system for the DragonBoard 410c.

Environmental preparation

1, cross-compilation environment preparation

The DragonBoard 410c is a 64-bit ARMv8 platform, so compiling ARM architecture code on a PC requires a cross-compilation environment. First download the Linaro GCC cross compiler, then extract the downloaded tarball to your own directory:


Tar xvf gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz

2, download the Linux Kernel source code

The code information for the Linux Kernel can be found through the Linaro Qualcomm Landing Team git repository.

Write a picture description here

According to the tags information, we can see that the latest Linux source code of DragonBoard 410c is version 15.09. Let's download the Linux source code.


Git clone -n ​​

Cd kernel

Git checkout -b kernel-15.09 ubuntu-qcom-dragonboard410c-15.09

Now that we have downloaded the Linux source code, you can modify the kernel code according to your needs.

3, compile the kernel

First, we first need to set the environment variable:

Export ARCH=arm64

Export CROSS_COMPILE=<path to your GCC cross compiler>/aarch64-linux-gnu-

In the first step we have already downloaded the cross compiler, so CROSS_COMPILE is set as follows:

Export CROSS_COMPILE=~/DragonBoard/toolchain/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

There is a build issue on version 15.09, so we need to fix it with cherry-pick:

Git cherry-pick -n e4df9dd88bb3b37d84db277e0f6a5d59cf5ac737

Now that everything is ready, let's start compiling the kernel:

Make defconfig distro.config

Make -j4 Image dtbs KERNELRELEASE=4.2.0-linaro-lt-qcom

4, compile boot image

The boot image is composed of three parts: device tree table mirror (dt.img), kernel image (Image), and init ramdisk image. The kernel image we have compiled above, let's take a look at where the other two parts are obtained.

First, we need to download and install the dt tool as well as the image generation tool.

Sudo apt-get install device-tree-compiler

Git clone git://

Then, compile the dt image:

./skales/dtbTool -o dt.img -s 2048 arch/arm64/boot/dts/qcom/

The init ramdisk image can be obtained by the following command:


Already ready, we can generate a boot image.

./skales/mkbooTImg –kernel arch/arm64/boot/Image \

–ramdisk initrd.img-4.2.0-linaro-lt-qcom \

–output boot-db410c.img \

–dt dt.img \

–pagesize 2048 \

–base 0x80000000 \

–cmdline “root=/dev/disk/by-partlabel/rootfs rw rootwait console=ttyMSM0,115200n8”

5, burning boot image

Before burning, we can test whether the boot image works properly.

Sudo fastboot boot boot-db410c.img

If it can start normally, then we can burn it with the fastboot command.

Sudo fastboot flash boot boot-db410c.img

Wall-mounted Energy Storage Lithium Battery

Enershare's commitment to future-ready energy solutions for smart home innovations, Enershare's Energy Storage Systems create a flexible energy maintenance system for homeowners who want to take more control of their home energy use, it is intended to be used for home battery energy storage and stores electricity for solar self-consumption, load shifting, backup power, and off-the-grid use. you can use it anytime you want-at night or during an outage.

Solar Battery Bank,Solar Energy Storage,Solar House Battery,Solar Battery Storage,Lithium Battery Off Grid,Solar Battery Backup 48v

Shenzhen Enershare Technology Co.,Ltd ,

This entry was posted in on