
On 03.07.2013 20:34, Chris Evich wrote:
On 07/03/2013 09:46 AM, Daniel P. Berrange wrote:
On Wed, Jul 03, 2013 at 09:44:46AM -0400, Chris Evich wrote:
Hi,
On Fedora 18 (libvirt 0.10.2.6-1) I'm trying to add a new serial device to a KVM VM with:
virsh attach-device foobar /tmp/serial.xml
and I keep getting:
error: Failed to attach device from /tmp/serial.xml error: XML error: unknown device type
with serial.xml:
<serial type='file'> <source path='/tmp/serialfile'/> <target port='1'/> </serial>
Though I tried it w/o the <target> tag, with and without the --config flag, and with and without the guest running. Assuming it's similar, I tried and was successful in adding this device via virt-manager, though it complains if the VM is running (which is fine).
What am I doing wrong with the virsh attach-device command or XML?
There is no support for hotplug of any character device (that covers serial, parallel, console, channnel elements in the XML)
Daniel
Oops, sorry, should have been more clear than "and with and without the guest running".
* I see the 'unknown device type' error when guest is running and I run "virsh attach-device foobar /tmp/serial.xml --config".
* I also get 'unknown device type' error when guest is NOT running, and I run "virsh attach...." both with or without '--config' flag.
* I see the 'unknown device type' error inside the "details" window when the guest is running and I use virt-manager.
* I do NOT get any error, and the device is attached, when I use virt-manager, and the guest is NOT running (or by clicking yes after getting error in above bullet).
The main difference in using virt-manager, is that I'm selecting the file type and entering in the values manually instead of in an XML file.
This works as expected. Device attach implementation currently doesn't know how to handle <serial/> or any other character device. It doesn't matter if you're doing --live or --config hotplug. However, if you are trying virt-manager on a not running guest, then I guess virt-manager is just clever enough to redefine the domain and not call any hotplug API. This is equivalent to: # virsh destroy $guest # virsh edit $guest (insert desired chardev XML snippet) # virsh start $guest Michal
A loosely-related problem is with serial-hot plug (which is expected to not work). The error message reported under details is the same/similar 'device type error'. Whereas I was expecting something more specific like a "Can't hotplug this" error (see screenshot).
Yes, the error message can be misleading. Michal