Buildroot: a Firmware Generator for Embedded Systems ( buildroot | 7 hours )
- The participant must have built a kernel at least once for a traditional desktop (non-embedded) Linux system.
- Knows what components the Linux userspace on a desktop system is composed of.
- Knows how to generate and use patches.
- Must be able to explain what is GNU Make, Autotools, what other build systems exist.
- Ideally, maintains at least one Linux package, either as an upstream author, or in any traditional Linux desktop distribution.
- Prior experience with embedded development is not required, and is not a substitute for the knowledge about traditional Linux desktops specified above.
Buildroot is an open-source project that contains scripts that produce a cross-compilation toolchain, a customizable root filesystem image, and a Linux kernel for embedded devices. During this practical course, participants will learn how to use it:
- How to select software that goes into the root filesystem.
- How to add new packages and modify existing ones.
- How to add support for new embedded boards.
During the course, bootable filesystem images will be produced. Remote courses are delivered using the QEMU emulator, while in the classroom it is possible to use either QEMU or real embedded boards of the trainer's choice.
Other projects with similar goals include the Yocto project and OpenWRT. Please use these presentations to determine which one is the right choice for your needs.
- Getting started
- Obtaining Buildroot
- Build system requirements
- Cross-compiler terminology: build, host, target, sysroot
- Choosing the correct target
- Building a minimal embedded system and booting it
- Contents of the resulting filesystem image
- Parallel builds
- Full and partial rebuilds
- Design goals of Buildroot
- Choices to be made
- C library: glibc or uClibc or musl?
- Init system: busybox vs sysVinit vs systemd
- Managing device nodes in /dev
- Selecting other packages
- Understanding the build instructions
- Syntax of Kconfig (Confog.in) files
- Features of GNU Make used by Buidroot Makefiles
- Style guide for Config.in and *.mk files
- How to add a simple Autotools-based package
- The difference between staging and target directories
- The need for host packages
- How to express dependencies and optional features
- Support for languages other than C and build systems other than Autotools
- Debugging Makefiles
- Rebuilding a single package
- Analyzing the build results
- What took so much build time?
- What took so much disk space?
- Why has this package been built?
- Organizing external package trees
- Workflow for application developers
- How to use a local source directory
- Overriding build instructions
- Debugging your application
- Speeding up rebuilds
- Viewing build logs
- Dealing with common cross-compilation issues
- How to write your own software so that it is friendly to cross-compilers
- Workflow for kernel developers
- How the kernel boots on an embedded system
- Changing configuration options and adding patches
- Module loading mechanisms
- Making a finished product
- Running daemons at startup
- Providing custom configuration files
- Available firmware update mechanisms
- Upgrading to a new Buildroot version
- Complying with open-source licenses
United Arab Emirates - Buildroot: a Firmware Generator for Embedded Systems
Qatar - Buildroot: a Firmware Generator for Embedded Systems
Egypt - Buildroot: a Firmware Generator for Embedded Systems
Saudi Arabia - Buildroot: a Firmware Generator for Embedded Systems
South Africa - Buildroot: a Firmware Generator for Embedded Systems
Brasil - Buildroot: a Firmware Generator for Embedded Systems
Canada - Buildroot: a Firmware Generator for Embedded Systems
中国 - Buildroot: a Firmware Generator for Embedded Systems
香港 - Buildroot: a Firmware Generator for Embedded Systems
澳門 - Buildroot: a Firmware Generator for Embedded Systems
台灣 - Buildroot: a Firmware Generator for Embedded Systems
USA - Buildroot: a Firmware Generator for Embedded Systems
Österreich - Buildroot: a Firmware Generator for Embedded Systems
Schweiz - Buildroot: a Firmware Generator for Embedded Systems
Deutschland - Buildroot: a Firmware Generator for Embedded Systems
Czech Republic - Buildroot: a Firmware Generator for Embedded Systems
Denmark - Buildroot: a Firmware Generator for Embedded Systems
Estonia - Buildroot: a Firmware Generator for Embedded Systems
Finland - Buildroot: a Firmware Generator for Embedded Systems
Greece - Buildroot: a Firmware Generator for Embedded Systems
Magyarország - Buildroot: a Firmware Generator for Embedded Systems
Ireland - Buildroot: a Firmware Generator for Embedded Systems
Israel - Buildroot: a Firmware Generator for Embedded Systems
Luxembourg - Buildroot: a Firmware Generator for Embedded Systems
Latvia - Buildroot: a Firmware Generator for Embedded Systems
España - Buildroot: a Firmware Generator for Embedded Systems
Italia - Buildroot: a Firmware Generator for Embedded Systems
Lithuania - Buildroot: a Firmware Generator for Embedded Systems
Nederland - Buildroot: a Firmware Generator for Embedded Systems
Norway - Buildroot: a Firmware Generator for Embedded Systems
Portugal - Buildroot: a Firmware Generator for Embedded Systems
România - Buildroot: a Firmware Generator for Embedded Systems
Sverige - Buildroot: a Firmware Generator for Embedded Systems
Türkiye - Buildroot: a Firmware Generator for Embedded Systems
Malta - Buildroot: a Firmware Generator for Embedded Systems
Belgique - Buildroot: a Firmware Generator for Embedded Systems
France - Buildroot: a Firmware Generator for Embedded Systems
日本 - Buildroot: a Firmware Generator for Embedded Systems
Australia - Buildroot: a Firmware Generator for Embedded Systems
Malaysia - Buildroot: a Firmware Generator for Embedded Systems
New Zealand - Buildroot: a Firmware Generator for Embedded Systems
Philippines - Buildroot: a Firmware Generator for Embedded Systems
Singapore - Buildroot: a Firmware Generator for Embedded Systems
Thailand - Buildroot: a Firmware Generator for Embedded Systems
Vietnam - Buildroot: a Firmware Generator for Embedded Systems
India - Buildroot: a Firmware Generator for Embedded Systems
Argentina - Buildroot: a Firmware Generator for Embedded Systems
Chile - Buildroot: a Firmware Generator for Embedded Systems
Costa Rica - Buildroot: a Firmware Generator for Embedded Systems
Ecuador - Buildroot: a Firmware Generator for Embedded Systems
Guatemala - Buildroot: a Firmware Generator for Embedded Systems
Colombia - Buildroot: a Firmware Generator for Embedded Systems
México - Buildroot: a Firmware Generator for Embedded Systems
Panama - Buildroot: a Firmware Generator for Embedded Systems
Peru - Buildroot: a Firmware Generator for Embedded Systems
Uruguay - Buildroot: a Firmware Generator for Embedded Systems
Venezuela - Buildroot: a Firmware Generator for Embedded Systems
Polska - Course Outline Buildroot: a Firmware Generator for Embedded Systems
United Kingdom - Buildroot: a Firmware Generator for Embedded Systems
South Korea - Buildroot: a Firmware Generator for Embedded Systems
Pakistan - Buildroot: a Firmware Generator for Embedded Systems
Sri Lanka - Buildroot: a Firmware Generator for Embedded Systems
Bulgaria - Buildroot: a Firmware Generator for Embedded Systems
Bolivia - Buildroot: a Firmware Generator for Embedded Systems
Indonesia - Buildroot: a Firmware Generator for Embedded Systems
Kazakhstan - Buildroot: a Firmware Generator for Embedded Systems
Moldova - Buildroot: a Firmware Generator for Embedded Systems
Morocco - Buildroot: a Firmware Generator for Embedded Systems
Tunisia - Buildroot: a Firmware Generator for Embedded Systems
Kuwait - Buildroot: a Firmware Generator for Embedded Systems
Oman - Buildroot: a Firmware Generator for Embedded Systems
Slovakia - Buildroot: a Firmware Generator for Embedded Systems
Kenya - Buildroot: a Firmware Generator for Embedded Systems
Nigeria - Buildroot: a Firmware Generator for Embedded Systems
Botswana - Buildroot: a Firmware Generator for Embedded Systems
Slovenia - Buildroot: a Firmware Generator for Embedded Systems
Croatia - Buildroot: a Firmware Generator for Embedded Systems
Serbia - Buildroot: a Firmware Generator for Embedded Systems
Bhutan - Buildroot: a Firmware Generator for Embedded Systems
Nepal - Buildroot: a Firmware Generator for Embedded Systems