
Training aimed at engineers with prior experience working with POSIX systems and wishing to understand specific details of Linux. Throughout the training, the following topics will be covered:
- Device trees and their relationship with drivers
- The role of Linux within an embedded system
- Kernel configuration
- The driver or module system
Course Content
Phase 1: Config and Build
In this module, we will focus on the options provided by Linux for configuring and compiling the kernel.
By the end, students will be able to replace the kernel of the original distribution with one they have generated, specific to the hardware they will be working with.
By the end of the week, you’ll be interacting with real hardware via GPIOs, learning exactly how Kconfig, DeviceTree, and overlay files bridge the gap between hardware description and software execution.
The module will emphasize two main points:
- Kbuild, the build system (based on Make) used by Linux.
- Cross-platform compilation, distinguishing between build, host, and target platforms.
Phase 2: Bootloaders (U-Boot)
This module is similar to the previous one, but focuses on the bootloader rather than the kernel.
By the end, students will be able to replace the kernel of the original distribution with one they have generated, specific to the hardware they will be working with.
Upon completion, students will be able to configure and compile a bootloader, which can serve as a substitute for the one included in the original distribution.
Given the variety of options available in this area, we will focus on U-Boot.
Phase 3: Drivers
This module will provide an introduction to drivers in the context of Linux, covering the differences among character, block, and network drivers, as well as the unified interface exposed by the kernel through device nodes.
Students will write two drivers:
- As an introduction, a character driver similar to the ‘echo’ program.
- To conclude, a driver that enables interaction with a 2×16 character alphanumeric LCD.
- Throughout the module, students will become familiar with the interface provided by the kernel for writing drivers.
Phase 4: Device trees
In this module, the concept of device trees will be introduced, highlighting the issues they resolve in the context of various embedded systems.
The “Open Firmware Device Tree,” also known as Devicetree (DT), represents a data structure and language used to describe hardware.
It serves as a hardware description readable by an operating system, eliminating the need for the OS to hardcode machine details.
Participants will have the opportunity to write device trees for use with the driver created in the previous module for the alphanumeric LCD, making use of this interface.
Phase 5: Root Filesystems
To achieve the initial goal of replacing all components of the original distribution, this module will provide information about the root filesystem and its role within a Linux-based system.
Students will be able to utilize Buildroot to generate a root filesystem comprising a set of programs tailored to the system’s requirements.
Phase 6: User space and C Library
In this module, we will delve into the role of the C library as a “gateway” to the kernel interface.
Some of the topics to be discussed include:
- Various implementation options for the C library.
- System calls are the interface exposed by the kernel to user-space programs.
- Differentiation between freestanding and hosted in the context of a user-space program
Participants will conclude by writing a program that interacts directly with the kernel without using the C library.
For more information:
Requirements
- Laptop (Linux)
- Experience in Software development in C
- Experience in any Linux Distribution and the use of the Terminal
Tools
- Beaglebone Black
- Modular expansion board (Includes Alphanumeric LCD, EEPROM, LEDs, buttons, and CAN)
Duration
- Duration of the upskilling: 8 weeks (10 hours per week)
- Dedication: 10 hours per week
- Session with instructor: 2 remote sessions per week (2 hours each)
- Independent activities: 6 hours per week for assigned practical tasks.
Professional
Mentored with a hardware kit.
$23,200 MXN
Full access to the course content
Dev kit included
Weekly group mentorship
Badge and Certificate of Completion
Enterprise
Custom training for engineering teams.
Custom
Full access to the course content
Custom driver modules
Dedicated support

