SlideShare a Scribd company logo
1 of 69
Download to read offline
Ross Burton, Userspace Architect for Yocto
Open Source Technology Centre at Intel
This session is a high level introduction to the Yocto Project
What is the Yocto Project?
Appears to be confusion in the automotive community about the Yocto Project.
What is is, what it can offer and so on.
We were invited by the LF to come here and clarify what Yocto is.
So, the Yocto Project is...
Umbrella project
An umbrella project.
You don't download or install the Yocto Project itself
Just like you don't install the Apache Foundation
Build environment
and development tools
An embedded build environment and development tools
Specifically, a build system (bitbake), package metadata (oe-core),
Eclipse plugin, Application Development Toolkit (deployable toolchain)
x86 • ARM
MIPS • PowerPC
We support all of the big architectures.
oe-core builds for qemu machines for all of these architectures
Ensures that the core builds for everything
Optional BSPs for specific platform support
Everything is cross compiled, so no "but it worked for x86" problems
Collaboration space
Finally YP is a collaboration space, providing a forum
for users to share their problems and solutions
Public mailing lists and weekly phone conference
PAUSE
So many choices…
When picking a platform what's the difference between yocto and
android, linaro, tizen, buildroot, baserock, or hacking your
favourite desktop distribution...
…why pick the Yocto Project?
YP is Linux for embedded, from a small ARM board to mission critical
 xeon clusters
Builds a custom distro suited to your needs
Easy to add, remove, or change components
Open development process, no code drops or license complications
Some are easy to hack on,
but you’ll regret it later
Especially if your target is x86, it's easy to start with a
desktop distribution and chop pieces out
Building new pieces and rebuilding the pieces that need changes
But when you need to change hardware, or rebuild with different compiler flags
It's not that easy any more
Designed for the long term
Yocto is designed for long term use
Six monthly release cycle but maintained release branches
Commercial support from OSVs
Tools to help do the mundane distribution building
- Generate package repos and disk images
- Static release archives for license compliance
Won’t fall apart in time
Yocto won't surprise you late in product development
Reproducable builds for the entire system
Clear process for updates - easy to make the changes
and publish a new image or repo
GPL compliant - trivial to public source *and* build instructions
Who is in the Yocto Project?
Not a complete list
Hardware manufacturers
i.e. Intel, Texas Instruments, Freescale
Embedded OSVs
i.e. Wind River, MontaVista, Enea Software, Mentor Graphics
Commercial supported linux from these vendors
Consultants and individuals
Consultants, small and large
individuals "scratching an itch" for their own projects
Advisory Board
finally should mention the advisory board.
Yocto is a project at the Linux Foundation, not owned by any
particular company
The advisory board is comprised of reps from member companies
working on Yocto
The boards first action was to name itself "advisory board" rather
than "steering group" to reflect that it offers advice and input and
doesn't control the project technical direction entirely in the
hands of the architects and maintainers
How does it work?
Enough about what the Yocto Project can do
How does it work?
It’s all about the layers
A YP distribution is assembled from a number of layers
Layers are modular and you can combine layers from different sources
An example
Bitbake
Build system
oe-core
Bitbake
core metadata
toolchain, kernel, eglibc, cairo, gstreamer, Xorg, Wayland (soon), gtk/qt
meta-intel
 oe-core
 Bitbake
unless you happy with a qemu emulated machine you'll need a bsp
Intel hardware BSP, such as cedar trail (atom, netbook/industrial), fish river
island 2 (atom, digital signage, smart services), jasper forest (xeon, server)
meta-yocto
meta-intel
 oe-core
 Bitbake
Distribution policy
(Poky in meta-yocto for historial reasons)
Let’s build something!
Enough talk, let's pretend to build something.
$ wget http://downloads.yoctoproject.org/…
       /poky-denzil-7.0.tar.bz2
$ tar xjf poky-denzil-7.0.tar.bz2
$ cd poky-denzil-7.0
One of the downloads from the Yocto Project is Poky, a reference
distribution. This is basically Bitbake, oe-core, and meta-yocto
glued together for convenience Grabbing and extracting the tarball
of the 7.0 "denzil" release is as you'd expect
$ ./oe-init-build-env
### Shell environment set up for builds.
### You can now run 'bitbake <target>‘
Common targets are:
  core-image-minimal
  core-image-sato
…
$ emacs conf/local.conf
First you need to source a shell script to setup the environment.
Now lets have a quick look at the configuration file
# BB_NUMBER_THREADS = "4"
# PARALLEL_MAKE = "-j 4"

MACHINE ??=   "qemux86"
…
#MACHINE ?=   "qemuarm"
#MACHINE ?=   "qemumips"
#MACHINE ?=   "atom-pc"
#MACHINE ?=   "beagleboard"
Just a small fragment of the options available. Defaults are all
reasonable and it will successfully build out of the box.
For a faster build, change the parallel options. My build machine is
a quad core with hyperthreading, so I set both of those to 8 to keep
it busy
Default target is x86 on qemu. This is trivially changed by simply
changing the MACHINE variable.
Other options include where to keep downloaded tarballs; location of
any mirrors; features to enable such as multiarch, installing the
toolchain in the image for development, what package format to use,
and more.
$ bitbake core-image-minimal
Then, you can run bitbake with the name of the target you want
Targets can be anything - images, packages, or operations.
Let's build core-image-minimal, a small system that boots to a
console good start to build up from if you're making a
single-purpose system
Currently 7 running tasks (5452 of 9438):
0: webkit-gtk-1.8.2-r1 do_compile (pid 27137)
1: qt4-embedded-4.8.1-r48.1 do_compile (pid 27129)
2: qt4-x11-free-4.8.1-r46.1 do_compile (pid 27096)
3: systemtap-1.8+git1…-r0 do_compile (pid 27130)
4: gmp-5.0.5-r0 do_package_write_rpm (pid 27131)
5: libglade-2.6.4-r4 do_package_write_rpm (pid 27134)
6: nfs-utils-1.2.3-r5 do_unpack (pid 27187)
While bitbake is running you'll see a report of what it's doing,
something like this. This isn't actually the output from
core-image-minimal but a colleague's world build that happened to be
running when I was writing the slides. Poor guy is in for a long
wait, webkit and two qt builds.
$ ls tmp/deploy/images/
…
core-image-minimal-atom-pc-20120918205848.hddimg
core-image-minimal-atom-pc-20120918205848.iso
core-image-minimal-atom-pc-20120918205848.rootfs.cpio.gz
core-image-minimal-atom-pc-20120918205848.rootfs.ext3
When it finishes building the results are in the deploy directory
Here we can see the constructed root file system as a cpio archive,
a bare filesystem, a bootable ISO image, and a disk image.
Generally I'd be writing the disk image to a fast USB stick with dd
and booting from that for testing.
The build output is configurable per build and per machine. This
build was for a fairly standard Intel system so the final output is
typically bootable on those. Build for a say beagleboard and you'll
get kernel, bootloader and rootfs tarballs to write a SD card.
alongside the images directory there is the package repository that
was used to construct the root fs. This can be shared on the network
and used as a normal repository, ie install some development or
debug symbol packages to fix a bug.
Hob
Hob is a graphical interface to bitbake
demo gremlins have decided to break hob on this laptop - works on my build machine
1st iteration, gtk+ application to configure an image and monitor the build
2nd iteration, web-based. currently under development.
Now what?
So that's how to build an image, but what could we do with it?
Two quick ideas
Virtualisation
I expect virtualisation to be common in next-generation automotive
systems as individual processors become more powerful and logically
separate systems are ran in virtual machines on fewer physical
processors.
Because systems built by Yocto can be trivially tuned to be exactly
what is required and nothing else they are a good match for
virtualised systems, both as a minimal host that does simply manages
the virtual machines, or as a specialized virtual machine itself.
Specialised subsystem
Cars are complicated beasts these days with many processors performing specialised roles
Dashboard, engine management, and so on.
Q&A
Thanks!
Credits

cars2.jpg
http://www.flickr.com/photos/15443451@N00/516336421/
Creative Commons 2.0 BY-NC-SA (C) Piyapat Ch.

cables.jpg
group.jpg
tumble.jpg
umbrella.jpg
(C) David Stewart, All Rights Reserved, Used with Permission.

tools.jpg
http://www.flickr.com/photos/22749993@N08/5386712834/
Creative Commons 2.0 BY (C) Jim Pennucci

cpus.jpg
http://www.flickr.com/photos/17642817@N00/4553998825/
Creative Commons 2.0 BY (C) Jason Rogers

people.jpg
http://www.flickr.com/photos/29370225@N03/6292167005/
Creative Commons 2.0 BY (C) Roberto Trm

minifigs.jpg
http://www.flickr.com/photos/40646519@N00/305410323/
Creative Commons 2.0 BY (C) peter dutton

engineer.jpg

More Related Content

What's hot

Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!Mr. Vengineer
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal BootloaderSatpal Parmar
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Linaro
 
Building RT image with Yocto
Building RT image with YoctoBuilding RT image with Yocto
Building RT image with YoctoAlexandre LAHAYE
 
Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Brendan Gregg
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIAnne Nicolas
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisPaul V. Novarese
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation Jiann-Fuh Liaw
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchlinuxlab_conf
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
Linux field-update-2015
Linux field-update-2015Linux field-update-2015
Linux field-update-2015Chris Simmonds
 
Qt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with YoctoQt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with YoctoPrabindh Sundareson
 
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Pierre-jean Texier
 
Yocto: Training in English
Yocto: Training in EnglishYocto: Training in English
Yocto: Training in EnglishOtavio Salvador
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to BottomKernel TLV
 

What's hot (20)

Linux Kernel Overview
Linux Kernel OverviewLinux Kernel Overview
Linux Kernel Overview
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Qemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System EmulationQemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System Emulation
 
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_
 
Building RT image with Yocto
Building RT image with YoctoBuilding RT image with Yocto
Building RT image with Yocto
 
Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
Linux field-update-2015
Linux field-update-2015Linux field-update-2015
Linux field-update-2015
 
Bootloaders
BootloadersBootloaders
Bootloaders
 
Qt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with YoctoQt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with Yocto
 
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
 
Yocto: Training in English
Yocto: Training in EnglishYocto: Training in English
Yocto: Training in English
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to Bottom
 

Similar to The Yocto Project

Why you should use the Yocto Project
Why you should use the Yocto ProjectWhy you should use the Yocto Project
Why you should use the Yocto Projectrossburton
 
An Introduction to the Yocto Embedded Framework 2018
An Introduction to the Yocto Embedded Framework 2018An Introduction to the Yocto Embedded Framework 2018
An Introduction to the Yocto Embedded Framework 2018ICS
 
Os Grossupdated
Os GrossupdatedOs Grossupdated
Os Grossupdatedoscon2007
 
A million ways to provision embedded linux devices
A million ways to provision embedded linux devicesA million ways to provision embedded linux devices
A million ways to provision embedded linux devicesMender.io
 
How to Manage OSS Licenses in CI/CD Development
How to Manage OSS Licenses in CI/CD DevelopmentHow to Manage OSS Licenses in CI/CD Development
How to Manage OSS Licenses in CI/CD DevelopmentShane Coughlan
 
Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distributionemertxemarketing
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
 
OpenChain: How to manage OSS licenses for CI/CD development
OpenChain: How to manage OSS licenses for CI/CD developmentOpenChain: How to manage OSS licenses for CI/CD development
OpenChain: How to manage OSS licenses for CI/CD developmentShane Coughlan
 
Centralized Fog Server with OpenLDAP
Centralized Fog Server with OpenLDAP Centralized Fog Server with OpenLDAP
Centralized Fog Server with OpenLDAP tare
 
FOSDEM_2019_Buildroot_RISCV.pdf
FOSDEM_2019_Buildroot_RISCV.pdfFOSDEM_2019_Buildroot_RISCV.pdf
FOSDEM_2019_Buildroot_RISCV.pdfssuser30e7d2
 
Why a zynq should power your next project
Why a zynq should power your next projectWhy a zynq should power your next project
Why a zynq should power your next projectMark Smith
 
From Uc To Embedded
From Uc To EmbeddedFrom Uc To Embedded
From Uc To Embeddedguest0cf711
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PICliff Samuels Jr.
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Mender.io
 
Intel Briefing Notes
Intel Briefing NotesIntel Briefing Notes
Intel Briefing NotesGraham Lee
 
[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded FrameworkICS
 

Similar to The Yocto Project (20)

Why you should use the Yocto Project
Why you should use the Yocto ProjectWhy you should use the Yocto Project
Why you should use the Yocto Project
 
Bringing Tizen to a Raspberry Pi 2 Near You
Bringing Tizen to a Raspberry Pi 2 Near YouBringing Tizen to a Raspberry Pi 2 Near You
Bringing Tizen to a Raspberry Pi 2 Near You
 
Building Embedded Linux UDOONEO
Building Embedded Linux UDOONEOBuilding Embedded Linux UDOONEO
Building Embedded Linux UDOONEO
 
An Introduction to the Yocto Embedded Framework 2018
An Introduction to the Yocto Embedded Framework 2018An Introduction to the Yocto Embedded Framework 2018
An Introduction to the Yocto Embedded Framework 2018
 
Os Grossupdated
Os GrossupdatedOs Grossupdated
Os Grossupdated
 
OpenEmbedded
OpenEmbeddedOpenEmbedded
OpenEmbedded
 
A million ways to provision embedded linux devices
A million ways to provision embedded linux devicesA million ways to provision embedded linux devices
A million ways to provision embedded linux devices
 
How to Manage OSS Licenses in CI/CD Development
How to Manage OSS Licenses in CI/CD DevelopmentHow to Manage OSS Licenses in CI/CD Development
How to Manage OSS Licenses in CI/CD Development
 
Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distribution
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
 
OpenChain: How to manage OSS licenses for CI/CD development
OpenChain: How to manage OSS licenses for CI/CD developmentOpenChain: How to manage OSS licenses for CI/CD development
OpenChain: How to manage OSS licenses for CI/CD development
 
Centralized Fog Server with OpenLDAP
Centralized Fog Server with OpenLDAP Centralized Fog Server with OpenLDAP
Centralized Fog Server with OpenLDAP
 
FOSDEM_2019_Buildroot_RISCV.pdf
FOSDEM_2019_Buildroot_RISCV.pdfFOSDEM_2019_Buildroot_RISCV.pdf
FOSDEM_2019_Buildroot_RISCV.pdf
 
Why a zynq should power your next project
Why a zynq should power your next projectWhy a zynq should power your next project
Why a zynq should power your next project
 
From Uc To Embedded
From Uc To EmbeddedFrom Uc To Embedded
From Uc To Embedded
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PI
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
 
Intel Briefing Notes
Intel Briefing NotesIntel Briefing Notes
Intel Briefing Notes
 
[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework
 
Slim Server Theory
Slim Server TheorySlim Server Theory
Slim Server Theory
 

Recently uploaded

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

The Yocto Project

  • 1.
  • 2. Ross Burton, Userspace Architect for Yocto Open Source Technology Centre at Intel This session is a high level introduction to the Yocto Project
  • 3. What is the Yocto Project?
  • 4. Appears to be confusion in the automotive community about the Yocto Project. What is is, what it can offer and so on. We were invited by the LF to come here and clarify what Yocto is. So, the Yocto Project is...
  • 6. An umbrella project. You don't download or install the Yocto Project itself Just like you don't install the Apache Foundation
  • 8. An embedded build environment and development tools Specifically, a build system (bitbake), package metadata (oe-core), Eclipse plugin, Application Development Toolkit (deployable toolchain)
  • 9. x86 • ARM MIPS • PowerPC
  • 10. We support all of the big architectures. oe-core builds for qemu machines for all of these architectures Ensures that the core builds for everything Optional BSPs for specific platform support Everything is cross compiled, so no "but it worked for x86" problems
  • 12. Finally YP is a collaboration space, providing a forum for users to share their problems and solutions Public mailing lists and weekly phone conference PAUSE
  • 14. When picking a platform what's the difference between yocto and android, linaro, tizen, buildroot, baserock, or hacking your favourite desktop distribution...
  • 15. …why pick the Yocto Project?
  • 16. YP is Linux for embedded, from a small ARM board to mission critical xeon clusters Builds a custom distro suited to your needs Easy to add, remove, or change components Open development process, no code drops or license complications
  • 17. Some are easy to hack on, but you’ll regret it later
  • 18. Especially if your target is x86, it's easy to start with a desktop distribution and chop pieces out Building new pieces and rebuilding the pieces that need changes But when you need to change hardware, or rebuild with different compiler flags It's not that easy any more
  • 19. Designed for the long term
  • 20. Yocto is designed for long term use Six monthly release cycle but maintained release branches Commercial support from OSVs Tools to help do the mundane distribution building - Generate package repos and disk images - Static release archives for license compliance
  • 22. Yocto won't surprise you late in product development Reproducable builds for the entire system Clear process for updates - easy to make the changes and publish a new image or repo GPL compliant - trivial to public source *and* build instructions
  • 23. Who is in the Yocto Project?
  • 26. i.e. Intel, Texas Instruments, Freescale
  • 28. i.e. Wind River, MontaVista, Enea Software, Mentor Graphics Commercial supported linux from these vendors
  • 30. Consultants, small and large individuals "scratching an itch" for their own projects
  • 32. finally should mention the advisory board. Yocto is a project at the Linux Foundation, not owned by any particular company The advisory board is comprised of reps from member companies working on Yocto The boards first action was to name itself "advisory board" rather than "steering group" to reflect that it offers advice and input and doesn't control the project technical direction entirely in the hands of the architects and maintainers
  • 33. How does it work?
  • 34. Enough about what the Yocto Project can do How does it work?
  • 35. It’s all about the layers
  • 36. A YP distribution is assembled from a number of layers Layers are modular and you can combine layers from different sources An example
  • 40. core metadata toolchain, kernel, eglibc, cairo, gstreamer, Xorg, Wayland (soon), gtk/qt
  • 42. unless you happy with a qemu emulated machine you'll need a bsp Intel hardware BSP, such as cedar trail (atom, netbook/industrial), fish river island 2 (atom, digital signage, smart services), jasper forest (xeon, server)
  • 44. Distribution policy (Poky in meta-yocto for historial reasons)
  • 46. Enough talk, let's pretend to build something.
  • 47. $ wget http://downloads.yoctoproject.org/… /poky-denzil-7.0.tar.bz2 $ tar xjf poky-denzil-7.0.tar.bz2 $ cd poky-denzil-7.0
  • 48. One of the downloads from the Yocto Project is Poky, a reference distribution. This is basically Bitbake, oe-core, and meta-yocto glued together for convenience Grabbing and extracting the tarball of the 7.0 "denzil" release is as you'd expect
  • 49. $ ./oe-init-build-env ### Shell environment set up for builds. ### You can now run 'bitbake <target>‘ Common targets are: core-image-minimal core-image-sato … $ emacs conf/local.conf
  • 50. First you need to source a shell script to setup the environment. Now lets have a quick look at the configuration file
  • 51. # BB_NUMBER_THREADS = "4" # PARALLEL_MAKE = "-j 4" MACHINE ??= "qemux86" … #MACHINE ?= "qemuarm" #MACHINE ?= "qemumips" #MACHINE ?= "atom-pc" #MACHINE ?= "beagleboard"
  • 52. Just a small fragment of the options available. Defaults are all reasonable and it will successfully build out of the box. For a faster build, change the parallel options. My build machine is a quad core with hyperthreading, so I set both of those to 8 to keep it busy Default target is x86 on qemu. This is trivially changed by simply changing the MACHINE variable. Other options include where to keep downloaded tarballs; location of any mirrors; features to enable such as multiarch, installing the toolchain in the image for development, what package format to use, and more.
  • 54. Then, you can run bitbake with the name of the target you want Targets can be anything - images, packages, or operations. Let's build core-image-minimal, a small system that boots to a console good start to build up from if you're making a single-purpose system
  • 55. Currently 7 running tasks (5452 of 9438): 0: webkit-gtk-1.8.2-r1 do_compile (pid 27137) 1: qt4-embedded-4.8.1-r48.1 do_compile (pid 27129) 2: qt4-x11-free-4.8.1-r46.1 do_compile (pid 27096) 3: systemtap-1.8+git1…-r0 do_compile (pid 27130) 4: gmp-5.0.5-r0 do_package_write_rpm (pid 27131) 5: libglade-2.6.4-r4 do_package_write_rpm (pid 27134) 6: nfs-utils-1.2.3-r5 do_unpack (pid 27187)
  • 56. While bitbake is running you'll see a report of what it's doing, something like this. This isn't actually the output from core-image-minimal but a colleague's world build that happened to be running when I was writing the slides. Poor guy is in for a long wait, webkit and two qt builds.
  • 58. When it finishes building the results are in the deploy directory Here we can see the constructed root file system as a cpio archive, a bare filesystem, a bootable ISO image, and a disk image. Generally I'd be writing the disk image to a fast USB stick with dd and booting from that for testing. The build output is configurable per build and per machine. This build was for a fairly standard Intel system so the final output is typically bootable on those. Build for a say beagleboard and you'll get kernel, bootloader and rootfs tarballs to write a SD card. alongside the images directory there is the package repository that was used to construct the root fs. This can be shared on the network and used as a normal repository, ie install some development or debug symbol packages to fix a bug.
  • 59. Hob
  • 60. Hob is a graphical interface to bitbake demo gremlins have decided to break hob on this laptop - works on my build machine 1st iteration, gtk+ application to configure an image and monitor the build 2nd iteration, web-based. currently under development.
  • 62. So that's how to build an image, but what could we do with it? Two quick ideas
  • 64. I expect virtualisation to be common in next-generation automotive systems as individual processors become more powerful and logically separate systems are ran in virtual machines on fewer physical processors. Because systems built by Yocto can be trivially tuned to be exactly what is required and nothing else they are a good match for virtualised systems, both as a minimal host that does simply manages the virtual machines, or as a specialized virtual machine itself.
  • 66. Cars are complicated beasts these days with many processors performing specialised roles Dashboard, engine management, and so on.
  • 67. Q&A
  • 69. Credits cars2.jpg http://www.flickr.com/photos/15443451@N00/516336421/ Creative Commons 2.0 BY-NC-SA (C) Piyapat Ch. cables.jpg group.jpg tumble.jpg umbrella.jpg (C) David Stewart, All Rights Reserved, Used with Permission. tools.jpg http://www.flickr.com/photos/22749993@N08/5386712834/ Creative Commons 2.0 BY (C) Jim Pennucci cpus.jpg http://www.flickr.com/photos/17642817@N00/4553998825/ Creative Commons 2.0 BY (C) Jason Rogers people.jpg http://www.flickr.com/photos/29370225@N03/6292167005/ Creative Commons 2.0 BY (C) Roberto Trm minifigs.jpg http://www.flickr.com/photos/40646519@N00/305410323/ Creative Commons 2.0 BY (C) peter dutton engineer.jpg