Get familiar with device driver development for the Linux kernel
Course details
- Duration: 5 days / 40 hours (on-site) – 7 half days / 28 hours (on-line)
- Agenda: on-site – on-line
- Training materials
- Slides
- Practical labs for BeagleBone or BeaglePlay
- Lab data for BeagleBone or BeaglePlay
- Written language: English
- Available oral languages: English and French.
Types of sessions
- Private on-site session, on request
- Private on-line session, on request
- Public on-line session, dates below
Dates of public on-line sessions
Type | Dates | Time | Duration | Language | Expected trainer |
Cost and registration |
---|---|---|---|---|---|---|
Linux kernel driver development (agenda) FULL |
Dec 2, 3, 5, 6, 9, 10, 12, 2024 + extra session on Dec 13, 2024 if needed |
14:00 – 18:00 (Paris, UTC+1) 08:00 AM – 12:00 PM (New York, UTC-5) |
28 h | English | Maxime Chevallier |
Discount: 999 EUR* Regular: 1099 EUR* Register now |
Linux kernel driver development (agenda) FULL |
Dec 9, 10, 12, 13, 16, 17, 18, 2024 + extra session on Dec 19, 2024 if needed |
14:00 – 18:00 (Paris, UTC+1) 08:00 AM – 12:00 PM (New York, UTC-5) |
28 h | English | Miquèl Raynal |
Discount: 999 EUR* Regular: 1099 EUR* Register now |
Linux kernel driver development (agenda) |
Jan 13, 14, 16, 17, 20, 21, 22, 2025 + extra session on Jan 23, 2025 if needed |
14:00 – 18:00 (Paris, UTC+1) 08:00 AM – 12:00 PM (New York, UTC-5) |
28 h | English | Miquèl Raynal |
Discount: 999 EUR* Regular: 1099 EUR* Register now |
Linux kernel driver development (agenda) |
Mar 10, 11, 13, 14, 17, 18, 20, 2025 + extra session on Mar 21, 2025 if needed |
08:30 – 12:30 (Paris, UTC+1) | 28 h | English | Grégory Clément |
Discount: 999 EUR* Regular: 1099 EUR* Register now |
Linux kernel driver development (agenda) |
Mar 31, Apr 1, 3, 4, 7, 8, 9, 2025 + extra session on Apr 10, 2025 if needed |
17:00 – 21:00 (Paris, UTC+2) 11:00 AM – 03:00 PM (New York, UTC-4) 08:00 AM – 12:00 PM (San Francisco, UTC-7) |
28 h | English | Miquèl Raynal |
Discount: 1499 EUR* Regular: 1599 EUR* Register now |
Additional sessions at future dates will be announced progressively. We generally announce new sessions when existing ones are either full or already passed. |
*The price is excluding VAT. The online shop charges VAT, except for businesses outside of France if they provide valid company information at registration time. Businesses in France, and individuals registering by themselves must pay VAT.
The discount rate is applicable at the following conditions:
- Booking at least 1 month prior to the training session start
- Booking and payment made online using credit card
- Limit of 6 seats per training session at the discount rate
If you are unable to register through our online shop, do not hesitate to contact us, we will be able to provide a training contract and offer alternative payment methods.
Registration on the online shop remains available until the session starts, subject to seat availability.
Target audience
This course targets engineers who wish to develop or improve device drivers in the Linux kernel, for projects on embedded platforms, or on the traditional PC platform. In five days, through theory and practical labs, the course makes you familiar with the essentials of kernel development: kernel architecture, the main APIs, integration of device drivers with other parts of the kernel and with user applications.
Objectives
- Be able to configure, build and install the Linux kernel on an embedded system.
- Be able to understand the overall architecture of the Linux kernel, and how user-space applications interact with the Linux kernel.
- Be able to develop simple but complete Linux kernel device drivers, thanks to the development from scratch of two drivers for two different hardware devices, that illustrate all the major concepts of the course.
- Be able to navigate through the device drivers mechanisms of the Linux kernel: Device Tree, device model, bus infrastructures.
- Be able to develop device drivers that communicate with hardware devices.
- Be able to develop drivers that expose functionality of hardware devices to Linux user-space applications: character devices, kernel subsystems.
- Be able to use the major kernel mechanisms needed for device driver development: memory management, locking, interrupt handling, sleeping.
- Be able to debug Linux kernel issues, using a variety of debugging techniques and mechanisms.
See the detailed agenda.
Training materials
All the training materials we use during this course are freely available. Before the session, you can then check that they correspond to your needs.
Practical labs
In our on-site courses, each lecture is followed by a practical lab done by the participant. The practical labs represent 50% to 60% of the whole course time. Labs are performed on an embedded ARM board (BeagleBone Black). You will get familiar with the generic mechanisms and interfaces provided by the Linux kernel, through the implementation of device drivers for an I2C device (Nintendo Wii Nunchuk in our labs) and for the serial ports of the TI AM335x CPU. This experience will help you to implement device drivers for any type of devices.
In our on-line courses, the practical labs are performed as live demonstrations by the trainer. Participants can ask questions at any time. Optionally, the participants who have access to the necessary hardware accessories can reproduce the labs by themselves.
Prerequisites
- Solid experience with the C programming language: participants must be familiar with the usage of complex data types and structures, pointers, function pointers, and the C pre-processor.
- Knowledge and practice of UNIX or GNU/Linux commands: participants must be familiar with the Linux command line. Participants lacking experience on this topic should get trained by themselves, for example with our freely available on-line slides at https://bootlin.com/blog/command-line/
- Minimal experience in embedded Linux development: participants should have a minimal understanding of the architecture of embedded Linux systems: role of the Linux kernel vs. user-space, development of Linux user-space applications in C. Following Bootlin’s Embedded Linux course allows to fulfill this pre-requisite.
- Minimal English language level: B1, according to the Common European Framework of References for Languages, for our sessions in English. See the CEFR grid for self-evaluation.
Hardware requirements
- For on-line courses:
- Computer with the operating system of your choice, with the Google Chrome or Chromium browser for videoconferencing.
- Webcam and microphone, from an audio headset
- High speed access to the Internet
- Optionally: the hardware accessories needed for the practical labs, if you want to reproduce the practical labs by yourself. Note that this is not mandatory: you can follow the course without those hardware accessories, as the trainer will perform the practical labs as live demonstrations.
- For on-site courses:
- Training room
- Video projector
- One recent PC computer for each desk (1 or 2 persons) installed with Linux. See the training agenda for detailed requirements.
- Unfiltered and fast connection to the Internet
- Bootlin provides the hardware accessories for the practical labs for the duration of the course
Customer feedback
It was a great course by Miquèl Raynal 🤓👨🏫👍. I enjoyed it and learned a lot from it. Also funny enough, right after the course I had to do some device tree changes 🛠️ and I kept remembering all tips and tricks he mentioned.
Ahmed ElsalahyAhmed Elsalahy, on LinkedIn
I would like to thank Maxime Chevallier and Bootlin and for an excellent course on Linux kernel driver development. We had two great weeks learning very interesting and useful concepts. I warmly recommend developers who would like to improve their skills and knowledge of the Linux kernel to attend their courses.
Patrik Nordvall – Saab, link
The training has been very helpful in getting up to speed and getting hands-on experience with Linux Kernel development in general and Linux Driver development in particular. We found that the instructor was very knowledgeable and helpful when diving in to the lab sessions and when we were asking specific questions about problems that we have been facing in our own development tasks.
Steen Hegelund – Microchip Technology Inc
Bootlin has proven time and again that their expertise in Linux trainings is unparalleled. Not only were the already existing trainings invaluable for training of our personnel, but they were also willing to adapt and reintroduce new trainings, custom tailored for our needs.
Nikola Jelić – Zuehlke Engineering
- In 2023, 93.9% of the participants were very satisfied with the course, giving a score equal or higher to 8 as the overall rating for our course, on 10 points
- In 2023, 97.7% of the participants got their training certificate, by having more than 50% of correct answers to our final quiz
By the way, you can also see evaluations from previous sessions. In the same way we are transparent with our training materials, we share all the evaluations that we collect, not only the best ones.
Participants with disabilities
Participants with disabilities who have special needs are invited to contact us to discuss adaptations to the training course.
Contact
For any question, registration or comment, you can contact us:
- training@bootlin.com
- phone : +33 484 258 097