In this article, I am going to walk you through the process of setting up the Yocto Project to fetch the necessary content and build an Embedded Linux distribution supporting the GStreamer framework. Furthermore, I shall provide you with command-line examples to test-run the ability of GStreamer to run various sorts of multimedia.

Image for post
Image for post

Introduction

Gstreamer is an open-source multimedia framework that can be used to build all kinds of media applications (e.g. media playback, streaming, editing). The framework is designed to simplify the handling of video and audio or both simultaneously.

GStreamer works on with all major operating systems like Linux, Windows, Android, OS X, iOS. It may run on all major hardware architectures including x86, ARM, MIPS, SPARC. …


This tutorial explains the manner to deploy cross-platform projects you made with the Qt framework ( Qt Core, Qt Widgets, and Qt Quick alike) to Linux Operating Systems using linuxdeployqt

Image for post
Image for post

I used this environment for these demonstrations

Operating System information

Image for post
Image for post

Qt Code on Qt Creator

Image for post
Image for post

Code sample

The lines of code show the construction of a custom Widget and appear in the following Udemy course:

If you are serious about learning Qt, I recommend following along Daniel Gakwaya’s courses on Udemy.

At this point, the preparations are completed. Let’s start the thing.

Step 0. Build the Qt code in Release Mode

Image for post
Image for post

Image for post
Image for post

There will be times when you want to enable certain hardware peripherals early in the execution of your Embedded programs.

It takes an amount of time for your little embedded device to load the Root File System until you have the operating system running. Just before the root file system is set up, you can still “order” your embedded device to do stuff you want by modifying the U-Boot program.

My example uses Beaglebone Black as an embedded device of choice. …


Image for post
Image for post

What is needed to boot Linux on an embedded device such as Beaglebone Black?

  1. ROM Boot Loader (RBL)

It is a small memory that runs on the SOC. The very first piece of code to run on the SOC when you power the Board. This is written by the vendor (hence it can not be changed) and it is stored in the ROM section of the SOC. The job the ROM Boot Loader is to load and execute the 2nd stage boot loader which is the SPL/MLO.

2. Secondary Program Loader (Memory LOader)

Its job is to load and execute the 3rd stage boot loader such as U-boot.

3. U-boot

The job of the 3rd stage boot loader is to load and execute the Linux Kernel. …


Image for post
Image for post

Prerequisite

If you are a beginner, I recommend you check first the tutorial for writing your first C language programs with Eclipse IDE on Windows/Linux :

Step 1. Connect USB to Serial TTL cable to the embedded device

Additionally, you will have to enable USB-to-Serial TTL via ‘Devices’ in the Virtual Machine menu, in case you are using the Linux Operating System from a Virtual Machine.

The reason you need the USB to Serial TTL connection is that you will have to get the IP Address of the embedded device before using the Remote System Explorer in Eclipse IDE.

Here is an example with screenshots considering Linux Ubuntu 18.04 running on an Oracle VirtualBox machine. …


Image for post
Image for post

Prerequisite

If you are a beginner, I recommend you check first the tutorial for installing a C/C++ development driven on Eclipse IDE on Linux Operating System:

First Embedded Project with Eclipse IDE

Select a Workspace when opening Eclipse IDE and create a new Project

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Name the project and select the toolchain

Image for post
Image for post

Apply the basic settings to the project

Image for post
Image for post

Set the environment variable for the cross-toolchain compiler

Image for post
Image for post

Copy the path of the /bin directory from the cross-toolchain compiler

Image for post
Image for post
Image for post
Image for post
Here is an example of the important Eclipse IDE directories on my machine
Image for post
Image for post

Paste the path to set the Environment variables in Eclipse

Note: At the end of the variable value text, paste the path you copied at the previous step. The delimiter between this and the previous entry is

  • “;” in Windows
  • “:” in Linux.
Image for post
Image for post

Save the path variables in Eclipse

Set the cross GCC command

Image for post
Image for post
Image for post
Image for post

Write and build C project (example) for ARM using cross-toolchain

Right-click on the name of the project, in the Project Explorer, and select “Build Project”:

Image for post
Image for post

The project builds successfully.

What is next?

I recommend you to follow the tutorial about how to deploy and test the application on the embedded device.

I am going to add some interesting (and probably useful) C language example applications here soon.


Image for post
Image for post

Prerequisite

If you are a beginner, I recommend you check first the tutorial for installing a C/C++ development driven on Eclipse IDE on Windows:

First Embedded Project with Eclipse IDE

Select Workspace when opening Eclipse IDE and create a new Project

Image for post
Image for post
Image for post
Image for post

Name the project and select the toolchain

Image for post
Image for post

Apply the basic settings to the project

Image for post
Image for post

Set the environment variable for the cross-toolchain compiler

Image for post
Image for post
Image for post
Image for post

Copy the path of the /bin directory from the cross-toolchain compiler

Image for post
Image for post
Image for post
Image for post

Paste the path to set the Environment variables in Eclipse

At the end of the variable value text, paste the path you copied at the previous step. The delimiter between this and the previous entry is

  • “;” in Windows
  • “:” in Linux.
Image for post
Image for post

Save the path variables in Eclipse

Image for post
Image for post

Set the cross GCC command

Image for post
Image for post

Build C project (example) for ARM using cross-toolchain

Right-click on the name of the project, in the Project Explorer, and select “Build Project”:

Image for post
Image for post

The project builds successfully.

Image for post
Image for post

What is next?

I recommend you to follow the tutorial about how to deploy and test the application on the embedded device.

I am going to add some interesting (and probably useful) C language example applications here soon.


Image for post
Image for post

In embedded development, Eclipse IDE can be used to write, compile and transfer the generated binary using its Remote System Environment feature.

Installing Eclipse and Cross Toolchain and build tools

You need 3 pieces of software to use Eclipse IDE for embedded projects:

Using Eclipse for C/C++ developers on Linux Operating System

Step 1. Verify if Java is installed on your machine, install if it is not

Image for post
Image for post

If the Java Development Kit (JDK) is not installed, go install it from here: https://www.oracle.com/java/technologies/javase-jdk14-downloads.html. You can also install Java SDK with ‘apt install’ or via command line.

OpenJDK and Oracle Java are the two main implementations of Java, with almost no differences between them except that Oracle Java has a few additional commercial features. …


Image for post
Image for post

In embedded development, Eclipse IDE can be used to write, compile and transfer the generated binary using its Remote System Environment feature.

Installing Eclipse and Cross Toolchain and build tools

You need 3 pieces of software to use Eclipse IDE for embedded projects:

Using Eclipse for C/C++ developers on Windows Operating System

Step 1. Verify if Java SDK is installed on your machine

Eclipse IDE uses a Java runtime machine to run upon. Hence, whether you are on Windows, Linux or Mac OS, you are going to have Java running on your system.

Use command prompt or Powershell to…


Image for post
Image for post

Which one is better?

I have been using all of these. Plus Alison. From all of these, I have made the least use of Udemy.

I would recommend a mix with LinkedIn Learning and Pluralsight together. Hard to separate.

LinkedIn Learning excels in providing you with the soft skills you need in the career path, while of course, it can also maintain your technical skills up-to-date. Most of the time, courses provide quick and functional insights on the matter of research. …

About

George Calin

10+ years of experience in a blend of programming, business intelligence, mentoring, people and logistics management :: https://www.linkedin.com/in/cgeorge1978/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store