Skip to content

jsramesh1990/Embedded_Linux_Yocto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 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