Awesome Yocto Project
It’s not an embedded Linux Distribution, It creates a custom one for you.
Contents
Books
- Embedded Linux Development using Yocto Projects (2nd edition, 2017) - Short 162 pages long read.
- Embedded Linux Development Using Yocto Project Cookbook (2nd edition, 2018) - 456 pages long read.
- Embedded Linux Development with Yocto Project (2014) - Short 142 pages long read.
- Embedded Linux Projects Using Yocto Project Cookbook (2015) - 324 pages long read.
- Embedded Linux Systems with the Yocto Project (2016) - 480 pages long read.
- Learning Embedded Linux Using the Yocto Project (2015) - 334 pages long read.
- Mastering Embedded Linux Programming: Create fast and reliable embedded solutions with Linux 5.4 and the Yocto Project 3.1 (3rd edition, 2021)
- Yocto for BeagleBone Black (2015) - Short 144 pages long read specific to the BeagleBone Black.
- Yocto for Raspberry Pi (2016) - Short 214 pages long read specific to the Raspberry Pi.
Development tools
- autobuilder-worker-prereq-tests - Checks if all needed configuration is present on new autobuilder workers.
- bitbake-prserv-tool.
- bitbake-whatchanged - Print what will be done between the current and last builds.
- buildhistory-collect-srcrevs - Collects recorded SRCREV values from buildhistory and reports on them.
- buildhistory-diff - Reports significant differences in the buildhistory repository since a specific revision.
- buildstats-diff - Compares buildstats from two different builds.
- combo-layer.
- combo-layer-hook-default.sh.
- contrib
- bbperf/bb-matrix-plot.sh - Generates tree views from .dat files generated with bb-matrix.sh.
- bbperf/bb-matrix.sh - Generates .dat file with image build statistics (core-image-sato) considering all combinations of BB_RANGE and PM_RANGE values.
- bbperf/buildstats-plot.sh - Visualizes data generated with buildstats.sh .
- bbperf/buildstats.sh - Generates statstics about builds.
- bbvars.py - Checks for undocumented variables.
- build-perf-test-wrapper.sh - Initializes build environment, runs oe-build-perf-test and archives the results.
- ddimage - Writes an image to a device.
- devtools-stress - Stress tests devtools.
- dialog-power-control.
- documentation-audit.sh - Performs an audit of which packages provide documentation and which are missing -doc packages.
- graph-tool.
- list-packageconfig-flags.py - List info w.r.t. PACKAGECONFIG flags and recipes.
- oe-build-perf-report-email.py - Sends build performance test report via email.
- patchreview.py.
- patchtest.sh.
- serdevtry.
- test_build_time.sh - Regression test build performance.
- uncovered - Finds python modules uncovered by oe-seltest.
- verify-homepage - Verifies HOMEPAGE values for all recipes in the current configuration.
- cp-noerror - Copies directories recursively.
- create-pull-request - Prepare a series of patches and a cover letter in an appropriate and consistent format for submission to Open Embedded and The Yocto Project, as well as to related projects and layers.
- crosstap - Builds a systemtap script for a given image, kernel.
- devtool - OpenEmbedded Development tool.
- kas - Setup tool for bitbake based projects.
- oe-build-perf-report - Generates build performance test results.
- oe-build-perf-test - Tests build performance.
- oe-check-sstate - Queries which tasks will be restored from sstate.
- oe-depends-dot.
- oe-git-archive - Commits data to git and pushes upstream.
- oe-git-proxy.
- oe-pkgdata-util.
- oe-publish-sdk.
- oe-pylint - Runs pylint3 against our common python module spaces and print a report of potential issues (for Yocto Project development).
- oe-run-native.
- oe-selftest - Executes automated tests for different bitbake tools (for Yocto Project development).
- oe-test - OpenEmbedded test tool (For Yocto Project development).
- oe-trim-schemas - Removes unneeded schema locale translations from gconf schema files.
- opkg-query-helper.py - opkg query helper utility.
- pybootchartgui - Visualizes and analyzes the GNU/Linux boot process.
- pythondeps - Determines dependencies of python scripts or available python modules in a search path.
- recipetool - Creates recipes.
- relocate_sdk.py - Called by the SDK installer script, replaces the dynamic loader path in all binaries and also fixes the SYSDIR paths/lengths and the location of ld.so.cache in the dynamic loader binary.
- resulttool - Manipulates (merge, etc.) OEQA test result json files.
- rootfs_rpm-extract-postinst.awk.
- rpm2cpio.sh.
- runqemu - Handles running OE images standalone with QEMU.
- runqemu-addptable2image - Adds a partion table to an ext2 image file.
- runqemu-export-rootfs.
- runqemu-extract-sdk - Extracts an SDK image tarball using pseudo, and stores the pseudo database in var/pseudo within the rootfs.
- runqemu-gen-tapdevs - Creates a “bank” of tap network devices that can be used by the runqemu script.
- runqemu-ifdown - QEMU network configuration script to bring down tap devices.
- runqemu-ifup - QEMU network interface configuration script to bring up single tap device (alternative to runqemu-gen-tapdevs).
- send-error-report - Sends an error report (if the report-error class was enabled) to a remote server.
- send-pull-request - Sends a patch series prepared by the create-pull-request script to Open Embedded and The Yocto Project, as well as to related projects and layers.
- SPDX Online Tool - Upload and parse SPDX documents for validation, comparison and conversion and search SPDX license list.
- sstate-cache-management.sh - sstate cache management utilities to e.g. remove dublicated files.
- sstate-diff-machines.sh - Compares sstate checksums between MACHINES.
- sstate-sysroot-cruft.sh - Used to find files installed in sysroot which are not tracked by sstate manifest.
- sysroot-relativelinks.py - Takes a sysroot directory and turns all the abolute symlinks and turns them into relative ones such that the sysroot is usable within another system.
- task-time - Reports time consumed for one or more task.
- test-reexec - Tests w.r.t. task re-execution.
- test-remote-image - Tests public autobuilder images on remote hardware.
- tiny
- dirsize.py - Displays details of the root filesystem size, broken up by directory.
- ksize.py - Displays details of the kernel build size.
- ksum - Generates a combined summary of vmlinux and module sizes for a built kernel, as a quick tool for comparing the overall effects of systemic tinification changes.
- verify-bashisms - Verifies bash code.
- wic - Generates bootable images.
- yocto-check-layer - Checks layer in a potentially contaminated environment.
- yocto-check-layer-wrapper - Checks layer in a clean environment.
Documentation
Intro
Development Manuals / How Tos
- Yocto Project Overview and Concepts Manual
- Yocto Project Development Tasks Manual
- Yocto Project Board Support Package (BSP) Developer’s Guide
- Yocto Project Profiling and Tracing Manual
- Yocto Project Linux Kernel Development Manual
- Yocto Project Application Development and the Extensible Software Development Kit (eSDK)
Tools Manuals
Reference Manuals
Misc
Online Courses
- Raspberry Pi with embedded Linux made by Yocto (Udemy).
- Yocto Embedded Linux with the Raspberry Pi (Udemy).
Layers
- OpenEmbedded Layers Index.
- OpenEmbedded Layer Index - Distros.
- OpenEmbedded Layer Index - Classes.
- OpenEmbedded Layers Index - Machines.
Services
- CVE Services API - The CVE Services API supports automation tooling for the CVE Program.
- RunSafe’s Alkemist - Remotely deployable binary runtime application self-protection (RASP) and Moving Target Defense (MTD) methods to immunize Yocto distributions.
Presentations
2024
- The Cyber Security Act: Navigating Its Impact on Yocto-Based Products (Embedded Open Source Summit) video
- The Cyber Resilience Act and Yocto based devices video
2023
- Yocto Project/OpenEmbedded Meets Security (Embedded Open Source Summit) video
2022
- Detecting and fixing CVE security issues in yocto based embedded Linux distribution (Yocto Project Summit) video
2018
- Buildroot vs Yocto: Differences for Your Daily Job (Embedded Linux Conference Europe) slides / video.
- Building Container Images with OpenEmbedded and the Yocto Project slides / video - About build bootstrap containers, Alpine-like container images, application container images and nested application sandboxes.
- Debian and Yocto: State of the Art (Embedded Linux Conference) slides / video - About nneta-elbe, isar, meta-debian and meta-eid.
- Living on master: Using Yocto Project, Jenkins and LAVA for a rolling release (Embedded Linux Conference) slides / video.
- OpenEmbedded/Yocto on RISC-V - New Kid on the Block (Embedded Linux Conference) slides / video.
- Real-World Yocto: Getting the Most out of Your Build System slides / video.
- poky-tiny and Beyond, or Trying to put the Yocto in Yocto Project (Embedded Linux Conference) slides.
- Creating Your Own Tiny Linux Distribution Using Yocto: Keeping it Small With Poky-Tiny slides / video - About the poky-tiny and petalinux-tiny distribution based images which are small and boot fast.
- Why the Yocto Project for My IoT Project slides / video.
- Working with the Linux Kernel in the Yocto Project (Embedded Linux Conference) slides / video.
Misc
- Yocto Project on Vimeo - Playlist with very basic, short, older screencasts about workflow, toaster and hob.
Security
Trainings
2019
- A practical guide to BitBake blog post / companion code.
2018
- Workshop: Yocto Project, an automatic generator of embedded linux distributions slides / companion code - Shows ow to use the CROPS poky container.