Last updated
Kurskode
yp1
Varighet
28 timer (vanligvis 4 dag inkludert pauser)
Krav
Prerequisites
- Basic familiarity with using a GNU/Linux system (e.g. Ubuntu) as an end user in user space
- Basic familiarity with a command line shell
- Basic knowledge of user/kernel space programming with GNU/Linux
- Intermediate C programming knowledge
- You should have attended Embedded GNU/Linux Systems Architecture (5 days) (strongly recommended!) unless you are already familiar with the material presented in those trainings.
- You actually need to have experience with Embedded GNU/Linux (kernel, userspace, root file system, tools) to follow the Yocto training.
- It might be helpful if you attended Embedded GNU/Linux Device Drivers and Kernel Internals (5 days), but that’s not really a prerequisite. It’s sufficient to know how to build the GNU/Linux kernel, kernel drivers in/out of tree and the fdt from the kernel side of things to follow the Yocto training.
Oversikt
Beskrivelse
Denne fire dagers trening kombinerer teori med praktiske øvelser for å introdusere Yocto Project. De svarer ofte på spørsmål som:
-
Er det virkelig nødvendig å bruke en annen versjon av verktøyskjeden/biblioteker/pakker for hvert og hvert GNU/Linux prosjekt og en topp av det for å følge en annen arbeidsflyt?
Kan du sikre at utviklingsmiljøet er identisk for alle utviklere/leverandører og at du fortsatt kan produsere identiske bygninger som i dag i 10+ år fra nå av?
Kan YP hjelpe deg med å finne ut under hvilke programvare lisenser pakker du bruker er lisensiert?
Hands-on-sessjoner utføres på målhardware (f.eks. Beagle Bone Black Rev. I tillegg til http://beagleboard.org/BLACK Etter treningen vil du være i stand til å laste ned en dokerbilde med Ubuntu 14.x og alle avhengigheter forhåndsinstallert pluss eksemplene for å jobbe med kursmaterialet i dine egne laboratorier. Vær oppmerksom på at dette ikke er en introduksjonskurs for Embedded GNU/Linux. Du bør allerede vite hvordan Embedded GNU/Linux fungerer og hvordan du konfigurerer/bygger GNU/Linux kernel og kernel drivere.
Hvem bør delta?
Du bruker allerede GNU/Linux for dine prosjekter og har sannsynligvis hørt om Yocto Project, men våget ikke å ha en nærmere titt på det, eller hadde vanskeligheter med å bruke det. Du vet ikke om og hvordan din daglige arbeidsflyt kan plasseres i YP og generelt finner YP ganske komplisert. Hvorfor trenger vi alt dette siden opp til å vite at alt var (forutsatt) mye enklere? Etter trening bør du være i stand til å bestemme om du trenger YP eller ikke. Workshopen er rettet mot programvare, utvikling, systemingeniører, tester, administratorer, ingeniører og andre parter som er interessert i YP, med en solid kunnskap om Embedded GNU/Linux.
Machine Translated
Kursplan
Course Outline
Introduction
- history of Unix/Linux, licenses, standards, work with free software, finding help, spelunking, the Unix philosophy
Embedded Specifics
- Linux on the desktop compared to Linux in an embedded system, cross-/native toolchains, pre-built toolchains, build systems, C libraries,...
Eval Board
- How does it boot?, See it booting
Yocto Introduction
- What is Yocto? Why use the YP? What is the YP?, Poky, BitBake, OE-Core, Metadata
The YP Autobuilder
- What is the YP Autobuilder?, Docker container (pull, launch container)
The YP Workflow
- Intro
- Workflow, OE architecture
- Configuration (User, Metadata, Machine, Distribution Policy)
- Sources
- Build (Source fetching, Patching, Configure/Compile/Install, Pseudo, Examples of recipes, Output analysis/Packaging, Image Generation, SDK Generation)
- Customizing Images (Intro, local.conf, IMAGE_FEATURES, custom .bb files, custom packagegroups)
BitBake
- History
- Syntax
- Debugging (debug level, find recipes/images/packagegroups, BitBake environment/tasks/logging, force build/specific task, cleansstate, invalidate stamp, devshell, dependency explorer, kill all BitBake instances, BitBake graphical wrapper)
Layers
- Intro, bitbake-layers tool, yocto-layer tool
BSP
- Intro, System Development Workflow, BSP Developer’s Guide (bsp-tool)
Kernel
- Intro, System Development Workflow, Kernel Development Manual (defconfig, defconfig + configuration fragment, in tree kmod, out of tree kmod, fdt,…)
Application Development Toolkit
- Intro, Cross-Development Toolchain, Sysroot, ADT- Eclipse Yocto Plug-in, The QEMU Emulator, User Space Tools
- Installing ADT & Toolchains
- Using a Cross-Toolchain tarball (Intro, Building/Installing the Cross-Toolchain tarball, Cross-Toolchain + Makefile/Autotools/Autotools lib + App, recipes)
- Using the ADT Installer (Intro, Web Server, Build image + ADT installer, Configure + run ADT installer, add ADT installer to webserver, ADT installer on host)
Eclipse
- Intro, Application Development Workflow
- Working with Eclipse (rootfs features, kernel + fdt, rootfs, install JDK, install Eclipse, configure Eclipse, install Yocto Plugin, Configure the Yocto Plugin, Create Autotooled Project, Configuring the Cross-Toolchains, Build the Project)
Debugging
- Intro, gdb, gdb remote debugging, (gdb remote) Debugging with Eclipse, (remote) Run from Eclipse
Profiling/Tracing
- Intro, perf, gprof, gcov, strace, ftrace, systemtap, oprofile, LTTng + Eclipse (data visualization)
Package Management
- Working with Packages, IPK, creating a package feed, installing a package with opkg on the target
Licensing
- Intro, Add custom license, Open Source License Compliance
Devtool
- Intro, devtool, real-world showcase meta-cfengine
Except where otherwise noted content and this course outline are licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).