Last updated
Kod kursu
buildroot
Czas trwania
7 godzin
Remote: 1 or 2 days
Onsite: 1 day
Wymagania
- 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.
Opis
Buildroot to projekt o otwartym kodzie źródłowym, który zawiera skrypty tworzące zestaw narzędzi do kompilacji krzyżowej, konfigurowalny obraz głównego systemu plików i Linux jądro dla urządzeń wbudowanych. Podczas tego praktycznego kursu uczestnicy dowiedzą się, jak z niego korzystać:
-
Jak wybrać oprogramowanie, które trafi do głównego systemu plików.
Jak dodawać nowe pakiety i modyfikować istniejące.
Jak dodać obsługę nowych wbudowanych płyt.
Podczas kursu tworzone są bootowalne obrazy systemów plików. Kursy zdalne są dostarczane przy użyciu emulatora QEMU, podczas gdy w klasie możliwe jest użycie QEMU lub prawdziwych wbudowanych płyt wybranych przez trenera.
Inne projekty o podobnych celach obejmują projekt Yocto i OpenWRT. Skorzystaj z tych prezentacji, aby określić, który z nich jest właściwym wyborem dla Twoich potrzeb.
Plan Szkolenia
- 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
Opinie uczestników
We also do Consultancy!
We work with leading clients across a wide range of technologies!
Reach out for Project | Staff Enhancement | System Audit Consulting