Greetings,
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?
Thanks!
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.