Código del Curso
buildroot
Duración
7 horas (por lo general! 1 días incluidas las pausas)
Requerimientos
- 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.
Descripción General
Buildroot es un proyecto de código abierto que contiene scripts que producen una cadena de herramientas de compilación cruzada, una imagen de sistema de archivos raíz personalizable y un kernel de Linux para dispositivos integrados. Durante este curso práctico, los participantes aprenderán cómo usarlo:
- Cómo seleccionar el software que va al sistema de archivos raíz.
- Cómo agregar nuevos paquetes y modificar los existentes.
- Cómo agregar soporte para nuevas placas integradas.
Durante el curso, se generarán imágenes de arranque del sistema de archivos. Los cursos remotos se imparten usando el emulador QEMU , mientras que en el aula es posible usar QEMU o tableros integrados reales de la elección del entrenador.
Otros proyectos con objetivos similares incluyen el proyecto Yocto y OpenWRT. Utilice estas presentaciones para determinar cuál es la opción correcta para sus necesidades.
Machine Translated
Programa del Curso
- 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
Promociones
-
2021-05-26 2021-05-26Bilbao