Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
- Getting Started
- Acquiring Buildroot
- Build system prerequisites
- Cross-compiler terminology: build, host, target, and sysroot
- Selecting the appropriate target
- Constructing a minimal embedded system and booting it
- Exploring the contents of the resulting filesystem image
- Utilizing parallel builds
- Executing full and partial rebuilds
- Design objectives of Buildroot
- Key Decisions
- Choosing the C library: glibc, uClibc, or musl?
- Selecting the init system: busybox vs. sysVinit vs. systemd
- Managing device nodes in /dev
- Choosing additional packages
- Understanding Build Instructions
- Syntax of Kconfig (Config.in) files
- GNU Make features utilized by Buildroot Makefiles
- Style guide for Config.in and *.mk files
- Incorporating a simple Autotools-based package
- Distinguishing between staging and target directories
- The necessity of host packages
- Expressing dependencies and optional features
- Support for languages other than C and build systems beyond Autotools
- Debugging Makefiles
- Rebuilding a single package
- Analyzing Build Results
- Identifying sources of excessive build time
- Identifying sources of excessive disk space usage
- Determining why a specific package was built
- Organizing external package trees
- Workflow for Application Developers
- Using a local source directory
- Overriding build instructions
- Debugging your application
- Accelerating rebuilds
- Viewing build logs
- Addressing Common Cross-Compilation Issues
- Writing software that is compatible with cross-compilers
- Workflow for Kernel Developers
- Understanding how the kernel boots on an embedded system
- Modifying configuration options and applying patches
- Mechanisms for module loading
- Finalizing the Product
- Configuring daemons to run at startup
- Providing custom configuration files
- Available firmware update mechanisms
- Upgrading to a new version of Buildroot
- Complying with open-source licenses
Requirements
- Participants must have compiled a kernel at least once for a traditional desktop (non-embedded) Linux system.
- Understanding of the components that make up the Linux userspace on a desktop system.
- Knowledge of how to generate and apply patches.
- Ability to explain GNU Make, Autotools, and identify other existing build systems.
- Ideally, the participant maintains at least one Linux package, either as an upstream author or within a traditional Linux desktop distribution.
- Previous experience with embedded development is not required and does not substitute for the knowledge of traditional Linux desktops outlined above.
7 Hours