Embedded Linux
This training aims to enable the participant to develop and customize systems with embedded Linux, through a practical approach and a broad content.
What you’ll learn
During the training, the participant will
- Study about the general architecture of systems with embedded Linux.
- Set up and generate your own toolchain for cross-compilation.
- Configure and compile the bootloader (U-Boot) for the development kit.
- Configure and compile a custom Linux kernel for the development kit.
- Create a rootfs from scratch using Busybox and other open source components.
Agenda - Embedded Linux
For more details about the content, you can consult the agenda and slides of the training.
General information
Introduction and general architecture of systems with embedded Linux, study of the hardware and its boot process, study and generation of a toolchain for cross-compilation, study and compilation of the bootloader (U-Boot), configuration and compilation of the Linux kernel, device tree and kernel modules, development of a rootfs from scratch with Busybox, development of an embedded web server, access to hardware devices in Linux (led, button, GPIO, PWM, I2C, accelerometer, display, etc), types of file systems for Linux, use of a build system (Buildroot and Yocto Project/OpenEmbedded) to generate custom Linux distributions, application development, make and autotools, debugging in embedded Linux (GDB, Valgrind, strace, etc), development of graphical applications with Qt, configuration and use of Eclipse on embedded Linux
Introduction and general architecture of systems with embedded Linux, study of the hardware and its boot process, study and generation of a toolchain for cross-compilation, study and compilation of the bootloader (U-Boot), configuration and compilation of the Linux kernel, device tree and kernel modules, development of a rootfs from scratch with Busybox, development of an embedded web server, access to hardware devices in Linux (led, button, GPIO, PWM, I2C, accelerometer, display, etc), types of file systems for Linux, use of a build system (Buildroot and Yocto Project/OpenEmbedded) to generate custom Linux distributions, application development, make and autotools, debugging in embedded Linux (GDB, Valgrind, strace, etc), development of graphical applications with Qt, configuration and use of Eclipse on embedded Linux
Introduction and general architecture of systems with embedded Linux, study of the hardware and its boot process, study and generation of a toolchain for cross-compilation, study and compilation of the bootloader (U-Boot), configuration and compilation of the Linux kernel, device tree and kernel modules, development of a rootfs from scratch with Busybox, development of an embedded web server, access to hardware devices in Linux (led, button, GPIO, PWM, I2C, accelerometer, display, etc), types of file systems for Linux, use of a build system (Buildroot and Yocto Project/OpenEmbedded) to generate custom Linux distributions, application development, make and autotools, debugging in embedded Linux (GDB, Valgrind, strace, etc), development of graphical applications with Qt, configuration and use of Eclipse on embedded Linux
Detailed agenda
Presentation: Introduction - History of free software and the GNU/Linux operating system, main characteristics of Linux, myths and truths about the use of embedded Linux products, components of an embedded Linux system, embedded Linux hardware, characteristics of a toolchain, responsibilities and characteristics of the bootloader, introduction to the Linux kernel, rootfs and file systems, build systems.
Introduction and general architecture of systems with embedded Linux, study of the hardware and its boot process, study and generation of a toolchain for cross-compilation, study and compilation of the bootloader (U-Boot), configuration and compilation of the Linux kernel, device tree and kernel modules, development of a rootfs from scratch with Busybox, development of an embedded web server, access to hardware devices in Linux (led, button, GPIO, PWM, I2C, accelerometer, display, etc), types of file systems for Linux, use of a build system (Buildroot and Yocto Project/OpenEmbedded) to generate custom Linux distributions, application development, make and autotools, debugging in embedded Linux (GDB, Valgrind, strace, etc), development of graphical applications with Qt, configuration and use of Eclipse on embedded Linux
Introduction and general architecture of systems with embedded Linux, study of the hardware and its boot process, study and generation of a toolchain for cross-compilation, study and compilation of the bootloader (U-Boot), configuration and compilation of the Linux kernel, device tree and kernel modules, development of a rootfs from scratch with Busybox, development of an embedded web server, access to hardware devices in Linux (led, button, GPIO, PWM, I2C, accelerometer, display, etc), types of file systems for Linux, use of a build system (Buildroot and Yocto Project/OpenEmbedded) to generate custom Linux distributions, application development, make and autotools, debugging in embedded Linux (GDB, Valgrind, strace, etc), development of graphical applications with Qt, configuration and use of Eclipse on embedded Linux
Gallery
Some photos of the trainings already carried out
Development Kit
- The training exercises are performed on the Colibri i.MX6