Free training materials and conference presentations from Bootlin, covering kernel, real-time, Android, embedded Linux system and device driver development.
License
All our documents are available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license. This essentially means that you are free to download, distribute and even modify them, provided you mention us as the original authors and that you share these documents under the same conditions.
Complete training materials
- Embedded Linux system development course
- Linux kernel and driver development course
- Yocto Project and OpenEmbedded development course
- Buildroot development course
- Embedded Linux boot time reduction workshop
Presentations at technical conferences
Here are the most recent versions of presentations we made at technical conferences.
Keynotes
Linux kernel and hardware architectures
- Understand your NAND and drive it within Linux (video, 2018)
- Introduction to the DRM subsystem (2017)
- Power Management Integrated Circuits: Keep the Power in Your Hands (video, 2017)
- A tour of the ARM architecture and its Linux support (video, 2017)
- Upstreaming hardware support in the Linux kernel: why and how? (2016)
- Supporting the Camera Interface on the C.H.I.P (video, 2016)
- Bringing display and 3D to the C.H.I.P computer (video, 2016)
- Your newer ARM64 SoC Linux check list! (video, 2016)
- Modernizing the NAND framework: the big picture (video, 2016)
- ASoC: Supporting Audio on an Embedded Board (video, 2016)
- Using DT overlays to support the C.H.I.P.’s capes (video, 2016)
- Porting Linux on an ARM board (2015)
- Supporting multi-function devices in the Linux kernel (video, 2015)
- Kernel maintainership: an oral tradition (video, 2015)
- An overview of the DMAEngine subsystem (video, 2015)
- Device Tree as a stable ABI: a fairy tale? (video, 2015)
- Two years of ARM SoC support mainlining: lessons learned (2014)
- Supporting a new ARM platform: the Allwinner example (video, 2014)
- The DRM/KMS subsystem from a newbie’s point of view (2014)
- Device Tree for dummies (video, 2014)
- SMP bring up on ARM SoCs (2014)
- Common clock framework: how to use it (video, 2013)
- ARM support in the Linux kernel (video, 2013)
- Your new ARM SoC Linux support check-list (video from earlier session, 2013)
- IIO, a new subsystem (2012)
Embedded Linux
- Introduction to Yocto Project and OpenEmbedded (2017)
- Embedded Linux size reduction techniques (update, video, 2017)
- Understanding D-Bus (2016)
- Embedded Building a board farm: Continuous Integration and remote control (video, 2016)
- Anatomy of cross-compilation toolchains (video, 2016)
- Running UBI/UBIFS on MLC NAND (video, 2016)
- Buildroot vs. OpenEmbedded/Yocto Project: A Four Hands Discussion (video, 2016)
- GNU Autotools: a tutorial (video, 2016)
- Tutorial: learning the basics of Buildroot (video, 2015)
- Using Yocto Project for module manufacturers (2014)
- Buildroot: a deep dive into the core (2014)
- Buildroot – What’s new? (2014)
- Update on boot time reduction techniques, with figures (2014).
- Introduction to Buildroot (2013)
- Buildroot: a nice, simple and efficient embedded Linux build system (2012)
- Qt for non-graphical applications (2012)
- Using Buildroot for real projects (video, 2011)
- Embedded Linux introduction (2011)
Android
Legacy documents
These documents are not actively maintained any more. Therefore, they are likely to contain obsolete parts.
Android
Kernel
- Linux serial drivers
- New features in Linux 2.6 (since 2.6.10)
- Linux PCI drivers
- Block device drivers
- Network device drivers
- USB drivers
- What’s new in Linux 2.6?
Architecture specific documents
Embedded Linux system development
- Accessing hardware from user-space
- Using the POSIX API – Threads, realtime and IPC
- Embedded Linux optimizations
- Porting U-boot to new hardware
- The udev device manager
- The GRUB bootloader
- The blob bootloader
- Introduction to uClinux
- Java in embedded Linux
- Audio in embedded Linux systems
- Multimedia in embedded Linux systems
- Embedded Linux From Scratch… in 40 minutes!
- The Scratchbox development environment