Industrial hardware and QEMU
Introduction
Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
About me
Who am I?
Alberto GarciaComputer engineer, Coruña UniversityWorking at Igalia since 2001Experience in operating systemsDebian maintainerInvolved 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 reproduceForesee points of failureIndustrial hardware as an exampleUseful 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 laboratoriesUniversities
Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
Typical features
SimpleReliableWell-tested technologyExpensive / hard to findHard to replaceSometimes designed ad-hoc
Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
Types of industrial hardware
ADCs, DACsWaveform GeneratorsTime to digital convertersCommunications: serialports, fieldbus
Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
What it is used for
ActuatorsSensorsControl 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 availabilityBugs in the production environment cannot be reproducedin the laboratoryDifficult to debug on-site
Narrow time windowsDangerous 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 makethings easier
Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
QEMU
Machine emulator and virtualizerSupports multiple architecturesCan be accelerated using KVMFree softwareFlexible
Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
How QEMU can help us
We can emulate the device we’re working withEven if the hardware doesn’t exist yet!Useful not just for software:
Develop hardware and its driver in parallelSimulate hard to reproduce conditions
Force hardware errors or other uncommon situationsForesee potential points of failureMake the driver more reliable
Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
Hardware we’ve worked with
Simple PCIe FMC Carrier(SPEC)
FMC Time to Digital Converter
Industrial hardware and QEMU 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 deviceTests can “talk” to QEMU and inject errors or force otherconditionsDetect problems before the changes are put intoproduction
Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
Test environment
Framework written in pythonSimple process:
The virtual machine is startedThe test environment is set upTests are runThe results are compared with the expected values
Industrial hardware and QEMU LinuxCon Europe 2012, Barcelona
Unattended testing
Run QEMU without user interactionNo display necessarySelect the kernel that you want to bootLog all messages, compare them against expected valuesEasily share files between both sidesDetect 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 updatedAlso if the hardware specs changeDetect 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 hardwareYou can also help the development of the hardware
Hardware and software can be developed in parallel
Distributed teamsMore stable driversTest changes before they are deployed
Faster development
Continuous integrationContribute 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