
In this lecture, we will talk about;
Introduction to your course lecturer
How to access the source code for the lectures
Overall course outline
In this lecture, we will talk about;
What is an embedded system?
Embedded systems from software perspective (software stacks, chip firmware)
Embedded systems from hardware perspective (chip and PCB design)
Embedded systems from software development perspective (build environment, source code, image generation, use of consoles)
In this lecture, we will talk about;
The differences between Desktop Linux and Embedded Linux
Why do we use Embedded Linux in products?
What sort of software is contained within Desktop Linux and Embedded Linux software stacks?
Cross compilation
Example Embedded Linux Software Stack
In this lecture, we will talk about;
System images that are required to boot an Embedded Linux system (with Raspberry Pi example)
Brief introduction to Rootfs, Linux Kernel, Devicetree
How Custom Software is developed?
In this lecture, we will talk about;
How does Linux-running hardware look like? Basic hardware components explained.
How Linux Boots? Image files explained from example system image. Linux boot procedure explained.
Bootloader
Linux Kernel
Userspace
In this lecture we will talk about Linux distributions and Package Managers
In this lecture, we will talk about;
Why do we need Yocto Project? An overall perspective
Tasks in Embedded Systems
Yocto Project Terminology
In this lecture, we will talk about Yocto Project architecture.
In this lecture, we will prepare our Linux environment, VSCode environment, set up a Git repository, and download poky reference Linux distribution.
In this lecture, we will explore basic configuration files and variables in Yocto Project.
In this lecture, we will explore important folders and files within poky reference distribution Yocto source code. We will also explore work directories and how to find where build outputs are located when a Yocto recipe is cooked. Furthermore, how to debug certain features within Yocto are also explained.
In this lecture,
We will talk about layers in Yocto Project
Extend upon reference Poky Linux distribution by adding some of the core layers.
Add raspberrypi support to poky distribution by including meta-raspberrypi layer.
In this lecture, we will;
Create our own layer.
Check what is contained within layers.
In this lecture,
Raspberry Pi 5 hardware is introduced.
Serial console setup for Raspberry Pi 5 is explained and demonstrated.
Secure shell (SSH) setup for Raspberry Pi 5 is explained and demonstrated.
First Raspberry Pi 5 image is booted and explained.
In this lecture, we will learn how to flash SD card and start Raspberry Pi 5 platform. We will also examine all the components that are needed to run the Raspberry Pi 5 board.
In this lecture,
We will learn how recipes work.
We will learn how to create a recipe that compiles basic software using GCC.
In this lecture, we will learn how to create a recipe for a software package that uses GNU Make build system. We will integrate an example software package that utilizes Makefile.
In this lecture,
We will learn how to create a recipe for a software package that uses CMake as its build system.
We will also learn how to use Git repositories as sources in our recipes.
We will create recipe for some of the raspberrypi-utils tools.
In this lecture,
We will talk about a tool called GoYocto which is able to create Yocto recipe skeletons that can be tailored and used in creating Linux distributions.
An example will be made so that a PyPi Python3 package is integrated using a recipe.
We will also explore how tarball archives can be used as a source in recipes.
With this lecture,
Graphical desktop environment XFCE support will be added to Yocto Project environment
Demonstration of the graphical desktop environment will be done.
With this lecture,
We will add Qt6 support to our Linux distribution.
We will create a minimal Qt6 application and create its recipe.
In this lecture,
How Application SDK works in Yocto Project will be explained.
A custom Application SDK will be created.
With this lecture, we will learn how to modify source files of the software packages and how to create patches from our changes using a very handy tool called DEVTOOL.
In this lecture, we will learn how machines work in Yocto Project. We will learn about how to change devicetree, devicetree overlays, U-Boot command line, compiler tuning options, and more.
In this lecture, a new machine will be created as Yocto Project configuration and all related modifications will be added in this newly added machine configuration.
In this lecture, we will learn how to modify Linux Kernel config files using Yocto Project.
In this lecture, we will talk about how to modify Linux kernel source and how to downgrade/upgrade Linux kernel version using Yocto Project.
Hi,
My name is Mustafa Ozcelikors, a Senior Linux & Android Engineer and team leader with more than +9 years of experience working in automotive with Master's Degree in Embedded Systems, who have won Google SOC event in 2017 and who have been actively contributing to open source and commercial projects. I have been using Yocto Project for almost 10 years, dating back to my college years.
"Applied Yocto Project using Raspberry Pi 5 (with Embedded Linux practices)" is an unique Embedded Linux course unlike any other. The course utilizes drawings, slideshows, diagrams, examples, hands-on applications in order for you to visualize every subject in your mind with ease. Course level starts with beginner, but some advanced topics are also explained.
Theoretical subjects are carefully planned and almost for every important subject, multiple block diagrams have been created for better understanding. Almost every figure, schematic, drawing comes from years of experience in the field, not from the internet or from any book. In practical subjects, we take a deep dive in exploring Yocto Project together, and open up a terminal together to achieve things within it.
At the end of the course we together will have a custom Linux distribution with distinct machine configuration, kernel, recipe examples, and Qt application.
You are in this now for the following great content:
Understand the core philosophy behind Embedded Linux systems from Introductory to Advanced subjects.
Understand why we use Embedded Linux in certain products.
Understand how Linux systems and Raspberry Pi 5 boot.
Grasp how embedded Linux tasks work (unpack, patch, configure, compile, install, deploy, package).
Understand Linux distributions and package managers.
Comfortably handle tasks regarding Yocto Project and its configuration with ease.
Understand how Raspberry Pi 5 layer and board configuration work in Yocto Project (meta-raspberrypi, hardware specs, serial console).
Create your own machine configurations within Yocto Project.
Create your own layers for your Linux distribution.
Comfortably create new recipes for software packages that use multiple build systems (GCC, GNU Make, CMake, PyPi).
Integrate third party software (e.g. GNOME, XFCE, Qt) in Embedded Linux products.
Integrate graphical desktop in your Embedded Linux system.
Deploy system images to Raspberry Pi 5 and work with secure shells and serial console software.
Create patches for existing software packages using DEVTOOL.
Understand how to comfortably understand and modify kernel configurations (Kconfig, config fragments).
Downgrade and upgrade Linux Kernel version of your embedded Linux distribution.
Thank you very much for your interest! I hope to see you in the first lecture!
Kindly yours,
M.Eng Mustafa Ozcelikors