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 operati...
This talk

How to make the development of device drivers easier:
Debug problems that are hard to reproduce
Foresee points ...
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

Industria...
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, field...
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
i...
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 da...
Industrial hardware and QEMU

Using virtualization to make
things easier

Industrial hardware and QEMU

LinuxCon Europe 20...
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...
Hardware we’ve worked with

Simple PCIe FMC Carrier
(SPEC)

Industrial hardware and QEMU

FMC Time to Digital Converter

L...
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 pr...
Test environment

Framework written in python
Simple process:
The virtual machine is started
The test environment is set u...
Unattended testing

Run QEMU without user interaction
No display necessary
Select the kernel that you want to boot
Log all...
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...
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 softwa...
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/
twosev...
Upcoming SlideShare
Loading in...5
×

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

708

Published on

By Alberto García.

Adding Linux support for industrial hardware entails a number of problems not usually found in consumer devices. In most cases they are installed in critical environments with limited availability, where fixing bugs, developing new features and foreseeing possible fault conditions is often a hard task. Using the support of industrial devices in the Linux kernel, the presentation will show how to use QEMU to solve these issues, improve the robustness of the device driver and speed up its development.
People interested in ways to write and test software and hardware using virtualization technologies will find this talk useful, in particular hackers working in testing, device drivers and hardware development.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
708
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona Alberto Garcia <agarcia@igalia.com>
  2. 2. Industrial hardware and QEMU Introduction Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  3. 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. 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. 5. Industrial hardware and QEMU Industrial hardware Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  6. 6. Industrial hardware Used by: Companies: factories, shipyards, robotics, ... Research laboratories Universities Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  7. 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. 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. 9. What it is used for Actuators Sensors Control systems Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  10. 10. Examples Struck SIS3320-250 8 channel ADC Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  11. 11. Industrial hardware and QEMU Challenges Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  12. 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. 13. Challenges of developing for this hardware Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  14. 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. 15. Industrial hardware and QEMU Using virtualization to make things easier Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  16. 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. 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. 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. 19. How to create new devices in QEMU Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  20. 20. Emulating the device Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  21. 21. Industrial hardware and QEMU Testing our drivers Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  22. 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. 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. 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. 25. Running the tests Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  26. 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. 27. Industrial hardware and QEMU Conclusions Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  28. 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. 29. Industrial hardware and QEMU Questions & Answers Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  30. 30. Industrial hardware and QEMU Thank you! Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
  31. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×