Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,472 views

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
  • Be the first to comment

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

×