IMX Hello World

From Variscite Wiki
Hello, World!

1 Yocto references

- Yocto Project Application Developer's Guide 2.1
- See the "Build Yocto from source code" section in this Wiki website, for your appropriate board and Yocto release.

2 Sample C "Hello, world!" program

Create a file called myhello.c with the following content:

#include <stdio.h>

int main() {
	printf("Hello, World!\n");
	return 0;
}

3 Building out of Yocto

3.1 Toolchain installation for out of Yocto builds

To install the toolchain:
For Variscite's MX6 boards, follow VAR-SOM-MX6 Toolchain installation for out of Yocto Krogoth builds.
For DART-6UL, follow DART-6UL Toolchain installation for out of Yocto Krogoth builds.
For VAR-SOM-MX7, follow VAR-SOM-MX7 Toolchain installation for out of Yocto Krogoth builds.

3.2 Build

Source the environment setup script (see the previous "Toolchain installation" section)

Compile:
$ $CC $CFLAGS $LDFLAGS myhello.c -o myhello

Now you should have an app called myhello, that can be copied (using scp, for example) and run on your target board.

4 Building using Yocto

4.1 Sample bitbake recipe of an "Hello, world!" application

Create a file called myhello.bb with the following content:

DESCRIPTION = "Simple helloworld application"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://myhello.c"

S = "${WORKDIR}"

do_compile() {
	${CC} ${CFLAGS} ${LDFLAGS} myhello.c -o myhello
}

do_install() {
	install -d ${D}${bindir}
	install -m 0755 myhello ${D}${bindir}
}

Create the following directory tree under your Yocto directory, and place in it the two files described above:

sources/meta-variscite-imx/recipes-examples/
└── myhello
    ├── files
    │   └── myhello.c
    └── myhello.bb

2 directories, 2 files

4.2 Build

Run the following in your Yocto build directory:

$ bitbake myhello

To find the location of the output package you can run the following in your Yocto build directory:

$ cd tmp/deploy/rpm
$ find -name myhello*

To add the output of this recipe to your output images, add the following to your conf/local.conf file in your Yocto build directory:

IMAGE_INSTALL_append = " myhello"

This will put the myhello app in your rootfs.