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
- Obtaining Buildroot
- Build system requirements
- Cross-compiler terminology: build, host, target, sysroot
- Selecting the appropriate 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
- Key decisions to make
- C library choice: glibc, uClibc, or musl?
- Init system: busybox vs. sysVinit vs. systemd
- Managing device nodes in /dev
- Selecting additional packages
- Understanding the build instructions
- Syntax of Kconfig (Config.in) files
- GNU Make features utilized by Buildroot Makefiles
- Style guide for Config.in and *.mk files
- Adding a simple Autotools-based package
- Differences between staging and target directories
- The necessity of host packages
- Expressing dependencies and optional features
- Support for languages other than C and build systems other than Autotools
- Debugging Makefiles
- Rebuilding a single package
- Analyzing build results
- Identifying time-consuming build steps
- Identifying disk space consumers
- Understanding why specific packages were 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 cross-compiler friendly
- Workflow for kernel developers
- How the kernel boots on an embedded system
- Modifying configuration options and adding patches
- Module loading mechanisms
- Finalizing the product
- Running daemons at startup
- Providing custom configuration files
- Available firmware update mechanisms
- Upgrading to a new Buildroot version
- Complying with open-source licenses
Requirements
- Participants must have compiled a kernel at least once for a standard desktop (non-embedded) Linux system.
- Understanding of the components that make up the Linux userspace on a desktop system.
- Ability to generate and apply patches.
- Knowledge of what GNU Make and Autotools are, as well as familiarity with other build systems.
- Experience maintaining at least one Linux package, either as an upstream author or within a traditional Linux desktop distribution, is ideal.
- Previous embedded development experience is not required; however, it does not substitute for the knowledge of traditional Linux desktops outlined above.
7 Hours