
On Fri, Jan 14, 2011 at 11:13:06AM -0700, Eric Blake wrote:
On 01/13/2011 08:45 AM, Cole Robinson wrote:
@@ -3751,6 +3753,12 @@ qemuBuildCommandLine(virConnectPtr conn, goto error;
virCommandAddArg(cmd, str); + + if (sound->model == VIR_DOMAIN_SOUND_MODEL_ICH6) { + virCommandAddArgList(cmd, + "-device", "hda-duplex", NULL);
Suppose I want a guest with two sound cards, both using model='ich6'. Am I correct that the qemu command line needs exactly one "-device hda-duplex" to enable sound from either card to get back to the host, but two "-device intel-hda,..." to implement the two cards in the guest? If so, this doesn't quite do the right thing (you instantiate the hda-duplex device twice); you'd need a bool variable set after the first time you emit this extra device.
The 'intel-hda' device should have an 'id' set on the command line. The codec devices should then use that id value to associate themselves with the intel-hda device. QEMU generally allows you to omit all these ids and does some 'sensible' behaviour, but libvirt must never rely on that because we need to guarentee a stable guest ABI. Everything must thus be fully specified Regards, Daniel