I'm trying to automate the testing of driver support in a library of OS images used for automated deployment in a data center environment.

In most cases, I see people standardize on a few OSs and a few server hardware models, which makes testing and validating that all the OS images contain drivers that are supported on all the hardware fairly manageable.

Unfortunately, I can't do that. I have several dozen OSs (Linux/Windows/Solaris, x86/x64/SPARC, versions going back 3 years) that really should be tested against representative server hardware from Dell, HP, IBM and Sun going back 3 years. That's a lot of work and a lot of physical systems.

What I'd rather do is pick up the PCI device info of the various storage controllers (and maybe NICs) and use something to simulate the devices in a VM. I could then apply/install the OS images to the VMs and see if the kernel code which matches up detected PCI devices with available drivers runs into a problem or not. There would have to be some simulation of actual device functions, since the OS would start trying to use the device after the driver loaded, but it seems like people doing driver or hardware development might have a similar need for such a tool.

Does anyone know if such a thing exists? Or is there a completely different workaround that would address my problem?


1 Answer 1


To simulate the various PCI devices you're talking about you'd have to have someone write virtual versions of those PCI devices.

Since there's no "standard" for writing a virtual hardware device (though, as I think about it, it would sure be cool if there was) that would work with different hypervisors I'm not sure how you'd go about that. (Heck, I'm not even sure if you can add virtual device modules to any of the major hypervisors.)

The effort to simulate a complex device, like a RAID controller, would be pretty major. It'd basically be a re-implementation of the hardware and software of the physical device in software. (It would be a neat thing, though, to have a clean-room implementation of a hardware device in software for validation testing of drivers in a virtual environment... Hmmm. Somebody has to have done this for some device in production at some point...)

It's a neat idea, but I don't think anything exists to do what you want, and if it did, it would be on a device-for-device basis.

  • Okay-- so does anybody here know: Is there any API for any of the mainstream hypervisors to create virtual hardware devices? I've done a little searching but I must not be using the right words. Even just exposing a range of PCI control registers or memory locations directly to the guest OS would be fairly cool. Jun 24, 2009 at 21:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.