SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Alberto Garcia <agarcia@igalia.com>
Industrial hardware and QEMU

Introduction

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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 and QEMU

LinuxCon Europe 2012, Barcelona
Industrial hardware and QEMU

Industrial hardware

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Industrial hardware

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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Typical features

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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Types of industrial hardware

ADCs, DACs
Waveform Generators
Time to digital converters
Communications: serial
ports, fieldbus

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
What it is used for

Actuators
Sensors
Control systems

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Examples

Struck SIS3320-250 8 channel ADC

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Industrial hardware and QEMU

Challenges

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Challenges of developing for this hardware

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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?

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Industrial hardware and QEMU

Using virtualization to make
things easier

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
QEMU

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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Hardware we’ve worked with

Simple PCIe FMC Carrier
(SPEC)

Industrial hardware and QEMU

FMC Time to Digital Converter

LinuxCon Europe 2012, Barcelona
How to create new devices in QEMU

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Emulating the device

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Industrial hardware and QEMU

Testing our drivers

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Running the tests

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Continuous integration

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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Industrial hardware and QEMU

Conclusions

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Industrial hardware and QEMU

Questions & Answers

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
Industrial hardware and QEMU

Thank you!

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona
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

Industrial hardware and QEMU

LinuxCon Europe 2012, Barcelona

Más contenido relacionado

La actualidad más candente

Demystifying IoT skills : What does it take to become a FullStack IoT engineer?
Demystifying IoT skills : What does it take to become a FullStack IoT engineer?Demystifying IoT skills : What does it take to become a FullStack IoT engineer?
Demystifying IoT skills : What does it take to become a FullStack IoT engineer?
Emertxe Information Technologies Pvt Ltd
 
Freddie Mac Internship Overview
Freddie Mac Internship OverviewFreddie Mac Internship Overview
Freddie Mac Internship Overview
Charles Stolze
 
02 intro to programming in .net (part 2)
02   intro to programming in .net (part 2)02   intro to programming in .net (part 2)
02 intro to programming in .net (part 2)
Felisha Hosein
 
Native Script by Sebastian Witalec
Native Script by Sebastian WitalecNative Script by Sebastian Witalec
Native Script by Sebastian Witalec
Simone Basso
 
01 intro to programming in .net
01   intro to programming in .net01   intro to programming in .net
01 intro to programming in .net
Felisha Hosein
 

La actualidad más candente (20)

Getting started with .NET Core on Linux
Getting started with .NET Core on LinuxGetting started with .NET Core on Linux
Getting started with .NET Core on Linux
 
Demystifying IoT skills : What does it take to become a FullStack IoT engineer?
Demystifying IoT skills : What does it take to become a FullStack IoT engineer?Demystifying IoT skills : What does it take to become a FullStack IoT engineer?
Demystifying IoT skills : What does it take to become a FullStack IoT engineer?
 
Freddie Mac Internship Overview
Freddie Mac Internship OverviewFreddie Mac Internship Overview
Freddie Mac Internship Overview
 
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
WebRTC Webinar & Q&A -  All About Microsoft & WebRTC Hosting Guest Speaker Ja...WebRTC Webinar & Q&A -  All About Microsoft & WebRTC Hosting Guest Speaker Ja...
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
 
Components of .NET Framework
Components of .NET FrameworkComponents of .NET Framework
Components of .NET Framework
 
GPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators FamiliesGPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators Families
 
APIdays Paris 2014 - The State of Web API Languages
APIdays Paris 2014 - The State of Web API LanguagesAPIdays Paris 2014 - The State of Web API Languages
APIdays Paris 2014 - The State of Web API Languages
 
Nhu Viet Nguyen "Architectural Features of Automotive"
Nhu Viet Nguyen "Architectural Features of Automotive"Nhu Viet Nguyen "Architectural Features of Automotive"
Nhu Viet Nguyen "Architectural Features of Automotive"
 
RISC-V Summit 2019: Next-generation IDE for your RISC-V Product in 20 Minutes
RISC-V Summit 2019: Next-generation IDE for your RISC-V Product in 20 MinutesRISC-V Summit 2019: Next-generation IDE for your RISC-V Product in 20 Minutes
RISC-V Summit 2019: Next-generation IDE for your RISC-V Product in 20 Minutes
 
GPCE16 Poster: Automatic Non-functional Testing of Code Generators Families
GPCE16 Poster: Automatic Non-functional Testing of Code Generators Families GPCE16 Poster: Automatic Non-functional Testing of Code Generators Families
GPCE16 Poster: Automatic Non-functional Testing of Code Generators Families
 
02 intro to programming in .net (part 2)
02   intro to programming in .net (part 2)02   intro to programming in .net (part 2)
02 intro to programming in .net (part 2)
 
Component of .net
Component of .netComponent of .net
Component of .net
 
Manish Rao
Manish RaoManish Rao
Manish Rao
 
PDQ Programming Languages plus an overview of Alice - Frank Ducrest
PDQ Programming Languages plus an overview of Alice - Frank DucrestPDQ Programming Languages plus an overview of Alice - Frank Ducrest
PDQ Programming Languages plus an overview of Alice - Frank Ducrest
 
APIdays 2015 - The State of Web API Languages
APIdays 2015 - The State of Web API LanguagesAPIdays 2015 - The State of Web API Languages
APIdays 2015 - The State of Web API Languages
 
Native Script by Sebastian Witalec
Native Script by Sebastian WitalecNative Script by Sebastian Witalec
Native Script by Sebastian Witalec
 
01 intro to programming in .net
01   intro to programming in .net01   intro to programming in .net
01 intro to programming in .net
 
Microsoft .Net Technology
Microsoft .Net TechnologyMicrosoft .Net Technology
Microsoft .Net Technology
 
Cloud Conf 2015 - Develop and Deploy IOT Applications
Cloud Conf 2015 - Develop and Deploy IOT ApplicationsCloud Conf 2015 - Develop and Deploy IOT Applications
Cloud Conf 2015 - Develop and Deploy IOT Applications
 
Introduction to .NET Programming
Introduction to .NET ProgrammingIntroduction to .NET Programming
Introduction to .NET Programming
 

Destacado

WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
Igalia
 
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
Gwang Yoon Hwang
 

Destacado (10)

Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)
 
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
 
Webkit Chromium Contribution Process
Webkit Chromium Contribution ProcessWebkit Chromium Contribution Process
Webkit Chromium Contribution Process
 
Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)
Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)
Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)
 
LCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDKLCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDK
 
Accelerated compositing in WebKit: Now and in the future (DEVIEW 2015)
Accelerated compositing in WebKit: Now and in the future (DEVIEW 2015)Accelerated compositing in WebKit: Now and in the future (DEVIEW 2015)
Accelerated compositing in WebKit: Now and in the future (DEVIEW 2015)
 
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
 
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
 
Chrome & Webkit overview
Chrome & Webkit overviewChrome & Webkit overview
Chrome & Webkit overview
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
 

Similar a Developing and Testing Industrial Hardware With QEMU (LinuxCon Europe 2012)

Similar a Developing and Testing Industrial Hardware With QEMU (LinuxCon Europe 2012) (20)

Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...
 
Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...
 
Introduction to InduSoft Web Studio 8.0 + SP1
Introduction to InduSoft Web Studio 8.0 + SP1Introduction to InduSoft Web Studio 8.0 + SP1
Introduction to InduSoft Web Studio 8.0 + SP1
 
Introiws80sp2 170501180754
Introiws80sp2 170501180754Introiws80sp2 170501180754
Introiws80sp2 170501180754
 
Introduction to Wonderware InduSoft Web Studio 8.0+SP2
Introduction to Wonderware InduSoft Web Studio 8.0+SP2Introduction to Wonderware InduSoft Web Studio 8.0+SP2
Introduction to Wonderware InduSoft Web Studio 8.0+SP2
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: Keynote
 
Overcome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case StudyOvercome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case Study
 
Network Automation at Shapeways
Network Automation at ShapewaysNetwork Automation at Shapeways
Network Automation at Shapeways
 
Some skills required to be a computer hardware engineer professional
Some skills required to be a computer hardware engineer professionalSome skills required to be a computer hardware engineer professional
Some skills required to be a computer hardware engineer professional
 
Anyware... from mainframe to thin and cloud
Anyware... from mainframe to thin and cloudAnyware... from mainframe to thin and cloud
Anyware... from mainframe to thin and cloud
 
Testing and HW Virtualization (7th White Rabbit Workshop)
Testing and HW Virtualization (7th White Rabbit Workshop)Testing and HW Virtualization (7th White Rabbit Workshop)
Testing and HW Virtualization (7th White Rabbit Workshop)
 
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
 
Sioux Hot-or-Not: The future of Linux (Alan Cox)
Sioux Hot-or-Not: The future of Linux (Alan Cox)Sioux Hot-or-Not: The future of Linux (Alan Cox)
Sioux Hot-or-Not: The future of Linux (Alan Cox)
 
aura_profile-corp
aura_profile-corpaura_profile-corp
aura_profile-corp
 
Infrastructure Automation
Infrastructure Automation Infrastructure Automation
Infrastructure Automation
 
Introduction to InduSoft Web Studio 8.1 + SP5
Introduction to InduSoft Web Studio 8.1 + SP5Introduction to InduSoft Web Studio 8.1 + SP5
Introduction to InduSoft Web Studio 8.1 + SP5
 
InTouch Machine Edition: Overview
InTouch Machine Edition: OverviewInTouch Machine Edition: Overview
InTouch Machine Edition: Overview
 
Introduction to InduSoft Web Studio 8.1 + SP3
Introduction to InduSoft Web Studio 8.1 + SP3Introduction to InduSoft Web Studio 8.1 + SP3
Introduction to InduSoft Web Studio 8.1 + SP3
 
Introduction to InduSoft Web Studio 8.1
Introduction to InduSoft Web Studio 8.1Introduction to InduSoft Web Studio 8.1
Introduction to InduSoft Web Studio 8.1
 
Training for New Users
Training for New UsersTraining for New Users
Training for New Users
 

Más de Igalia

Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
Igalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
Igalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Igalia
 

Más de Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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
 

Developing and Testing Industrial Hardware With QEMU (LinuxCon Europe 2012)

  • 1. Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona Alberto Garcia <agarcia@igalia.com>
  • 2. Industrial hardware and QEMU Introduction Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 3. 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 Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 4. 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 and QEMU LinuxCon Europe 2012, Barcelona
  • 5. Industrial hardware and QEMU Industrial hardware Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 6. Industrial hardware Used by: Companies: factories, shipyards, robotics, ... Research laboratories Universities Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 7. Typical features Simple Reliable Well-tested technology Expensive / hard to find Hard to replace Sometimes designed ad-hoc Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 8. Types of industrial hardware ADCs, DACs Waveform Generators Time to digital converters Communications: serial ports, fieldbus Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 9. What it is used for Actuators Sensors Control systems Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 10. Examples Struck SIS3320-250 8 channel ADC Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 11. Industrial hardware and QEMU Challenges Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 12. 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 Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 13. Challenges of developing for this hardware Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 14. 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? Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 15. Industrial hardware and QEMU Using virtualization to make things easier Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 16. QEMU Machine emulator and virtualizer Supports multiple architectures Can be accelerated using KVM Free software Flexible Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 17. 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 Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 18. Hardware we’ve worked with Simple PCIe FMC Carrier (SPEC) Industrial hardware and QEMU FMC Time to Digital Converter LinuxCon Europe 2012, Barcelona
  • 19. How to create new devices in QEMU Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 20. Emulating the device Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 21. Industrial hardware and QEMU Testing our drivers Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 22. 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 Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 23. 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 Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 24. 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 Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 25. Running the tests Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 26. Continuous integration We can run tests automatically when the driver is updated Also if the hardware specs change Detect regressions more easily Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 27. Industrial hardware and QEMU Conclusions Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 28. 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 Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 29. Industrial hardware and QEMU Questions & Answers Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 30. Industrial hardware and QEMU Thank you! Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  • 31. 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 Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona