Industrial hardware and QEMU. LinuxCon Europe 2012, Barcelona Alberto Garcia

Similar documents
Virtualization Device Emulator Testing Technology. Speaker: Qinghao Tang Title 360 Marvel Team Leader

European Conference on Nanoelectronics and Embedded Systems for Electric Mobility. HIL platform for EV charging and microgrid emulation

FreeBSD and Beaglebone Black, a robotic application.

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

Linuxboot continuous integration

Opensource in neuroimaging. Ben Dooks 2017 Codethink Ltd.

Virtually Impossible

FPGA FIRMWARE FRAMEWORK FOR MTCA.4 AMC MODULES*

EL6483: Basic Concepts of Embedded System ModelingSpring and Hardware-In-The-Loo

BECOMING MORE EFFECTIVE WITH THE ANDROID EMULATOR

Wind River. All Rights Reserved.

Autosave for Research Where to Start with Checkpoint/Restart

Making Dynamic Instrumentation Great Again

DMTCP: Fixing the Single Point of Failure of the ROS Master

Research Group on Internet Measurement Institute of Electronic Systems Warsaw University of Technology

The Embedded Linux Problem

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

INTUITEST Using property-based testing to automate test case generation and diagnosis in web-based graphical user interfaces

Developing with L4 Overview and Pointers

Solving the Data Transfer Bottleneck in Digitizers

Parallels Workstation 4.0 Extreme Read Me

Chapter 2. Operating-System Structures

Wai Chee Wong Sr.Member of Technical Staff Freescale Semiconductor. Raghu Binnamangalam Sr.Technical Marketing Engineer Cadence Design Systems

libvirt integration and testing for enterprise KVM/ARM Drew Jones, Eric Auger Linaro Connect Budapest 2017 (BUD17)

Verifying the Correctness of the PA 7300LC Processor

Programming Robots with ROS, Morgan Quigley, Brian Gerkey & William D. Smart

CSE Verification Plan

18-642: Software Development Processes

Do you need MEV PCIe remote update on Cyclone GX FPGA?

NordiaSoft SCA Architect 2016

INTERMEDIATE PROGRAMMING LESSON

The Calibration of Smart Instrumentation A Better Way

Continuous integration & continuous delivery. COSC345 Software Engineering

BOOSTER RF UPGRADE FOR SPEAR3 *

Skyus DS2. by Inseego. Quick Start Guide

QEMU and the Linux Kernel

CSE 466 Software for Embedded Systems. CSE 466 Software for Embedded Systems

A comparison of performance between KVM and Docker instances in OpenStack

KVM/ARM. Marc Zyngier LPC 12

This video is part of the Microsoft Virtual Academy.

Virtualization. ...or how adding another layer of abstraction is changing the world. CIS 399: Unix Skills University of Pennsylvania.

REPORT MICROSOFT PATTERNS AND PRACTICES

DOUG GOLDSTEIN STAR LAB XEN SUMMIT AUG 2016 ATTACK SURFACE REDUCTION

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD

A new architecture for real-time control in RFX-mod G. Manduchi, A. Barbalace Big Physics Symposium 1/16

Binary Exploitation Lab

Tooling Linux for the Future of Embedded Systems. Patrick Quairoli Director of Alliance and Embedded Technology SUSE /

INTRODUCTION. 2

Yun Shield User Manual VERSION: 1.0. Yun Shield User Manual 1 / Version Description Date. 0.1 Initiate 2014-Jun-21

Post processing techniques to accelerate assertion development Ajay Sharma

Typhoon HIL600. Discover the frontier of Hardware-in-the-Loop testing and quality assurance for power electronics.

Static Analysis of Embedded Systems

Operating- System Structures

Engineering 162 Spring The Hewlett-Packard 4145B Semiconductor Parameter Analyzer

ESS BCM Firmware. ESS ESS BCM Firmware Maurizio Donna

The why and how of getting packaged

Skyus DS Quick Start Guide

Maintaining Linux Long Term & Adding Specific Features in Telecom Systems. Keika Kobayashi NEC Communication Systems Sep 29, Japan2010

IoT The gift that keeps on giving

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Chapter 2: Operating-System Structures

F5 BIG-IQ Centralized Management andlinux KVM: Setup. Version 5.0

Super Charge Your Continuous Integration Deployments. Nikola Gotsev April 26, 2016

mblock Robotics Advanced Programs

Firmware Update Release: Firmware Update. Written By: Q-See qplus.dozuki.com/ Page 1 of 9

Software Development Using Full System Simulation with Freescale QorIQ Communications Processors

Modelio 3 - Issue #165 element view bug

LabVIEW FPGA in Hardware-in-the-Loop Simulation Applications

Using Virtual Platforms To Improve Software Verification and Validation Efficiency

University Program Advance Material

BCS Raspberry Pi Launch Events Getting started with Raspberry Pi

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

What is EV3DEV? Send commands to the EV3 Upload programs and run them on the EV3

Course Content. Objectives of Lecture 18 Black box testing and planned debugging. Outline of Lecture 18

Going to production with snaps and Ubuntu Core

Malware

USB2510T Transverse High-Field USB Magnetometer

Firmware Test Suite - Uses, Development, Contribution and GPL

Testing. So let s start at the beginning, shall we

Effective Data Pipelines: Data Management from Chaos

More Course Overview: Models, Tests, Bugs, and Symbols

F5 iworkflow and Linux KVM: Setup. Version 2.0.2

Alverton Community Primary School

Free and Open Source Software at CERN: Integration of Drivers in The Linux Kernel

Automatic Programming: How Far Can Machines Go? Hila Peleg Technion

Advanced Debugging I. Equipment Required. Preliminary Discussion. Basic System Bring-up. Hardware Bring-up, Section Plan

Computer System Design and Administration

MASSIVE SCALE USB DEVICE DRIVER FUZZ WITHOUT DEVICE. HC Tencent s XuanwuLab

64-bit ARM Unikernels on ukvm

ZyXEL. Firmware Release Note NWA1123-AC. Wireless N Business WLAN 1100 Series Access Point. Release V2.10(AAOX.0)C0. Date : Oct.

Manually Jailbreak Iphone 3gs 6.0 Untethered

Chapter 2: Operating-System Structures

Automation beyond Testing and Embedded System Validation

SALOME Maintenance Procedure. Frédéric Pons (Open Cascade) Roman Nikolaev (Open Cascade)

ARM64 Server RAS Solutions. Jonathan (Zhixiong) Zhang Cavium Inc.

CS , Software Defined PCBs

Impact of platform firmware on Linux kernel. Megha Dey, Sai Praneeth Prakhya Intel Open Source Technology Center

openqa Helping SUSE Linux Enterprise with Automated Testing Richard Brown openqa Technical Lead

LAVA FOR BISECTING KERNEL BUGS LAVA MEETS GIT BISECT RUN

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001

Transcription:

Alberto Garcia <agarcia@igalia.com>

Introduction

About me Who am I? Alberto Garcia Computer engineer, Coruña University Working at Igalia since 2001 Experience in operating systems Debian maintainer Involved in Maemo and MeeGo

This talk How to make the development of device drivers easier: Debug problems that are hard to reproduce Foresee points of failure Industrial hardware as an example Useful for any kind of hardware

Industrial hardware

Industrial hardware Used by: Companies: factories, shipyards, robotics,... Research laboratories Universities

Typical features Simple Reliable Well-tested technology Expensive / hard to find Hard to replace Sometimes designed ad-hoc

Types of industrial hardware ADCs, DACs Waveform Generators Time to digital converters Communications: serial ports, fieldbus

What it is used for Actuators Sensors Control systems

Examples Struck SIS3320-250 8 channel ADC

Challenges

Challenges of developing for this hardware Limited availability Bugs in the production environment cannot be reproduced in the laboratory Difficult to debug on-site Narrow time windows Dangerous environment

Challenges of developing for this hardware

Debugging Is it a problem in the driver or in the device? Is the firmware faulty? Is it wrongly loaded? Is the hardware damaged? How can we reproduce the bug? Do we have easy access to the environment? Is it remotely located?

Using virtualization to make things easier

QEMU Machine emulator and virtualizer Supports multiple architectures Can be accelerated using KVM Free software Flexible

How QEMU can help us We can emulate the device we re working with Even if the hardware doesn t exist yet! Useful not just for software: Develop hardware and its driver in parallel Simulate hard to reproduce conditions Force hardware errors or other uncommon situations Foresee potential points of failure Make the driver more reliable

Hardware we ve worked with Simple PCIe FMC Carrier (SPEC) FMC Time to Digital Converter

How to create new devices in QEMU

Emulating the device

Testing our drivers

Tests Create a set of tests for the device Tests can talk to QEMU and inject errors or force other conditions Detect problems before the changes are put into production

Test environment Framework written in python Simple process: The virtual machine is started The test environment is set up Tests are run The results are compared with the expected values

Unattended testing Run QEMU without user interaction No display necessary Select the kernel that you want to boot Log all messages, compare them against expected values Easily share files between both sides Detect when the system crashes

Running the tests

Continuous integration We can run tests automatically when the driver is updated Also if the hardware specs change Detect regressions more easily

Conclusions

Overall benefits No need to have the actual hardware You can also help the development of the hardware Hardware and software can be developed in parallel Distributed teams More stable drivers Test changes before they are deployed Faster development Continuous integration Contribute to QEMU

Questions & Answers

Thank you!

Images used in this presentation http://www.flickr.com/photos/9197427@n06/2885827751 http://www.flickr.com/photos/ twosevenoneonenineeightthreesevenatenzerosix/7848902444/ http://www.flickr.com/photos/altemark/273968506/ http://www.flickr.com/photos/11304375@n07/2046228644/ http://www.ohwr.org/projects/spec/wiki http://www.ohwr.org/projects/fmc-tdc/wiki