Generate the SDK(toolchain) using YOCTO

Objective:

This guide describes a method of generating the software development kit(Toolchain) using yocto for rugged board a5d2x and install it.

Materials:

Hardware:

  • PC(Personal computer)/System​

Software:

  • Ubuntu 16.04

Procedure:

Step1: To generate the SDK,need to compile the yocto in your pc using below link:

Step2: After completion of step7 from above link. go to build folder in yocto and follow below command to generate the SDK.

$ bitbake -c populate_sdk rb-sd-core-image-minimal

Step3: It will take much time to complete(depends on your PC performance and speed) and go to below path to get the SDK script with the name "poky-tiny-musl-x86_64-rb-sd-core-image-minimal-cortexa5hf-neon-toolchain-2.5.2.sh".

$ cd tmp/deploy/sdk/

Step4: Give the permissions to the toolchain script file as below and install it.

$ chmod 777 poky-tiny-musl-x86_64-rb-sd-core-image-minimal-cortexa5hf-neon-toolchain-2.5.2.sh
$ sh poky-tiny-musl-x86_64-rb-sd-core-image-minimal-cortexa5hf-neon-toolchain-2.5.2.sh
Poky (Yocto Project Reference Distro) SDK installer version 2.5.2
=================================================================
Enter target directory for SDK (default: /opt/poky-tiny/2.5.2):
You are about to install the SDK to "/opt/poky-tiny/2.5.2". Proceed[Y/n]? y
Extracting SDK.......................................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
. /opt/poky-tiny/2.5.2/environment-setup-cortexa5hf-neon-poky-linux-musleabi

Step5: To cross compile any sample application(hello_world.c) or compile any source, please run the below command to get the arm environment.

$ . /opt/poky-tiny/2.5.2/environment-setup-cortexa5hf-neon-poky-linux-musleabi

Step6: Cross compiling the c application as below

$ $CC hello_world.c -o hello_world
$ file hello_world
hello_world: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-armhf.so.1, BuildID[sha1]=30b0fe2eaee04506f9728d874827bdbd35eb4ecd, not stripped