D4Real-time Linux
Real-time Linux with RT-Preempt patch and Xenomai
|
Objectives
|
||||||
- A PC for two trainees, with Linux and Xenomai on a target board
- Printed course material
- Linux application programming skills (D0 - Linux user mode programming course)
- Embedded Linux knowledge (D1 - Embedded Linux with Buildroot and Yocto course)
- For RTDM, Linux Driver Prgramming (D3 - Linux Drivers course)
- Notions of real-time programming (RT1 - Real Time and Multi-Core programming course)
- Any embedded systems engineer or technician with the above prerequisites.
- The prerequisites indicated above are assessed before the training by the technical supervision of the traineein his company, or by the trainee himself in the exceptional case of an individual trainee.
- Trainee progress is assessed in two different ways, depending on the course:
- For courses lending themselves to practical exercises, the results of the exercises are checked by the trainer while, if necessary, helping trainees to carry them out by providing additional details.
- Quizzes are offered at the end of sections that do not include practical exercises to verifythat the trainees have assimilated the points presented
- At the end of the training, each trainee receives a certificate attesting that they have successfully completed the course.
- In the event of a problem, discovered during the course, due to a lack of prerequisites by the trainee a different or additional training is offered to them, generally to reinforce their prerequisites,in agreement with their company manager if applicable.
Course Outline
- Linux
- History
- Version management
- The various licenses used by Linux (GPL, LGPL, etc)
- Linux distributions
- Linux architecture and modularity
| Exercise: | Boot Linux automatically starting a user application | |
- Linux kernel parameters
- The Linux startup sequence
- Various initialization systems (busybox init, system V init, systemd)
- Automatically starting an embedded system
| Exercise: | Boot Linux automatically starting a user application | |
- Downloading stable source code
- Getting a tarball
- Using GIT
- Configuring the kernel
- Compiling the kernel and its modules
- The Linux build system
- Modules delivered in-tree
- Out-of-tree modules
- Installing the kernel and the modules
- The Linux Device Tree
| Exercise: | Configuring and compiling a target kernel for the target board | |
- Scheduling
- Threads
- Definition of a thread
- POSIX threads
- Synchronization and communication primitives
- Mutexes and Condition Variables
- Barriers
- Semaphores
- Message queues
- Thread-specific Data
| Exercise: | Implement a multi-threaded server | |
- Classic real-time problems
- Dead-Locks
- Live-Locks
- Priority Inversion
| Exercise: | Solve the Readers-Writer problem | |
- The Kernel tracing infrastructure
- Tracepoints
- The ftrace function tracer
- Kprobes
- Event tracers
- Performance monitoring in the Linux kernel
- Perfcounters
- Perf events
- Debugging the kernel using traces
- LTTng
| Exercise: | Trace context switches and measure latency times | |
| Exercise: | Use LTTng to trace multi-task context switches | |
- The specificities of Real-Time
- Why Linux is not Real-Time
- Configuration Options in Vanilla Kernel
- The Preempt_RT patch
- The co-kernel approach
| Exercise: | Install Preempt_RT and check the effect on latencies | |
- Architecture
- Adeos
- Skins
- Shadow Threads and Scheduling Domains
- Xenomai Schedulers
- The Real-Time class schedulers
- The Weak class schedulers
- Configuring Xenomai
| Exercise: | Install Xenomai | |
| Exercise: | Cross-compile an application for Xenomai | |
- The Xenomai Skins
- POSIX
- RTDM
- Specificities of the POSIX skin
- Programming RTDM drivers
- Creating a kernel module
- Integration in the Linux Device Model
- Xenomai traces
- Porting to Xenomai
| Exercise: | Identify and Debug Spurious Relax problems | |
| Exercise: | Port an application on Xenomai and test real-time characteristics | |
| Exercise: | Write a simple RTDM driver | |
- Overview of RTNet
- Architecture
- Non-determinism of Ethernet
- Time Division Multiple Access
- Configuration
- Network Programming with RTNet
| Exercise: | Add RTNet support to the Xenomai kernel | |
| Exercise: | Test using udp client and server | |
More
To book a training session or for more information, please contact us on info@ac6-training.com.
Registrations are accepted till one week before the start date for scheduled classes. For late registrations, please consult us.
You can also fill and send us the registration form
This course can be provided either remotely, in our Paris training center or worldwide on your premises.
Scheduled classes are confirmed as soon as there is two confirmed bookings. Bookings are accepted until 1 week before the course start.
Last update of course schedule: 23 February 2026
Booking one of our trainings is subject to our General Terms of Sales
Related Courses
D0
Linux user mode programming
D1
Embedded Linux with Buildroot and Yocto
D1S
Embedded Linux with Ac6 System Workbench
D1Y
Embedded Linux with Yocto
D3
Linux Drivers
D5
Embedded GUI
D7
Power Management in Linux Drivers
D8
USB Linux Drivers
Q1
Embedded GUIs with Qt
Y1
Yocto Project Development
Y12
Comprehensive Yocto Project Usage
Y2
Yocto Project Expert