windows安装qemu-ga

虚拟机配置里添加virtio serial端口

#virsh edit instance-name

devices里添加下面这段配置,

1 <channel type='unix'>
2 <source mode='bind' path='/var/lib/libvirt/qemu/org.qemu.guest_agent.0.instance-name.sock'/>
3 <target type='virtio' name='org.qemu.guest_agent.0'/>
4 <address type='virtio-serial' controller='0' bus='0' port='1'/>
5 </channel>

安装Qemu Guest Agent服务

#wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo

#yum install virtio-win

安装virtio-win包,virtio-win里包含windows virtio设备驱动,及qemu-ga的安装包。

将msi安装文件和virtio-win.iso拷贝到windows下。

virtio-win.iso包含各个windows版本下的virtio serial驱动,安装对应版本的驱动。

安装对应版本qemu-ga.msi,至此,qga安装完毕。

qga功能扩展

搭建编译环境:

添加功能示例(添加内存使用率检测)

编辑qapi-schema.json,添加自定义结构体及命令声明。

 1     ##  结构体声明
2 # @GuestMemInfo
3 #
4 # Information about Memory usage.
5 #
6 # @total: total size of Memory
7 #
8 # @usage: Memory usage
9 #
10 # Since 2.6
11 ##
12 { 'struct': 'GuestMemInfo',
13 'data': { 'total': 'int', 'usage': 'int' } }
14
15 ## 命令声明
16 # @guest-get-mem-usage:
17 #
18 # Get the memory utilization rate.
19 #
20 # Returns: @GuestMemInfo on success.
21 #
22 # Since 2.6
23 ##
24 { 'command': 'guest-get-mem-usage',
25 'returns': 'GuestMemInfo' }

在commands-win32.c中添加命令实现:

1 GuestMemInfo *qmp_guest_get_mem_usage(Error **errp)
2 {
3 MEMORYSTATUS ms;
4 GuestMemInfo *meminfo = g_new0(GuestMemInfo, 1);
5 GlobalMemoryStatus(&ms);
6 meminfo->usage = (int64_t)ms.dwMemoryLoad;
7 meminfo->total = (int64_t)ms.dwTotalPhys;
8 return meminfo;
9 }

  在commands-posix.c中添加命令实现(直接返回QERR_UNSUPPORTED错误):

1 GuestMemInfo *qmp_guest_get_mem_usage(Error **errp)
2 {
3 error_setg(errp, QERR_UNSUPPORTED);
4 }

重新编译qemu-ga.exe,替换C:\Program Files\qemu-ga下的qemu-ga.exe,重启服务即可。

(dll依赖,在/usr/x86_64-w64-mingw32/sys-root/mingw/bin/下可找到。)

参考文献:

http://wiki.qemu.org/Features/QAPI/GuestAgent

http://wiki.libvirt.org/page/Qemu_guest_agent

http://fedoraproject.org/wiki/Windows_Virtio_Drivers

http://lists.gnu.org/archive/html/qemu-discuss/2014-11/msg00027.html

qemu-ga windows下的安装及监控开发的更多相关文章

  1. Ruby入门--Linux/Windows下的安装、代码开发及Rails实战

    Ruby入门--Linux/Windows下的安装.代码开发及Rails实战 http://www.linuxidc.com/Linux/2014-04/100242.htm Ubuntu 13.04 ...

  2. Windows下快速安装CACTI流量监控

    Windows下快速安装CACTI流量监控 原文  http://os.51cto.com/art/201111/300977.htm CACTI是一套PHP程序,它利用SNMPGET采集数据,使用R ...

  3. flume 1.7在windows下的安装与运行

    flume 1.7在windows下的安装与运行 一.安装 安装java,配置环境变量. 安装flume,flume的官网http://flume.apache.org/,下载地址,下载后直接解压即可 ...

  4. memcache的windows下的安装和简单使用

    原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...

  5. Windows下pry安装和配置

    Windows下pry安装和配置 pry是一个增强型的交互式命令行工具,比irb强大. 有自动完成功能,自动缩进,有颜色.有更强大的调试功能. pry 安装很简单. 在终端输入: gem instal ...

  6. Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11

    Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...

  7. Windows下memcache安装使用

    Windows下Memcache安装 随着时间的推移,网上现在能找到的在 Windows下安装 Memcache 的文档大多已经过时.雪峰这里再简要介绍一下当下最新版的安装和配置方法. Memcach ...

  8. Windows 下如何安装配置Snort视频教程

    Windows 下如何安装配置Snort视频教程: 第一步: http://www.tudou.com/programs/view/UUbIQCng360/ 第二部: http://www.tudou ...

  9. 在windows下完美安装GitHub

    笔者最近在Windows下安装GitHub,过程中遇到不少问题.现在把安装的详细步骤分享给大家,免得大家走弯路. 笔者安装了GitHub for Windows程序,一切都运行顺利.但事情没有结束,首 ...

随机推荐

  1. Java_抽象

    抽象的基本使用 抽象的关键字是abstract,可以用来修饰类(抽象类),还可以修饰方法(抽象方法). 1 //抽象类 2 public abstract class Animal{ 3 //抽象方法 ...

  2. 克鲁斯卡尔(Kruskal)算法(代码)

    算法代码 C#代码 using System; using System.Linq; namespace Kruskal { class Program { static void Main(stri ...

  3. 从零搭建springboot服务03-redis消息订阅

    愿历尽千帆,归来仍是少年 1.所需依赖 <!-- Redis依赖 --> <dependency> <groupId>org.springframework.boo ...

  4. 快速熟悉windows操作

    快捷键 win + E : 打开我的电脑 Ctrl+Shift+Esc:打开资源管理器 Alt +F4 :关闭当前窗口 Win + R:打开命令窗口 DOS 命令 打开CMD 的方式 Win+R:输入 ...

  5. at在指定的时间执行命令+atq列出用户待处理作业(jobs)

    按下crtl+d取消定时任务 # at now+1hourat> echo"a">aat> <EOF>at> <EOT>job 4 ...

  6. 【转载】让KVM虚机能使用音箱与麦克风(vnc及ac97)

    让KVM虚机能使用音箱与麦克风(vnc及ac97) 原 tantexian 发布于 2016/02/29 16:32 字数 462 阅读 164 收藏 0 点赞 1 评论 0 为什么80%的码农都做不 ...

  7. windows怎么访问linux的samba共享目录

    windows怎么访问linux的samba共享目录 听语音 原创 | 浏览:6976 | 更新:2018-07-31 13:20 | 标签:LINUX WINDOWS 1 2 3 4 5 6 7 分 ...

  8. 020.Python生成器和生成器函数

    一 生成器 1.1 基本概念 元组推导式是是生成器(generator) 生成器定义 生成器可以实现自定义,迭代器是系统内置的,不能够更改 生成器的本质就是迭代器,只不过可以自定义. 生成器有两种定义 ...

  9. Python3统计gitlab上的代码量

    import threading import gitlab import xlwt #获取所有的user def getAllUsers(): usersli = [] client = gitla ...

  10. hive的排序 order by和sort by

    在算法中,各个排序算法的复杂度都比较高,正常情况下为O (nlogn) ,所以当数据量特别大的时候,对数组进行排序消耗都很大. 因为hive的计算引擎MapReduce是分布式系统, 利用分布式的特点 ...