SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
How to Build a Yocto Based SOS on ACRN
Fuzhong Liu
Key contributors: Wenling Zhang Nanlin Xie
Disclaimer
• I’m from ACRN CI team; not a Yocto
Projector and Meta-ACRN expert
• Basic Yocto Project and ACRN hypervisor
knowledge is appreciated from audience
Agenda
• Yocto Project introduction
• Meta-ACRN introduction
• Steps about Build Yocto based SOS on ACRN
• ACRN issue case study
Agenda
• Yocto Project introduction
• Meta-ACRN introduction
• Steps about Build Yocto based SOS on ACRN
• ACRN issue case study
Yocto Project
It’s not a embedded Linux distribution, it
creates a custom one for you.
Yocto Project
• Linux Foundation collaborative open source project
• Standard tools and process for building embedded Linux
• Based on the well-established OpenEmbedded
• Major components: bitbake, oe-core, Poky distro, BSP
layers
• Users: Zephyr SDK, AGL, OpenBMC, GNOME-continuous
etc.
Yocto Project
https://www.yoctoproject.org/software-overview/
Yocto Project
Agenda
• Yocto Project introduction
• Meta-ACRN introduction
• Steps about Build Yocto based SOS on ACRN
• ACRN issue case study
Meta-ACRN
Layer to integrate the ACRN hypervisor and
ACRN-kernel with the Yocto Project.
https://github.com/intel/meta-acrn
Meta-ACRN
root@clr-sos~/fuzhongl/meta-acrn # tree -L 2
.
├── classes
│ ├── container-package.bbclass
│ └── image-acrn.bbclass
├── conf
│ ├── distro
│ └── layer.conf
├── COPYING.MIT
├── docs
│ ├── getting-started.md
│ ├── qa.md
│ └── references.md
├── README.md
├── recipes-core
│ ├── acrn
│ ├── images
│ ├── networkd-config
│ ├── packagegroups
│ └── systemd
├── recipes-devtools
│ └── python
├── recipes-guests
│ └── yocto
├── recipes-kernel
│ └── linux
└── recipes-support
└── numactl
Meta-ACRN
root@clr-sos~/meta-acrn/recipes-core/acrn # tree
.
├── acrn-common.inc
├── acrn-devicemodel
│ └── dont-build-tools.patch
├── acrn-devicemodel.bb
├── acrn-efi-setup
│ └── acrn-efi-setup.sh
├── acrn-efi-setup.bb
├── acrn-hypervisor.bb
├── acrn-tools
│ └── no-crashlog.patch
├── acrn-tools.bb
└── files
├── 0001-acrn-config-append-kconfig-setting-on-new-board.patch
├── 0001-hypervisor-Makefile-do-not-strip.patch
└── paths.patch
4 directories, 11 files
Meta-ACRN
root@clr-sos~/meta-acrn/recipes-kernel # tree
.
└── linux
├── acrn-kernel.inc
├── acrn-kernel-sos_4.19.bb
├── acrn-kernel-uos_4.19.bb
├── files
│ ├── 0001-Add-the-plane-restrictionfor-SKL.-Otherwise-there-is.patch
│ ├── 0002-Add-the-change-for-gvt-g-on-SKL.patch
│ ├── sos.cfg
│ └── uos.cfg
├── linux-intel-acrn.inc
├── linux-intel-acrn-sos_4.19.bb
├── linux-intel-acrn-uos_4.19.bb
└── linux-intel-rt-acrn-uos_4.19.bb
2 directories, 11 files
Agenda
• Yocto Project introduction
• Meta-ACRN introduction
• Steps about Build Yocto based SOS on ACRN
Steps about Build Yocto based SOS on ACRN
• Yocto Project introduction
• Meta-ACRN introduction
• Steps about build Build Yocto based SOS on
ACRN
Steps about Build Yocto based SOS on ACRN
Clone Poky Repo
git clone https://git.yoctoproject.org/git/poky
cd poky
git checkout origin/master -b my-master
cd ..
Clone meta-intel repo
git clone https://git.yoctoproject.org/git/meta-
intel
cd meta-intel
git checkout origin/master -b my-master
cd ..
Clone meta-acrn repo
git clone https://github.com/intel/meta-acrn.git
cd meta-acrn
git checkout origin/master -b my-master
cd ..
Add all necessary layers
source poky/oe-init-build-env build
bitbake-layers add-layer ../meta-intel
bitbake-layers add-layer ../meta-acrn
Step 1:
Clone Source Code
Steps about Build Yocto based SOS on ACRN
There is a prototype example distro called acrn-demo-sos
Something like this in local.conf:
MACHINE = "intel-corei7-64"
TMPDIR = "${TOPDIR}/master-acrn-sos"
DISTRO = "acrn-demo-sos"
#if you want to modify BOARD and SCENARIO, also modify in
local.conf:
ACRN_BOARD = "whl-ipc-i5"
ACRN_SCENARIO= "industry"
#if you want to enlarge the rootfs size(60G in my case), please
refer below cmd:
IMAGE_ROOTFS_EXTRA_SPACE = "62914560"
# Set kernel for SOS
#if you want to build SOS using acrn-kernel
PREFERRED_PROVIDER_virtual/kernel = "acrn-kernel-sos"
Step 2:
Modify local.conf
Steps about Build Yocto based SOS on ACRN
Step 3:
Modify acrn-common.inc
root@clr-sos~/meta-acrn/recipes-core/acrn # vim acrn-common.inc
SUMMARY = "A Type 1 hypervisor stack, running directly on the bare-metal hardware"
HOMEPAGE = "https://projectacrn.org/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5732af37bf18525ed9d2b16985054901"
SRC_URI = "git://github.com/projectacrn/acrn-hypervisor.git;branch=release_1.5 
file://paths.patch 
file://0001-hypervisor-Makefile-do-not-strip.patch 
file://0001-acrn-config-append-kconfig-setting-on-new-board.patch 
file://0001-HV-enable-cpu-sharing-by-default.patch"
# Snapshot tags are of the format:
# acrn-<year>w<week>.<day>-<timestamp><pass|fail>
PV = "1.5.1"
SRCREV = "e13c6dec9215701117bc76eacb09ad4f6ad55306“
# 1 for release build, 0 for debug build.
ACRN_RELEASE ?= "0“
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Steps about Build Yocto based SOS on ACRN
Step 4:
Modify acrn-kernel.inc
root@clr-sos~/meta-acrn/recipes-kernel/linux # vim acrn-kernel.inc
require recipes-kernel/linux/linux-intel_4.19.bb
KBRANCH = "master"
SRC_URI_remove = "git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH};"
SRC_URI_prepend = "git://github.com/projectacrn/acrn-kernel.git;protocol=https;name=machine;branch=${KBRANCH};"
# tag: v1.5.1
LINUX_VERSION = "4.19.73"
SRCREV_machine = "0bf3d99ba46b80a87f7b0f2864ba0432e34a9070"
KERNEL_EXTRA_FEATURES += " cfg/hv-guest.scc cfg/paravirt_kvm.scc "
Steps about Build Yocto based SOS on ACRN
Step 5:
Modify acrn-efi-setup.sh
root@clr-sos~/meta-acrn/recipes-core/acrn/acrn-efi-setup # vim acrn-efi-setup.sh
#! /bin/sh
# Copyright (C) 2019 Intel
# MIT licensed
# TODO: lots of hardcoded values in here. Need a generic solution.
set -e
# Prune previous ACRN boot entries
for boot in $(efibootmgr | perl -n -e '/Boot([0-9a-fA-F]+).*ACRN.*/ && print "$1n"'); do
efibootmgr -b $boot -B
done
efibootmgr -c -l "EFIBOOTacrn.efi" 
-L "ACRN (Yocto)" 
-u "bootloader=EFIBOOTbootx64.efi uart=disabled"
Steps about Build Yocto based SOS on ACRN
Step 6:
bitbake acrn-image-base
Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...Project ACRN
 
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN
 
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introductionACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introductionProject ACRN
 
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
ACRN vMeet-Up EU 2021 -  functional safety design and certification planACRN vMeet-Up EU 2021 -  functional safety design and certification plan
ACRN vMeet-Up EU 2021 - functional safety design and certification planProject ACRN
 
Project ACRN Device Passthrough Introduction
Project ACRN Device Passthrough IntroductionProject ACRN Device Passthrough Introduction
Project ACRN Device Passthrough IntroductionProject ACRN
 
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance OptimizationACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance OptimizationProject ACRN
 
Project ACRN CSE Virtualization
Project ACRN CSE VirtualizationProject ACRN CSE Virtualization
Project ACRN CSE VirtualizationProject ACRN
 
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisorACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisorProject ACRN
 
Project ACRN Device Model architecture introduction
Project ACRN Device Model architecture introductionProject ACRN Device Model architecture introduction
Project ACRN Device Model architecture introductionProject ACRN
 
Project ACRN: SR-IOV implementation
Project ACRN: SR-IOV implementationProject ACRN: SR-IOV implementation
Project ACRN: SR-IOV implementationGeoffroy Van Cutsem
 
Project ACRN GVT-d introduction and tutorial
Project ACRN GVT-d introduction and tutorialProject ACRN GVT-d introduction and tutorial
Project ACRN GVT-d introduction and tutorialProject ACRN
 
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisorProject ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisorProject ACRN
 
Project ACRN I2C mediator introduction
Project ACRN I2C mediator introductionProject ACRN I2C mediator introduction
Project ACRN I2C mediator introductionProject ACRN
 
Project ACRN EtherCAT 101
Project ACRN EtherCAT 101Project ACRN EtherCAT 101
Project ACRN EtherCAT 101Project ACRN
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?Pradeep Kumar
 
Project ACRN USB mediator introduction
Project ACRN USB mediator introductionProject ACRN USB mediator introduction
Project ACRN USB mediator introductionProject ACRN
 
kexec / kdump implementation in Linux Kernel and Xen hypervisor
kexec / kdump implementation in Linux Kernel and Xen hypervisorkexec / kdump implementation in Linux Kernel and Xen hypervisor
kexec / kdump implementation in Linux Kernel and Xen hypervisorThe Linux Foundation
 
KVM tools and enterprise usage
KVM tools and enterprise usageKVM tools and enterprise usage
KVM tools and enterprise usagevincentvdk
 
XPDS14 - RT-Xen: Real-Time Virtualization in Xen - Sisu Xi, Washington Univer...
XPDS14 - RT-Xen: Real-Time Virtualization in Xen - Sisu Xi, Washington Univer...XPDS14 - RT-Xen: Real-Time Virtualization in Xen - Sisu Xi, Washington Univer...
XPDS14 - RT-Xen: Real-Time Virtualization in Xen - Sisu Xi, Washington Univer...The Linux Foundation
 
Rootlinux17: An introduction to Xen Project Virtualisation
Rootlinux17:  An introduction to Xen Project VirtualisationRootlinux17:  An introduction to Xen Project Virtualisation
Rootlinux17: An introduction to Xen Project VirtualisationThe Linux Foundation
 

Was ist angesagt? (20)

ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
 
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN hypervisor introduction
Project ACRN hypervisor introduction
 
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introductionACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
 
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
ACRN vMeet-Up EU 2021 -  functional safety design and certification planACRN vMeet-Up EU 2021 -  functional safety design and certification plan
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
 
Project ACRN Device Passthrough Introduction
Project ACRN Device Passthrough IntroductionProject ACRN Device Passthrough Introduction
Project ACRN Device Passthrough Introduction
 
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance OptimizationACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
 
Project ACRN CSE Virtualization
Project ACRN CSE VirtualizationProject ACRN CSE Virtualization
Project ACRN CSE Virtualization
 
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisorACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
 
Project ACRN Device Model architecture introduction
Project ACRN Device Model architecture introductionProject ACRN Device Model architecture introduction
Project ACRN Device Model architecture introduction
 
Project ACRN: SR-IOV implementation
Project ACRN: SR-IOV implementationProject ACRN: SR-IOV implementation
Project ACRN: SR-IOV implementation
 
Project ACRN GVT-d introduction and tutorial
Project ACRN GVT-d introduction and tutorialProject ACRN GVT-d introduction and tutorial
Project ACRN GVT-d introduction and tutorial
 
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisorProject ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
 
Project ACRN I2C mediator introduction
Project ACRN I2C mediator introductionProject ACRN I2C mediator introduction
Project ACRN I2C mediator introduction
 
Project ACRN EtherCAT 101
Project ACRN EtherCAT 101Project ACRN EtherCAT 101
Project ACRN EtherCAT 101
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?
 
Project ACRN USB mediator introduction
Project ACRN USB mediator introductionProject ACRN USB mediator introduction
Project ACRN USB mediator introduction
 
kexec / kdump implementation in Linux Kernel and Xen hypervisor
kexec / kdump implementation in Linux Kernel and Xen hypervisorkexec / kdump implementation in Linux Kernel and Xen hypervisor
kexec / kdump implementation in Linux Kernel and Xen hypervisor
 
KVM tools and enterprise usage
KVM tools and enterprise usageKVM tools and enterprise usage
KVM tools and enterprise usage
 
XPDS14 - RT-Xen: Real-Time Virtualization in Xen - Sisu Xi, Washington Univer...
XPDS14 - RT-Xen: Real-Time Virtualization in Xen - Sisu Xi, Washington Univer...XPDS14 - RT-Xen: Real-Time Virtualization in Xen - Sisu Xi, Washington Univer...
XPDS14 - RT-Xen: Real-Time Virtualization in Xen - Sisu Xi, Washington Univer...
 
Rootlinux17: An introduction to Xen Project Virtualisation
Rootlinux17:  An introduction to Xen Project VirtualisationRootlinux17:  An introduction to Xen Project Virtualisation
Rootlinux17: An introduction to Xen Project Virtualisation
 

Ähnlich wie Build Yocto SOS on ACRN

Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!All Things Open
 
Scaling Development Environments with Docker
Scaling Development Environments with DockerScaling Development Environments with Docker
Scaling Development Environments with DockerDocker, Inc.
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]Mahmoud Hatem
 
hacking-embedded-devices.pptx
hacking-embedded-devices.pptxhacking-embedded-devices.pptx
hacking-embedded-devices.pptxssuserfcf43f
 
Deployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSDDeployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSDWO Community
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsSander van der Burg
 
JUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrinderJUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrindermarekgoldmann
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...xiso
 
Digital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingDigital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingHenry Schreiner
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Praguetomasbart
 
Continuous Security: From tins to containers - now what!
Continuous Security: From tins to containers - now what!Continuous Security: From tins to containers - now what!
Continuous Security: From tins to containers - now what!Michael Man
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Odinot Stanislas
 
Android build on windows
Android build on windowsAndroid build on windows
Android build on windowsAddweup
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler IceccSZ Lin
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Navigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariMetosin Oy
 

Ähnlich wie Build Yocto SOS on ACRN (20)

Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!
 
Scaling Development Environments with Docker
Scaling Development Environments with DockerScaling Development Environments with Docker
Scaling Development Environments with Docker
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]
 
hacking-embedded-devices.pptx
hacking-embedded-devices.pptxhacking-embedded-devices.pptx
hacking-embedded-devices.pptx
 
Deployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSDDeployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSD
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutions
 
DevOps_project.pdf
DevOps_project.pdfDevOps_project.pdf
DevOps_project.pdf
 
JUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrinderJUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrinder
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
App container rkt
App container rktApp container rkt
App container rkt
 
kubernetes practice
kubernetes practicekubernetes practice
kubernetes practice
 
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-softwa...
 
Digital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingDigital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meeting
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
 
Continuous Security: From tins to containers - now what!
Continuous Security: From tins to containers - now what!Continuous Security: From tins to containers - now what!
Continuous Security: From tins to containers - now what!
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
 
Android build on windows
Android build on windowsAndroid build on windows
Android build on windows
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler Icecc
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Navigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
 

Kürzlich hochgeladen

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Kürzlich hochgeladen (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Build Yocto SOS on ACRN

  • 1. How to Build a Yocto Based SOS on ACRN Fuzhong Liu Key contributors: Wenling Zhang Nanlin Xie
  • 2. Disclaimer • I’m from ACRN CI team; not a Yocto Projector and Meta-ACRN expert • Basic Yocto Project and ACRN hypervisor knowledge is appreciated from audience
  • 3. Agenda • Yocto Project introduction • Meta-ACRN introduction • Steps about Build Yocto based SOS on ACRN • ACRN issue case study
  • 4. Agenda • Yocto Project introduction • Meta-ACRN introduction • Steps about Build Yocto based SOS on ACRN • ACRN issue case study
  • 5. Yocto Project It’s not a embedded Linux distribution, it creates a custom one for you.
  • 6. Yocto Project • Linux Foundation collaborative open source project • Standard tools and process for building embedded Linux • Based on the well-established OpenEmbedded • Major components: bitbake, oe-core, Poky distro, BSP layers • Users: Zephyr SDK, AGL, OpenBMC, GNOME-continuous etc.
  • 9. Agenda • Yocto Project introduction • Meta-ACRN introduction • Steps about Build Yocto based SOS on ACRN • ACRN issue case study
  • 10. Meta-ACRN Layer to integrate the ACRN hypervisor and ACRN-kernel with the Yocto Project. https://github.com/intel/meta-acrn
  • 11. Meta-ACRN root@clr-sos~/fuzhongl/meta-acrn # tree -L 2 . ├── classes │ ├── container-package.bbclass │ └── image-acrn.bbclass ├── conf │ ├── distro │ └── layer.conf ├── COPYING.MIT ├── docs │ ├── getting-started.md │ ├── qa.md │ └── references.md ├── README.md ├── recipes-core │ ├── acrn │ ├── images │ ├── networkd-config │ ├── packagegroups │ └── systemd ├── recipes-devtools │ └── python ├── recipes-guests │ └── yocto ├── recipes-kernel │ └── linux └── recipes-support └── numactl
  • 12. Meta-ACRN root@clr-sos~/meta-acrn/recipes-core/acrn # tree . ├── acrn-common.inc ├── acrn-devicemodel │ └── dont-build-tools.patch ├── acrn-devicemodel.bb ├── acrn-efi-setup │ └── acrn-efi-setup.sh ├── acrn-efi-setup.bb ├── acrn-hypervisor.bb ├── acrn-tools │ └── no-crashlog.patch ├── acrn-tools.bb └── files ├── 0001-acrn-config-append-kconfig-setting-on-new-board.patch ├── 0001-hypervisor-Makefile-do-not-strip.patch └── paths.patch 4 directories, 11 files
  • 13. Meta-ACRN root@clr-sos~/meta-acrn/recipes-kernel # tree . └── linux ├── acrn-kernel.inc ├── acrn-kernel-sos_4.19.bb ├── acrn-kernel-uos_4.19.bb ├── files │ ├── 0001-Add-the-plane-restrictionfor-SKL.-Otherwise-there-is.patch │ ├── 0002-Add-the-change-for-gvt-g-on-SKL.patch │ ├── sos.cfg │ └── uos.cfg ├── linux-intel-acrn.inc ├── linux-intel-acrn-sos_4.19.bb ├── linux-intel-acrn-uos_4.19.bb └── linux-intel-rt-acrn-uos_4.19.bb 2 directories, 11 files
  • 14. Agenda • Yocto Project introduction • Meta-ACRN introduction • Steps about Build Yocto based SOS on ACRN
  • 15. Steps about Build Yocto based SOS on ACRN • Yocto Project introduction • Meta-ACRN introduction • Steps about build Build Yocto based SOS on ACRN
  • 16. Steps about Build Yocto based SOS on ACRN Clone Poky Repo git clone https://git.yoctoproject.org/git/poky cd poky git checkout origin/master -b my-master cd .. Clone meta-intel repo git clone https://git.yoctoproject.org/git/meta- intel cd meta-intel git checkout origin/master -b my-master cd .. Clone meta-acrn repo git clone https://github.com/intel/meta-acrn.git cd meta-acrn git checkout origin/master -b my-master cd .. Add all necessary layers source poky/oe-init-build-env build bitbake-layers add-layer ../meta-intel bitbake-layers add-layer ../meta-acrn Step 1: Clone Source Code
  • 17. Steps about Build Yocto based SOS on ACRN There is a prototype example distro called acrn-demo-sos Something like this in local.conf: MACHINE = "intel-corei7-64" TMPDIR = "${TOPDIR}/master-acrn-sos" DISTRO = "acrn-demo-sos" #if you want to modify BOARD and SCENARIO, also modify in local.conf: ACRN_BOARD = "whl-ipc-i5" ACRN_SCENARIO= "industry" #if you want to enlarge the rootfs size(60G in my case), please refer below cmd: IMAGE_ROOTFS_EXTRA_SPACE = "62914560" # Set kernel for SOS #if you want to build SOS using acrn-kernel PREFERRED_PROVIDER_virtual/kernel = "acrn-kernel-sos" Step 2: Modify local.conf
  • 18. Steps about Build Yocto based SOS on ACRN Step 3: Modify acrn-common.inc root@clr-sos~/meta-acrn/recipes-core/acrn # vim acrn-common.inc SUMMARY = "A Type 1 hypervisor stack, running directly on the bare-metal hardware" HOMEPAGE = "https://projectacrn.org/" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=5732af37bf18525ed9d2b16985054901" SRC_URI = "git://github.com/projectacrn/acrn-hypervisor.git;branch=release_1.5 file://paths.patch file://0001-hypervisor-Makefile-do-not-strip.patch file://0001-acrn-config-append-kconfig-setting-on-new-board.patch file://0001-HV-enable-cpu-sharing-by-default.patch" # Snapshot tags are of the format: # acrn-<year>w<week>.<day>-<timestamp><pass|fail> PV = "1.5.1" SRCREV = "e13c6dec9215701117bc76eacb09ad4f6ad55306“ # 1 for release build, 0 for debug build. ACRN_RELEASE ?= "0“ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  • 19. Steps about Build Yocto based SOS on ACRN Step 4: Modify acrn-kernel.inc root@clr-sos~/meta-acrn/recipes-kernel/linux # vim acrn-kernel.inc require recipes-kernel/linux/linux-intel_4.19.bb KBRANCH = "master" SRC_URI_remove = "git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH};" SRC_URI_prepend = "git://github.com/projectacrn/acrn-kernel.git;protocol=https;name=machine;branch=${KBRANCH};" # tag: v1.5.1 LINUX_VERSION = "4.19.73" SRCREV_machine = "0bf3d99ba46b80a87f7b0f2864ba0432e34a9070" KERNEL_EXTRA_FEATURES += " cfg/hv-guest.scc cfg/paravirt_kvm.scc "
  • 20. Steps about Build Yocto based SOS on ACRN Step 5: Modify acrn-efi-setup.sh root@clr-sos~/meta-acrn/recipes-core/acrn/acrn-efi-setup # vim acrn-efi-setup.sh #! /bin/sh # Copyright (C) 2019 Intel # MIT licensed # TODO: lots of hardcoded values in here. Need a generic solution. set -e # Prune previous ACRN boot entries for boot in $(efibootmgr | perl -n -e '/Boot([0-9a-fA-F]+).*ACRN.*/ && print "$1n"'); do efibootmgr -b $boot -B done efibootmgr -c -l "EFIBOOTacrn.efi" -L "ACRN (Yocto)" -u "bootloader=EFIBOOTbootx64.efi uart=disabled"
  • 21. Steps about Build Yocto based SOS on ACRN Step 6: bitbake acrn-image-base
  • 22. Q&A