Book Image

Embedded Linux Development Using Yocto Project Cookbook - Second Edition

By : Alex Gonzalez
Book Image

Embedded Linux Development Using Yocto Project Cookbook - Second Edition

By: Alex Gonzalez

Overview of this book

The Yocto Project has become the de facto distribution build framework for reliable and robust embedded systems with a reduced time to market.You'll get started by working on a build system where you set up Yocto, create a build directory, and learn how to debug it. Then, you'll explore everything about the BSP layer, from creating a custom layer to debugging device tree issues. In addition to this, you’ll learn how to add a new software layer, packages, data, scripts, and configuration files to your system. You will then cover topics based on application development, such as using the Software Development Kit and how to use the Yocto project in various development environments. Toward the end, you will learn how to debug, trace, and profile a running system. This second edition has been updated to include new content based on the latest Yocto release.
Table of Contents (13 chapters)
Title Page
Packt Upsell

Developing GTK+ applications

This recipe will show how to build, run, and debug a graphical GTK+ application using the Eclipse IDE.

Getting ready

  1. Add the eclipse-debug feature to your project's conf/local.conf file, as follows:
EXTRA_IMAGE_FEATURES += "eclipse-debug" 
  1. Build a core-image-sato target image, as follows:
$ cd /opt/yocto/fsl-community-bsp/
$ source setup-environment wandboard
$ bitbake core-image-sato
  1. Build a core-image-sato toolchain with the following command:
$ bitbake -c populate_sdk core-image-sato
  1. Install the toolchain by running the installer, as follows:
$ cd tmp/deploy/sdk
$ ./

Before launching the Eclipse IDE, we can check whether we are able to build and launch a GTK application manually. We will build the following GTK+ hello world application source. The following is the code in gtk_hello_world.c:

#include <gtk/gtk.h> 
int main(int argc, char *argv[]) 
  GtkWidget *window; 
  gtk_init (&argc, ...