Skip to content

jsramesh1990/Embedded-Linux-Yocto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Embedded Linux Yocto

Embedded Linux and Yocto learning materials

Overview

This repository provides a scalable enterprise-grade Embedded Linux platform built using the Yocto Project.

The goal of this platform is to support multiple SoC vendors and hardware boards under a unified architecture with:

  • Common BSP workflows
  • CI/CD automation
  • Reproducible builds
  • OTA update support
  • Secure boot integration
  • Manufacturing flashing workflows
  • Automated validation
  • Long-term maintainability

The platform is designed for:

  • Industrial systems
  • Robotics
  • AI edge devices
  • Automotive gateways
  • Medical devices
  • IoT gateways
  • Multimedia systems
  • FPGA platforms

Supported Platforms

ARM / ARM64 Boards

Raspberry Pi Family

Supported:

  • Raspberry Pi 4
  • Raspberry Pi 5
  • CM4
  • CM5

Main Layer:

  • meta-raspberrypi

Features:

  • SD/eMMC boot
  • USB boot
  • Wayland/Weston
  • Camera support
  • GPU acceleration
  • OTA support

NXP i.MX Boards

Supported:

  • i.MX6
  • i.MX7
  • i.MX8M
  • i.MX8MP
  • i.MX93

Main Layer:

  • meta-freescale

Features:

  • Secure boot
  • GPU/VPU acceleration
  • AI acceleration
  • Industrial BSP support
  • eMMC/NAND/NVMe support

Texas Instruments Boards

Supported:

  • AM62x
  • AM64x
  • AM65x
  • J721E
  • BeagleBone AI

Main Layer:

  • meta-ti

Features:

  • MCU+Linux architecture
  • IPC support
  • Industrial Ethernet
  • Edge AI acceleration
  • Vision processing

NVIDIA Jetson Boards

Supported:

  • Jetson Nano
  • Xavier NX
  • AGX Xavier
  • Orin NX
  • AGX Orin

Main Layer:

  • meta-tegra

Features:

  • CUDA
  • TensorRT
  • AI acceleration
  • Multimedia pipelines
  • GPU compute

Rockchip Boards

Supported:

  • RK3566
  • RK3568
  • RK3588

Main Layers:

  • meta-rockchip

Features:

  • Multimedia acceleration
  • NPU support
  • HDMI/MIPI pipelines
  • NVMe support

Xilinx / AMD FPGA Boards

Supported:

  • ZCU102
  • KV260
  • VCK190
  • ZedBoard

Main Layers:

  • meta-xilinx

Features:

  • FPGA bitstream integration
  • Vitis AI
  • Hardware accelerators
  • Secure boot
  • JTAG workflows

STM32 MPU Boards

Supported:

  • STM32MP157
  • STM32MP13

Main Layer:

  • meta-st-stm32mp

Features:

  • OP-TEE
  • Cortex-M co-processor
  • Industrial control
  • Low power systems

Qualcomm Boards

Supported:

  • RB5
  • RB3 Gen2
  • DragonBoard

Main Layer:

  • meta-qcom

Features:

  • DSP acceleration
  • AI acceleration
  • Camera pipelines
  • Android-style boot flows

RISC-V Boards

Supported:

  • VisionFive 2
  • HiFive Unmatched
  • Milk-V
  • Banana Pi RISC-V

Main Layers:

  • meta-riscv
  • vendor BSP layers

Features:

  • Open hardware ecosystem
  • OpenSBI support
  • Upstream Linux focus

Toradex Platforms

Supported:

  • Verdin iMX8MP
  • Verdin AM62
  • Apalis iMX8
  • Colibri iMX6

Main Layers:

  • meta-toradex-bsp-common
  • meta-toradex-nxp
  • meta-toradex-ti

Features:

  • Torizon OS
  • OTA support
  • Industrial BSPs
  • Container workflows

Repository Structure

repo/
├── docs/
├── scripts/
├── ci/
├── kas/
├── build-configs/
├── meta-company-common/
├── meta-company-security/
├── meta-company-connectivity/
├── meta-company-gui/
├── meta-company-ai/
├── meta-company-industrial/
├── meta-company-ota/
├── meta-company-virtualization/
├── meta-company-robotics/
├── vendor/
│   ├── meta-raspberrypi/
│   ├── meta-freescale/
│   ├── meta-ti/
│   ├── meta-tegra/
│   ├── meta-xilinx/
│   ├── meta-qcom/
│   ├── meta-st-stm32mp/
│   ├── meta-rockchip/
│   └── meta-riscv/
└── tools/

Build System Architecture

Core Technologies

Component Purpose
Yocto Project Build framework
OpenEmbedded Metadata ecosystem
BitBake Task execution
kas Build orchestration
Docker/Podman Build containers
GitLab/GitHub Actions CI/CD
RAUC/Mender OTA updates
labgrid/LAVA Hardware testing

Build Environment Setup

Host Requirements

Recommended:

  • Ubuntu 22.04 LTS
  • 16+ CPU cores
  • 64GB RAM
  • 500GB SSD

Install Dependencies

sudo apt install gawk wget git diffstat unzip texinfo \
gcc build-essential chrpath socat cpio python3 python3-pip \
python3-pexpect xz-utils debianutils iputils-ping \
python3-git python3-jinja2 libsdl1.2-dev xterm \
zstd liblz4-tool

Repository Initialization

Clone Repository

git clone <repo-url>
cd repo

Sync Vendor Layers

./scripts/sync-layers.sh

Initialize Environment

source scripts/setup-env.sh

Using kas

Build Raspberry Pi Image

kas build kas/raspberrypi/rpi5.yml

Build NXP Image

kas build kas/nxp/imx8mp.yml

Build TI Image

kas build kas/ti/am62.yml

Build Jetson Image

kas build kas/nvidia/orin.yml

Image Types

Image Purpose
core-image-minimal Minimal Linux
core-image-full-cmdline CLI systems
core-image-weston Wayland GUI
multimedia-image Multimedia systems
ai-image AI edge systems
industrial-image Industrial deployments
factory-image Manufacturing flashing

Flashing Workflows

Supported Flash Methods

Method Platforms
SD card Raspberry Pi, RISC-V
eMMC flashing NXP, TI, Toradex
USB recovery STM32, Toradex
Fastboot Qualcomm
SDK Manager NVIDIA
JTAG Xilinx
Network boot All major platforms

Verification Framework

Validation Levels

Boot Validation

Checks:

  • UART logs
  • Bootloader
  • Kernel boot
  • Device tree
  • RootFS mount

Peripheral Validation

Checks:

  • Ethernet
  • Wi-Fi
  • Bluetooth
  • USB
  • CAN
  • SPI
  • I2C
  • GPIO
  • UART

Graphics Validation

Checks:

  • Weston
  • DRM/KMS
  • OpenGL ES
  • Vulkan
  • HDMI/MIPI display

AI Validation

Checks:

  • TensorRT
  • Vitis AI
  • DSP/NPU acceleration
  • ONNX Runtime

Security Validation

Checks:

  • Secure boot
  • OP-TEE
  • Signed images
  • TPM integration
  • Encrypted storage

OTA Validation

Checks:

  • A/B updates
  • Rollback
  • Image integrity
  • Partition switching

CI/CD Architecture

Pipeline Flow

Git Push
   ↓
Static Analysis
   ↓
kas Build
   ↓
SPDX/SBOM Generation
   ↓
Artifact Packaging
   ↓
Flash Hardware
   ↓
UART Capture
   ↓
Hardware Validation
   ↓
OTA Validation
   ↓
Release Publish

CI Features

Supported:

  • Incremental builds
  • Shared sstate cache
  • Shared downloads cache
  • Artifact retention
  • Parallel hardware testing
  • Multi-board matrix builds
  • SBOM generation
  • CVE scanning

Release Management

Release Types

Release Purpose
Development Daily builds
QA Validation builds
Release Candidate Pre-production
Production Stable release
LTS Long-term support

OTA Architecture

Supported Frameworks:

  • RAUC
  • Mender
  • OSTree
  • Aktualizr

Features:

  • A/B partitions
  • Rollback
  • Signed bundles
  • Delta updates
  • Fleet management

Security Features

Supported Security Components

Feature Support
Secure Boot Yes
TPM Yes
OP-TEE Yes
dm-verity Yes
SELinux Optional
Disk Encryption Yes
Signed OTA Yes

Manufacturing Support

Factory Workflow

Factory PC
   ↓
Recovery Mode
   ↓
Flash Device
   ↓
Run Validation
   ↓
Generate Device Certificate
   ↓
Store Manufacturing Logs

Hardware Lab Infrastructure

Recommended Lab Setup

Component Recommendation
Power control USB relay/PDU
UART capture Serial servers
Flash automation labgrid
Test orchestration LAVA
Thermal testing Controlled chamber
Network isolation VLAN setup

Development Best Practices

DO

  • Use kas for reproducible builds
  • Keep vendor layers unmodified
  • Create custom company layers
  • Enable UART on all boards
  • Automate validation
  • Version lock all layers
  • Use shared sstate cache
  • Maintain release manifests

DON'T

  • Modify vendor BSP directly
  • Hardcode machine-specific hacks
  • Skip secure boot validation
  • Ignore OTA rollback testing
  • Use SD cards for production systems

Common Development Workflow

Feature Development
        ↓
Local Build
        ↓
Static Validation
        ↓
Hardware Flash
        ↓
Peripheral Tests
        ↓
CI Validation
        ↓
OTA Validation
        ↓
Release Tagging


Future Roadmap

Planned additions:

  • Yocto Scarthgap LTS support
  • Full SBOM automation
  • CVE dashboards
  • Fleet OTA management
  • Secure enclave integration
  • Kubernetes at edge
  • AI benchmarking framework
  • Rust embedded support
  • Zephyr co-processor integration

Recommended Tools

Build Tools

  • kas
  • BitBake
  • repo
  • Docker
  • Podman

Validation Tools

  • labgrid
  • LAVA
  • pytest
  • Robot Framework

Debug Tools

  • UART adapters
  • JTAG probes
  • OpenOCD
  • Wireshark
  • perf
  • trace-cmd

Contribution Guidelines

Requirements

Before submitting:

  • Run lint checks
  • Validate on hardware
  • Provide test logs
  • Update documentation
  • Include release notes

About

This repository provides a scalable enterprise-grade Embedded Linux platform built using the Yocto Project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors