SlideShare a Scribd company logo
Yocto meta-acrn Layer Introduction
Naveen Saini
Naveen Saini <naveen.kumar.saini@intel.com>
05/13/2020
Agenda
• Yocto Project Introduction
• Meta-acrn Objective & Internals
• Configure & Build
• Booting ACRN
• Useful links
Yocto Project
Yocto Project
➢ Linux Foundation collaborative open source project
➢ Standard tools and process for building embedded Linux
➢ Based on the well-established OpenEmbedded Project
➢ It’s not a Linux distribution!
➢ Core components: bitbake, oe-core, Poky distro, BSP layers
Yocto Project
➢ Development model of the Yocto Project is Layer model.
➢ Layers are repositories that contain related sets of instructions that tell the
build system what to do.
➢ Layers can be BSP, GUI, distro configuration, middleware or application
layers.
➢ https://git.yoctoproject.org/
Concepts
➢Layer (meta-*)
➢Recipes (.bb)
➢Configuration files (.conf)
➢Classes (.bbclass)
➢Append files (.bbappend)
Yocto Project
The Yocto Project Development Environment
Meta-acrn Layer
Meta-acrn
➢Integrate ACRN hypervisor with the yocto project.
➢Provides kernel support
➢Linux-intel-lts
➢Linux-intel-rt
➢Acrn-kernel
➢Maintains additional acrn specific kernel configuration for both Service OS
and User OS
Meta-acrn
➢Distro configurations
➢acrn-demo-sos.conf for Service OS
➢acrn-demo-uos.conf for User OS
➢Provides customized image configuration for ACRN
➢acrn-image-base (small footprint, non GUI)
➢acrn-image-sato(GUI with X11)
➢acrn-image-Weston (GUI with Weston)
➢Additional patches for ACRN
➢Network and systemd
Meta-acrn Dependencies
➢ Meta-acrn has dependency on meta-intel layer too besides Core components.
➢ MACHINE configuration ie. intel-corei7-64 and intel-skylake-64
➢ Common Kernel configuration for IA
➢ Media software stack
➢ Carry few other recipe components, to remove dependencies on other layers
➢ Python-kconfiglib
➢ Numactl
Configure & Build
How to build Service OS
➢Clone source repos
$ git clone http://git.yoctoproject.org/git/poky
$ cd poky
$ git clone https://git.yoctoproject.org/git/meta-intel
$ git clone https://github.com/intel/meta-acrn.git
➢ Run environment script
$ source oe-init-build-env
➢ Add meta-intel & meta-acrn to bblayers.conf
$ echo "BBLAYERS += "/path/to/meta-intel"" >> conf/bblayers.conf
$ echo "BBLAYERS += "/path/to/meta-acrn"" >> conf/bblayers.conf
Configure Service OS
➢Append below configuration in conf/local.conf
MACHINE = "intel-corei7-64"
TMPDIR = "${TOPDIR}/master-acrn-sos"
DISTRO = "acrn-demo-sos“
PREFERRED_PROVIDER_virtual/kernel = "linux-intel-acrn-sos"
Multiconfiguration Build
➢ To build different images or packages for different targets
➢ Require different configuration
uos.conf
Build Directory
conf
multiconfig
local.conf
Configure User OS
➢ Add below configuration in conf/multiconf/uos.conf
DISTRO = "acrn-demo-uos"
TMPDIR = "${TOPDIR}/master-acrn-uos"
PREFERRED_PROVIDER_virtual/kernel = "linux-intel-acrn-uos”
Configure User OS(Deploying UOS images into SOS image)
➢Additionally append below configuration in conf/local.conf
BBMULTICONFIG = "uos“
CONTAINER_PACKAGE_DEPLOY_DIR = "${TOPDIR}/master-acrn-
uos/deploy/images/${MACHINE}“
CONTAINER_PACKAGE_MC = "uos“
# Add core-image-base-package to acrn-image-base
IMAGE_INSTALL_append_pn-acrn-image-base = " core-image-base-package“
# Add core-image-sato-package to acrn-image-sato
IMAGE_INSTALL_append_pn-acrn-image-sato = " core-image-sato-package"
Configure User OS
➢ Build SOS image.
$ bitbake acrn-image-base
Or
$ bitbake acrn-image-sato
➢ To re-use the sstate, in order to reduce build time, first build UOS and then SOS image.
$ bitbake mc:uos:core-image-base
$ bitbake acrn-image-base
Or
$ bitbake mc:uos:core-image-sato
$ bitbake acrn-image-sato
➢ On Successful build, SOS image acrn-image-*-intel-corei7-64.wic.acrn image can be
found at master-acrn-sos/deploy/images/${MACHINE}/
Booting ACRN
Booting ACRN from ESP
➢image-acrn.bbclass
➢Creates a modified wic image with acrn.efi injected to ESP
➢First boot only: update EFI boot order to boot ACRN first
➢Shipping acrn-efi-setup.sh script which invokes efibootmgr to setup boot entry for acrn
efi.
➢On first boot, will be normal Linux but will setup EFI entries so that subsequent boots
are inside ACRN.
Booting ACRN
➢ If you are using USB stick to boot, alternatively use the EFI shell, something like this
works:
> fs1:
> EFIBOOTacrn.efi
➢ On successful boot of SOS, you can launch UOS using:
$ /var/lib/machine/launch-bash.sh
Links
➢ Layer Index
https://layers.openembedded.org/layerindex/branch/master/layers/
➢ Yocto Project Quick Build
https://www.yoctoproject.org/docs/latest/brief-yoctoprojectqs/brief-yoctoprojectqs.html
➢ Getting started guide for meta-acrn
https://github.com/intel/meta-acrn/blob/master/docs/getting-started.md
Thank you for your
participation!

More Related Content

PDF
Project ACRN Device Passthrough Introduction
PDF
QEMU in Cross building
PDF
Part 02 Linux Kernel Module Programming
PDF
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
PPTX
qemu + gdb + sample_code: Run sample code in QEMU OS and observe Linux Kernel...
PDF
ALSF13: Xen on ARM - Virtualization for the Automotive Industry - Stefano Sta...
PDF
Ext4 filesystem(1)
PPTX
Linux Kernel Booting Process (1) - For NLKB
Project ACRN Device Passthrough Introduction
QEMU in Cross building
Part 02 Linux Kernel Module Programming
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
qemu + gdb + sample_code: Run sample code in QEMU OS and observe Linux Kernel...
ALSF13: Xen on ARM - Virtualization for the Automotive Industry - Stefano Sta...
Ext4 filesystem(1)
Linux Kernel Booting Process (1) - For NLKB

What's hot (17)

PPTX
QEMU - Binary Translation
PPTX
LUMI Super Computer.pptx
PDF
Surfing on an Interactive Kiosk
PDF
PDF
Xen Project Contributor Training - Part 1 introduction v1.0
PPTX
망고100 보드로 놀아보자 8
PPTX
Slab Allocator in Linux Kernel
PPT
Backup and recovery
PDF
A Journey to Boot Linux on Raspberry Pi
PDF
Embedded_Linux_Booting
PDF
Root file system for embedded systems
PPTX
Yum (Linux)
PDF
The TCP/IP stack in the FreeBSD kernel COSCUP 2014
PDF
2024 January Patch Tuesday
PDF
Archiving in linux tar
PDF
Page cache in Linux kernel
QEMU - Binary Translation
LUMI Super Computer.pptx
Surfing on an Interactive Kiosk
Xen Project Contributor Training - Part 1 introduction v1.0
망고100 보드로 놀아보자 8
Slab Allocator in Linux Kernel
Backup and recovery
A Journey to Boot Linux on Raspberry Pi
Embedded_Linux_Booting
Root file system for embedded systems
Yum (Linux)
The TCP/IP stack in the FreeBSD kernel COSCUP 2014
2024 January Patch Tuesday
Archiving in linux tar
Page cache in Linux kernel
Ad

Similar to Project ACRN Yocto Project meta-acrn layer introduction (20)

PDF
Project ACRN how to build a Yocto Project-based SOS
PDF
An Introduction to the Yocto Embedded Framework 2018
 
PPTX
Yocto Project introduction
PDF
[Webinar] An Introduction to the Yocto Embedded Framework
 
PDF
Yocto: Training in English
PDF
Introduction to yocto
PDF
Building Emmbedded Linux with Yocto project
PDF
Yocto - Embedded Linux Distribution Maker
PDF
yocto_scale_handout-with-notes
PDF
Build your own embedded linux distributions by yocto project
PDF
The Yocto Project
PDF
Yocto Project : Custom Embedded Linux Distribution
PDF
Why you should use the Yocto Project
PDF
iot_9Yocto Project getting started,,.pdf
PDF
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
PDF
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
PDF
ACRN vMeet-Up EU 2021 - installation and configuration introduction
PDF
Strategies for developing and deploying your embedded applications and images
PDF
Why the yocto project for my io t project elc_edinburgh_2018
ODP
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Project ACRN how to build a Yocto Project-based SOS
An Introduction to the Yocto Embedded Framework 2018
 
Yocto Project introduction
[Webinar] An Introduction to the Yocto Embedded Framework
 
Yocto: Training in English
Introduction to yocto
Building Emmbedded Linux with Yocto project
Yocto - Embedded Linux Distribution Maker
yocto_scale_handout-with-notes
Build your own embedded linux distributions by yocto project
The Yocto Project
Yocto Project : Custom Embedded Linux Distribution
Why you should use the Yocto Project
iot_9Yocto Project getting started,,.pdf
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
ACRN vMeet-Up EU 2021 - installation and configuration introduction
Strategies for developing and deploying your embedded applications and images
Why the yocto project for my io t project elc_edinburgh_2018
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Ad

More from Project ACRN (20)

PDF
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
PDF
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
PDF
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
PDF
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
PDF
ACRN vMeet-Up EU 2021 - community and development model
PDF
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
PDF
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
PDF
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
PDF
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
PDF
ACRN Kata Container on ACRN
PDF
Project ACRN USB mediator introduction
PDF
Project ACRN I2C mediator introduction
PDF
Project ACRN system debug
PDF
Project ACRN SR-IOV on ACRN
PDF
Project ACRN Device Model architecture introduction
PDF
Project ACRN configuration scenarios and config tool
PDF
Project ACRN hypervisor introduction
PDF
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
PDF
Project ACRN EtherCAT 101
PDF
Project ACRN expose and pass through platform hidden PCIe devices to SOS
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
ACRN vMeet-Up EU 2021 - community and development model
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
ACRN Kata Container on ACRN
Project ACRN USB mediator introduction
Project ACRN I2C mediator introduction
Project ACRN system debug
Project ACRN SR-IOV on ACRN
Project ACRN Device Model architecture introduction
Project ACRN configuration scenarios and config tool
Project ACRN hypervisor introduction
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN EtherCAT 101
Project ACRN expose and pass through platform hidden PCIe devices to SOS

Recently uploaded (20)

PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Digital Strategies for Manufacturing Companies
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Nekopoi APK 2025 free lastest update
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPT
Introduction Database Management System for Course Database
PDF
top salesforce developer skills in 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
medical staffing services at VALiNTRY
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
history of c programming in notes for students .pptx
CHAPTER 2 - PM Management and IT Context
Digital Strategies for Manufacturing Companies
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Nekopoi APK 2025 free lastest update
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Design an Analysis of Algorithms I-SECS-1021-03
Introduction Database Management System for Course Database
top salesforce developer skills in 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Upgrade and Innovation Strategies for SAP ERP Customers
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
ISO 45001 Occupational Health and Safety Management System
Wondershare Filmora 15 Crack With Activation Key [2025
medical staffing services at VALiNTRY
How to Choose the Right IT Partner for Your Business in Malaysia
history of c programming in notes for students .pptx

Project ACRN Yocto Project meta-acrn layer introduction

  • 1. Yocto meta-acrn Layer Introduction Naveen Saini Naveen Saini <naveen.kumar.saini@intel.com> 05/13/2020
  • 2. Agenda • Yocto Project Introduction • Meta-acrn Objective & Internals • Configure & Build • Booting ACRN • Useful links
  • 4. Yocto Project ➢ Linux Foundation collaborative open source project ➢ Standard tools and process for building embedded Linux ➢ Based on the well-established OpenEmbedded Project ➢ It’s not a Linux distribution! ➢ Core components: bitbake, oe-core, Poky distro, BSP layers
  • 5. Yocto Project ➢ Development model of the Yocto Project is Layer model. ➢ Layers are repositories that contain related sets of instructions that tell the build system what to do. ➢ Layers can be BSP, GUI, distro configuration, middleware or application layers. ➢ https://git.yoctoproject.org/
  • 6. Concepts ➢Layer (meta-*) ➢Recipes (.bb) ➢Configuration files (.conf) ➢Classes (.bbclass) ➢Append files (.bbappend)
  • 7. Yocto Project The Yocto Project Development Environment
  • 9. Meta-acrn ➢Integrate ACRN hypervisor with the yocto project. ➢Provides kernel support ➢Linux-intel-lts ➢Linux-intel-rt ➢Acrn-kernel ➢Maintains additional acrn specific kernel configuration for both Service OS and User OS
  • 10. Meta-acrn ➢Distro configurations ➢acrn-demo-sos.conf for Service OS ➢acrn-demo-uos.conf for User OS ➢Provides customized image configuration for ACRN ➢acrn-image-base (small footprint, non GUI) ➢acrn-image-sato(GUI with X11) ➢acrn-image-Weston (GUI with Weston) ➢Additional patches for ACRN ➢Network and systemd
  • 11. Meta-acrn Dependencies ➢ Meta-acrn has dependency on meta-intel layer too besides Core components. ➢ MACHINE configuration ie. intel-corei7-64 and intel-skylake-64 ➢ Common Kernel configuration for IA ➢ Media software stack ➢ Carry few other recipe components, to remove dependencies on other layers ➢ Python-kconfiglib ➢ Numactl
  • 13. How to build Service OS ➢Clone source repos $ git clone http://git.yoctoproject.org/git/poky $ cd poky $ git clone https://git.yoctoproject.org/git/meta-intel $ git clone https://github.com/intel/meta-acrn.git ➢ Run environment script $ source oe-init-build-env ➢ Add meta-intel & meta-acrn to bblayers.conf $ echo "BBLAYERS += "/path/to/meta-intel"" >> conf/bblayers.conf $ echo "BBLAYERS += "/path/to/meta-acrn"" >> conf/bblayers.conf
  • 14. Configure Service OS ➢Append below configuration in conf/local.conf MACHINE = "intel-corei7-64" TMPDIR = "${TOPDIR}/master-acrn-sos" DISTRO = "acrn-demo-sos“ PREFERRED_PROVIDER_virtual/kernel = "linux-intel-acrn-sos"
  • 15. Multiconfiguration Build ➢ To build different images or packages for different targets ➢ Require different configuration uos.conf Build Directory conf multiconfig local.conf
  • 16. Configure User OS ➢ Add below configuration in conf/multiconf/uos.conf DISTRO = "acrn-demo-uos" TMPDIR = "${TOPDIR}/master-acrn-uos" PREFERRED_PROVIDER_virtual/kernel = "linux-intel-acrn-uos”
  • 17. Configure User OS(Deploying UOS images into SOS image) ➢Additionally append below configuration in conf/local.conf BBMULTICONFIG = "uos“ CONTAINER_PACKAGE_DEPLOY_DIR = "${TOPDIR}/master-acrn- uos/deploy/images/${MACHINE}“ CONTAINER_PACKAGE_MC = "uos“ # Add core-image-base-package to acrn-image-base IMAGE_INSTALL_append_pn-acrn-image-base = " core-image-base-package“ # Add core-image-sato-package to acrn-image-sato IMAGE_INSTALL_append_pn-acrn-image-sato = " core-image-sato-package"
  • 18. Configure User OS ➢ Build SOS image. $ bitbake acrn-image-base Or $ bitbake acrn-image-sato ➢ To re-use the sstate, in order to reduce build time, first build UOS and then SOS image. $ bitbake mc:uos:core-image-base $ bitbake acrn-image-base Or $ bitbake mc:uos:core-image-sato $ bitbake acrn-image-sato ➢ On Successful build, SOS image acrn-image-*-intel-corei7-64.wic.acrn image can be found at master-acrn-sos/deploy/images/${MACHINE}/
  • 20. Booting ACRN from ESP ➢image-acrn.bbclass ➢Creates a modified wic image with acrn.efi injected to ESP ➢First boot only: update EFI boot order to boot ACRN first ➢Shipping acrn-efi-setup.sh script which invokes efibootmgr to setup boot entry for acrn efi. ➢On first boot, will be normal Linux but will setup EFI entries so that subsequent boots are inside ACRN.
  • 21. Booting ACRN ➢ If you are using USB stick to boot, alternatively use the EFI shell, something like this works: > fs1: > EFIBOOTacrn.efi ➢ On successful boot of SOS, you can launch UOS using: $ /var/lib/machine/launch-bash.sh
  • 22. Links ➢ Layer Index https://layers.openembedded.org/layerindex/branch/master/layers/ ➢ Yocto Project Quick Build https://www.yoctoproject.org/docs/latest/brief-yoctoprojectqs/brief-yoctoprojectqs.html ➢ Getting started guide for meta-acrn https://github.com/intel/meta-acrn/blob/master/docs/getting-started.md
  • 23. Thank you for your participation!