uefi summer plugfest 2011 · •buildbot used as controlling mechanism –continuous integration...
TRANSCRIPT
![Page 1: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/1.jpg)
LinuxCon EuropeUEFI Mini-Summit
7 October 2015
Session 3 – LUV Shack: An Automated Linux Kernel and UEFI Firmware Testing Infrastructure
Matt Fleming, Intel
![Page 2: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/2.jpg)
Linux* UEFI Validation Project
• Started in January 2014
• Custom Linux Distribution (Yocto Project)
• Provides boot time and runtime testing
• Crash fast, crash hard, then recover
www.uefi.org 2LinuxCon EU 2015
![Page 3: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/3.jpg)
LUV Project
www.uefi.org 3LinuxCon EU 2015
![Page 4: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/4.jpg)
The 5000 mile problem
• USB live images do not scale
• Geography is a barrier
• Debugging vicariously is hard
www.uefi.org 4LinuxCon EU 2015
![Page 5: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/5.jpg)
LUV Shack
• Buildbot used as controlling mechanism
– Continuous integration framework
– Written in Python
• Mixture of physical and virtual machines
• Everything is version controlled
www.uefi.org 5LinuxCon EU 2015
![Page 6: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/6.jpg)
LUV Shack
www.uefi.org 6LinuxCon EU 2015
![Page 7: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/7.jpg)
LUV Shack - overview
www.uefi.org 7LinuxCon EU 2015
BUILD
MASTER
X64
BUILD
SLAVE
Poll
IA32
BUILD
SLAVE
Aarch64
BUILD
SLAVE
Changes Status
![Page 8: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/8.jpg)
LUV Shack - changes
www.uefi.org 8LinuxCon EU 2015
“master”
Everything is a git branch
![Page 9: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/9.jpg)
LUV Shack - build
www.uefi.org 9LinuxCon EU 2015
factory = BuildFactory()
factory.addStep(Git(repourl=‘git://github.com/01org/luv-yocto.git’,
branch=‘next’, mode=‘full’))
factory.addStep(ShellCommand(description=“build image”,
command=[“/data/buildbot/luv-build”, “next”]))
factory.addStep(Trigger(schedulerNames=[“next-tests-x64”],
waitForFinish=True))
![Page 10: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/10.jpg)
LUV Shack - test
www.uefi.org 10LinuxCon EU 2015
OVMF
OVMF
+
Secure
Boot
Minnow
Board
UEFI
SDV
Qemu PXE / netboot
![Page 11: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/11.jpg)
LUV Shack - results
www.uefi.org 11LinuxCon EU 2015
![Page 12: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/12.jpg)
LUV Shack Wins
• Can run tests in parallel
• Debug issues remotely
• Plug and play testing
• Test out kernel and firmware patches easily
• Regression testing
• Orders of magnitude improvement in
development time
www.uefi.org 12LinuxCon EU 2015
![Page 13: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/13.jpg)
LUV Shack Evolution
1. Running on developer’s machines
www.uefi.org 13LinuxCon EU 2015
![Page 14: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/14.jpg)
LUV Shack Evolution
1. Running on developer’s machines
2. Run LUV on remote machines
www.uefi.org 14LinuxCon EU 2015
![Page 15: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/15.jpg)
LUV Shack Evolution
1. Running on developer’s machines
2. Run LUV on remote machines
3. Build custom LUV and deploy in parallel
www.uefi.org 15LinuxCon EU 2015
![Page 16: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/16.jpg)
Case Study
• EFI_PROPERTIES_TABLE new in UEFI v2.5
• Required Linux kernel enabling
• We didn’t have access to hardware
• Solution? A new luv-yocto.git branch!
www.uefi.org 16LinuxCon EU 2015
![Page 17: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/17.jpg)
Case Study
www.uefi.org 17LinuxCon EU 2015
![Page 18: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/18.jpg)
Final Thoughts
• Please run LUV and report results
– USB image
– PXE
– Qemu
• Tell us about your tests
• LUV integrates with other validation tools
www.uefi.org 18LinuxCon EU 2015
![Page 19: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/19.jpg)
Resources
• https://01.org/linux-uefi-validation
• https://github.com/01org/luv-yocto
• http://docs.buildbot.net/current/tutorial/
• https://www.yoctoproject.org
www.uefi.org 19LinuxCon EU 2015
![Page 20: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/20.jpg)
Questions?
www.uefi.org 20LinuxCon EU 2015
![Page 21: UEFI Summer Plugfest 2011 · •Buildbot used as controlling mechanism –Continuous integration framework –Written in Python •Mixture of physical and virtual machines •Everything](https://reader035.vdocuments.us/reader035/viewer/2022062917/5ecd54427b8a796bf06b97f4/html5/thumbnails/21.jpg)
Interested in Joining?www.uefi.org/membership
UEFI FW/OS Forum:
uefi.org/FWOSForum
A free public forum focused on firmware and O/S
integration
USRT Security Issue Reporting:
uefi.org/security
A safe reporting site to inform the UEFI
of any security issue or vulnerability
based on firmware