firmware test suite - uses, development, contribution and gpl · firmware test suite - uses,...

44
presented by Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 – November 3, 2017 Presented by Alex Hung (Canonical, Ltd) UEFI Plugfest October 2017 www.uefi.org 1

Upload: others

Post on 15-Jun-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

presented by

Firmware Test Suite -Uses, Development, Contribution and GPL

Fall 2017 UEFI PlugfestOctober 30 – November 3, 2017

Presented by Alex Hung (Canonical, Ltd)

UEFI Plugfest – October 2017 www.uefi.org 1

Page 2: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Agenda

• Introduction

• Installation & Uses

• Adding New Tests

• Contributing Patches

• GPLv2 & FWTS

• FWTS Community

UEFI Plugfest – October 2017 www.uefi.org 2

Page 3: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Introduction

UEFI Plugfest – October 2017 www.uefi.org 3

Page 4: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

What is Firmware Test Suite (FWTS)?

• The recommended ACPI SCT

• Open-source Linux tool that automates firmware checking

• Detect bugs and advise firmware engineers

– Test interactions between Linux & firmware

– Gather firmware data for debug

UEFI Plugfest – October 2017 www.uefi.org 4

Page 5: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

What is Firmware Test Suite (FWTS)?

• A good choice if one wants to implement new tests for specific features

–Device Tree (an alternative for ACPI)

– SBBR (a requirement for ARM server)

–OPAL (for IBM PowerPC)

UEFI Plugfest – October 2017 www.uefi.org 5

Page 6: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

FWTS Framework & Tests

UEFI Plugfest – October 2017 www.uefi.org 6

Linux Kernel

UEFI Runtime Services

ACPI Tables and AML

ACPICA

Hardware Devices

CPU SMBIOS

Firmware Test Suite

ACPI BIOSDevice

TreeKernel SMBIOS Opal PCI UEFI etc…

Page 7: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

FWTS Architecture – ACPI

UEFI Plugfest – October 2017 www.uefi.org 7

ACPI

acpitables apicinstance asf aspt bert boot checksummore ACPI

tables…

Page 8: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

FWTS Architecture – UEFI

UEFI Plugfest – October 2017 www.uefi.org 8

UEFI Runtime Test

csm esrt securebootcert uefibootpatch uerfiauthvar uefirtmisc uefirttime uefirtvariable

Page 9: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Installation & Uses

UEFI Plugfest – October 2017 www.uefi.org 9

Page 10: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Getting FWTS-LIVE

• Download - http://fwts.ubuntu.com/fwts-live/

• Make bootable fwts-live USB disk

– Linux:

• Identify USB disk: dmesg | tail -10 | grep Attached

• Copy image: sudo dd if=fwts-live-17.08.00.img of=/dev/sdb ; sync

– Windows: Use “Win32 Disk Imager”

UEFI Plugfest – October 2017 www.uefi.org 10

Page 11: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Installing FWTS in Ubuntu

• Add apt-repository for latest release

– sudo add-apt-repository ppa:firmware-testing-team/ppa-fwts-stable

• Install fwts

– sudo apt update

– sudo apt install fwts fwts-frontend

UEFI Plugfest – October 2017 www.uefi.org 11

Page 12: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Installing from Source Code

• Download source code – git clone git://kernel.ubuntu.com/hwe/fwts.git– git clone https://github.com/ColinIanKing/fwts

• Setup build environment & configure– sudo apt-get build-dep fwts– autoreconf -ivf && ./configure

• Compile and install– make clean && make -j4 (= 4 threads)– sudo make install

UEFI Plugfest – October 2017 www.uefi.org 12

Page 13: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

FWTS User Interfaces

UEFI Plugfest – October 2017 www.uefi.org 13

Firmware Test Suite

ACPI APIC BIOSDevice

TreeKernel SMBIOS PCI UEFI etc…

Command Line

fwts-frontend (GUI)

Page 14: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Using FWTS [Demo]

UEFI Plugfest – October 2017 www.uefi.org 14

Page 15: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Using FWTS – Command Line

• Run a single test, ex. C states– sudo fwts cpufreq

• Run multiple tests, ex. C states + PCIe ASPM– sudo fwts cpufreq aspm

• Run all ACPI tests + all UEFI tests– sudo fwts --acpitests --uefitests

• View all tests– fwts --show-tests-full

UEFI Plugfest – October 2017 www.uefi.org 15

Page 16: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Using FWTS – Command Line

UEFI Plugfest – October 2017 www.uefi.org 16

Page 17: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Using FWTS – fwts-frontend-text

UEFI Plugfest – October 2017 www.uefi.org 17

Page 18: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Using FWTS – fwts-frontend-text

UEFI Plugfest – October 2017 www.uefi.org 18

Page 19: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Using FWTS – fwts-frontend-text

UEFI Plugfest – October 2017 www.uefi.org 19

Page 20: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Using FWTS – fwts-frontend-text

UEFI Plugfest – October 2017 www.uefi.org 20

Page 21: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Using FWTS – fwts-frontend-text

UEFI Plugfest – October 2017 www.uefi.org 21

Page 22: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Results.log

UEFI Plugfest – October 2017 www.uefi.org 22

Page 23: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Results.log – Tests

UEFI Plugfest – October 2017 www.uefi.org 23

Page 24: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Results.log – Summary

UEFI Plugfest – October 2017 www.uefi.org 24

Page 25: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Adding New Tests

UEFI Plugfest – October 2017 www.uefi.org 25

Page 26: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

FWTS Directories

UEFI Plugfest – October 2017 www.uefi.org 26

Firmware Test Suite

ACPI BIOSDevice

TreeKernel SMBIOS Opal PCI UEFI etc…

Page 27: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Adding an ACPI Table Test

• [DEMO] adding DPPT table as an example–Add to FWTS

–Use iasl & fwts — dumpfile to test the new table

• [DEMO] adding a new test group such as — acpitests

UEFI Plugfest – October 2017 www.uefi.org 27

Page 28: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Contributing Patches

UEFI Plugfest – October 2017 www.uefi.org 28

Page 29: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Contributors

UEFI Plugfest – October 2017 www.uefi.org 29

Page 30: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Why do People Contribute?

• My manager asks me to

• A bug annoys me

• My name will show up in Google

• I can list this in LinkedIn

• I can get a free ticket to COSCUP

• All of the above

UEFI Plugfest – October 2017 www.uefi.org 30

Page 31: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Why do Companies Contribute?

• Same reasons for any other open source projects– Framework is easy to add new features, ex.

Device Tree– Existing code is available, ex. ARM’s Server

Base Boot Requirements (SBBR)– Example: Linux-Only-Spec (imaginary) that

must exclude all Windows features• No DBGP, DBG2, MSDM, and SLIC etc…

UEFI Plugfest – October 2017 www.uefi.org 31

Page 32: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Submitting Patches

UEFI Plugfest – October 2017 www.uefi.org 32

Send patches by Git

Generate patches by GitHeader Signed-off

(Implement fwts-test tests)

Check Coding Styles

Function brackets Spaces & tabs Line length

Write Some CodeAdd a new test Fix a bug

Page 33: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Check Patch Formats

• Following Linux source code convention

–Not as restricted

• Signed-off

• Common format errors

–Examples

UEFI Plugfest – October 2017 www.uefi.org 33

Page 34: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

FWTS-TEST

• A test for testing FWTS implementation

–Check it

• Needed when adding new tests

• Ask us how to do it

–We can help! (sometimes)

UEFI Plugfest – October 2017 www.uefi.org 34

Page 35: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

GPLv2 & FWTS

UEFI Plugfest – October 2017 www.uefi.org 35

Page 36: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

GPLv2

• FWTS uses GPLv2

• GPL is a “Copy-Left” license

• Can-do & can’t-do

• Implication

–Contribute or not

–Public & private PPA

UEFI Plugfest – October 2017 www.uefi.org 36

Page 37: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Should I Upstream Patches?

• It depends

• But the answer is usually YES

UEFI Plugfest – October 2017 www.uefi.org 37

Page 38: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Must I Release My Patches?

• It depends

• But the answer is usually NO

• Problems

–Maintenance gets more and more difficult as FWTS grows

UEFI Plugfest – October 2017 www.uefi.org 38

Page 39: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Are You 100% Certain?

• No

• Open source license is a complex topic

• Please consult professional lawyers

UEFI Plugfest – October 2017 www.uefi.org 39

Page 40: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

FWTS Community

UEFI Plugfest – October 2017 www.uefi.org 40

Page 41: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Contact FWTS Community

• Email List (subscribe)

[email protected]

• Social media (FaceBook, Google+ & Twitter)

• Launchpad

• UEFI Plugfest!!!

UEFI Plugfest – October 2017 www.uefi.org 41

Page 42: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Official URL

https://wiki.ubuntu.com/FirmwareTestSuite

UEFI Plugfest – October 2017 www.uefi.org 42

Page 43: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Q&A

UEFI Plugfest – October 2017 www.uefi.org 43

Page 44: Firmware Test Suite - Uses, Development, Contribution and GPL · Firmware Test Suite - Uses, Development, Contribution and GPL Fall 2017 UEFI Plugfest October 30 –November 3, 2017

Thanks for attending the Fall 2017 UEFI Plugfest

For more information on the Unified EFI Forum and UEFI Specifications, visit http://www.uefi.org

presented by

UEFI Plugfest – October 2017 www.uefi.org 44