industrial hardware and qemu

Post on 12-Sep-2021

22 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 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

top related