[pve-devel] [PATCH] add qemu guest agent support
Alexandre Derumier
aderumier at odiso.com
Mon Sep 3 09:51:08 CEST 2012
this add chardev and virtio-serial devices for communication with guest agent.
vmconfig option :
qga: 1
Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
PVE/QemuServer.pm | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 2c6baea..9c9af3f 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -287,6 +287,12 @@ EODESC
description => "Enable/disable ACPI.",
default => 1,
},
+ qga => {
+ optional => 1,
+ type => 'boolean',
+ description => "Enable/disable Qemu GuestAgent.",
+ default => 1,
+ },
kvm => {
optional => 1,
type => 'boolean',
@@ -2210,6 +2216,15 @@ sub config_to_command {
#my $soundhw = $conf->{soundhw} || $defaults->{soundhw};
#push @$cmd, '-soundhw', 'es1370';
#push @$cmd, '-soundhw', $soundhw if $soundhw;
+
+ if($conf->{qga}) {
+ my $qgasocket = qga_socket($vmid);
+ my $pciaddr = print_pci_addr("qga0", $bridges);
+ push @$devices, '-chardev', "socket,path=$qgasocket,server,nowait,id=qga0";
+ push @$devices, '-device', "virtio-serial,id=qga0$pciaddr";
+ push @$devices, '-device', 'virtserialport,chardev=qga0,name=org.qemu.guest_agent.0';
+ }
+
$pciaddr = print_pci_addr("balloon0", $bridges);
push @$devices, '-device', "virtio-balloon-pci,id=balloon0$pciaddr" if $conf->{balloon};
@@ -2328,6 +2343,11 @@ sub qmp_socket {
return "${var_run_tmpdir}/$vmid.qmp";
}
+sub qga_socket {
+ my ($vmid) = @_;
+ return "${var_run_tmpdir}/$vmid.qga";
+}
+
sub pidfile_name {
my ($vmid) = @_;
return "${var_run_tmpdir}/$vmid.pid";
@@ -2936,7 +2956,7 @@ sub vm_stop_cleanup {
PVE::Storage::deactivate_volumes($storecfg, $vollist);
}
- foreach my $ext (qw(mon qmp pid vnc)) {
+ foreach my $ext (qw(mon qmp pid vnc qga)) {
unlink "/var/run/qemu-server/${vmid}.$ext";
}
};
@@ -3181,6 +3201,7 @@ sub print_pci_addr {
scsihw0 => { bus => 0, addr => 5 },
scsihw1 => { bus => 0, addr => 6 },
ahci0 => { bus => 0, addr => 7 },
+ qga0 => { bus => 0, addr => 8 },
virtio0 => { bus => 0, addr => 10 },
virtio1 => { bus => 0, addr => 11 },
virtio2 => { bus => 0, addr => 12 },
--
1.7.2.5
More information about the pve-devel
mailing list