SPICE在ubuntu上,Guest机的配置。
系统配置:
1.显示配置:
qemu使用SDI接口来显示客户系统,这里我们有两个选择,一个是qemu本身来显示,二是通过VNC来显示。
默认情况下是由qemu自己显示,要使用vnc的话我们需要加上-vnc :1参数,因此kvm运行命令就变成:
sudo qemu-system-x86_64 -hda winxp.img -boot d -m 384 -no-acpi -vnc :1
你也可以-vnc :2用过vnc的人就知道那个数字是什么意思,也就是一个标识,这样的话kvm运行时就没有
任何的输出了,我们直接用vncviewer :1来连接kvm里的vncserver进行显示。
进入XP系统后,显卡是默认的显卡只支持1024*768大小的显示,如果我们想调整到更大,启动时加上参数-std-vga就可以了,进入XP后可以
调整显卡到更高的屏幕参数,如果客户机是linux,还可以支持opengl,详细的设置可参考官方的说明:http://kvm.qumranet.com/kvmwiki/HOWTO_VMGL
2. 鼠标设置:
默认的qemu在窗口模式下会发现鼠标很慢,但是如果调整成全屏模式就没有这个问题,鼠标移动很平滑,很顺畅。如果是VNC的模式会发现
总是有两个鼠标,而且移动很慢,这个时候只要我们在qemu启动的时候加上-usbdevice tablet就可以解决VNC下的问题了。
3. 声卡设置:
如果需要声音,只要在启动的时候加上参数:-soundhw all就可以,也可以用qemu -soundhw ?列出所支持的声卡硬件,用-soundhw <sound card>
选用指定的硬件。
4. 网络设置
首先在kvm的sourceforge下载页面: http://sourceforge.net/project/showfile ... _id=180599可以看到除了kvm还有kvm-guest-drivers-windows的驱动,下载此驱动,然后想办法放到虚拟机中(通过共享,或者直接在虚拟机下载)在kvm启动参数中增加-net nic,model=virtio参数,然后重新启动xp,进入xp后就会提示你有新设备需要安装,弹出驱动安装窗口,从下载的kvm-guest-driver中选择合适的驱动程序进行安装即可。这样安装的网卡速度上更快,几乎可以接近物理网卡的速度,具体我也没有测试前后差别有多大,不过网上应该能找到,反正使用起来感觉还不错,特别是用KVM跑服务器的话,该驱动
就更应该安装了。
网卡驱动安装方法二:
1、下载最新的virto for win驱动
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
有两个:
virtio-win-1.1.11-0.vfd
virtio-win-1.1.11-0.iso
前者是windows安装时候加驱动用的(软盘镜像),后者是装好了再加驱动(光盘镜像)
本文主要叙述安装时候加载驱动的办法。(硬盘驱动在安装时候加载,网卡可以装好了再加载
2、安装网卡驱动
安装好XP,能正常启动以后,我们添加如下启动参数,将网卡改为virtio,同时加载那张驱动光盘。
[shell]
sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=pathX/winxp.img,cache=writeback,if=virtio,boot=on -net nic,model=virtio -cdrom pathX/virtio-win-1.1.11-0.iso
[/shell]
启动完毕会提示新驱动,在光盘中找就OK了!
qemu的网络配置有3种,更VMware所支持的一样:nat, host-only, bridge.
1)nat方式:
这是最简单的一种,直接在启动参数中加上-net user即可,主机打开DHCP功能,客户机通过DHCP获取IP,该置下客户机可以上网,但不能跟主机通讯。
2)host-only:
使用tap/tun虚拟出一个网卡,需要内核支持tap/tun模块(一般都支持),还需要配置iptables转发,因为tap网卡上的ip不能和主机上ip在同一个网段。客户使用该网卡可以跟主机通讯也可以上网,但局域网内的其他机器不能直接访问客户机,需要主机通过端口转发或者其他方式来访问。具体配置可以参见:
http://cisco7200-dynamips-dynagen-pemu. ... p?tid=1544
我的简单配置(内核需要支持tap/tun):
(1)修改/etc/sysctrl.conf, 将net.ipv4.ip_forward=1打开,也就是ip转发功能打开,修改完后需要reboot机器。
(2)建立一个脚本kvm-ifup.sh,内容很简单:
#!/bin/bash
sudo ifconfig $1 172.0.100.1 netmask 255.255.255.0 up
该脚本就是配置tap虚拟网卡设备的ip。$1通常会是tap0,根据你在qemu启动参数中给定的名字而定。
(3)在qemu启动参数中给定相关的虚拟网卡设备名,和相关的设备初始化脚本,也就是上面的这个脚本:
sudo qemu-system-x86_64 -hda /virtualOS/winxp.img -m 1024 -no-frame -localtime -no-acpi -usb -net nic,model=virtio -net tap,ifname=tap0,script=/home/chao/kvm-ifup.sh -usb -usbdevice tablet -std-vga
(4)在客户机中,手动的配置ip,网关和DNS,跟tap虚拟网卡的ip同一网段,而网关就是虚拟网卡的ip,比如我的xp配置:
IP: 172.0.100.101
MASK: 255.255.255.0
GATEWAY:172.0.100.1
(5)配置iptables的NAT:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
我是放在一个启动脚本里,每次启动kvm会执行一下,也可以在主机系统启动的时候就添加这条规则。
3)桥接模式:
这种应该是功能最全的一种,虚拟客户机的ip和主机处在同一个网段,客户机就如局域网中的一台主机一样,既可以和主机通讯也可以上网,同时网路中的其他主机也可以访问客户机而不需要主机转发,不过如果在无线网卡上做桥接会遇到一定的问题,很可能就不成功,反正我尝试的结果就是失败,客户机可以ping主机但就是不能ping其他的地址,网上查了一下跟无线网卡驱动有一定的关系(见http://www.linuxfoundation.org/en/Net:Bridge),最后只有放弃了,但以太网卡上我测试是没有问题的。具体配置可以参照: http://linux.chinaunix.net/bbs/viewthre ... tid=788174
5. USB设备
KVM是通过qemu来支持USB设备的,可以在启动的时候就指定需要连接的USB设备,也可以系统启动后动态的添加删除.通过qemu的help可知,使用qemu的usb_add host:xxx:xxx来添加usb设备,那么如何知道对应的host:xxx:xxx呢,有2种方法:
1)在host主机ubuntu中执行lsusb得到这些信息
比如在我机器上ipod的信息如下:
Bus 006 Device 002: ID 05ac:1204 Apple Computer, Inc. iPod [Photo]
Bus 006 Device 001: ID 1d6b:0002
Bus 001 Device 001: ID 1d6b:0002
....
05ac:1204就是我们需要的了。
2)进入虚拟机后,通过ctrl+alt+2调出qemu控制台,输入info usb来列出相关的信息,在我的机器上:
Device 4.2, speed 12 Mb/s
Class e0: USB device 044e:300d, UGX
Device 2.11, speed 480 Mb/s
Class 00: USB device 05ac:1204, iPod
...
很有可能你在执行上述命令的时候会遇到这样的错误:
Could not open /dev/bus/usb/devices
可以参考:https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/156085去解决,主要就是把
/etc/init.d/mountdevsubfs.sh脚本中的以下几行打开(默认被注释掉了)
#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb
然后手工执行:
$ sudo /etc/init.d/mountdevsubfs.sh start
或者重启机器就ok了。
取得了上述USB设备的信息后,可以在kvm启动的时候就连接指定的USB设备,通过启动参数-usbdevice host:xxx:xxx 来添加相应设备。也可以在kvm的客户系统启动后添加,在客户系统中按ctrl+alt+2(ctrl+alt+1回到客户系统)调出qemu控制台,通过usb_add host:xxx:xxx来添加设备,通过info usb可以查看已经添加的usb设备信息,通过usb_del来删除连接的usb设备。
分享到:
相关推荐
两天时间去研究spice协议,网上资料很少,没有系统的介绍spice的编译环境,现在从0整理,并对库的依赖都一一说明,最终实现了基于spice协议下对桌面的虚拟化操作
SPICE 服务器:SPICE 服务器是运行在虚拟机宿主机上的软件,负责将虚拟机的图形和音频数据传输到客户端,并将客户端的输入传递给虚拟机。 通过 SPICE 项目,用户可以轻松地远程访问虚拟机,并享受流和音频播放体验。...
spice-guest-tools-0.74
spice-guest-tools-0.74,kvm客户机windows驱动,包含显示qxl、剪切板共享等。
openstack spice协议 服务器客户端安装spice。 spice协议,spice server,spice客户端
在linux系统下(包括CentOS、Ubuntu等)编译QEMU和SPICE协议,使其支持USB重定向。
spice显卡驱动
用于虚拟机磁盘转换,可能把hyper-v虚拟机磁盘转换成KVM虚拟机磁盘,实现hyper-v虚拟机迁移到KVM平台下面。完美解决hyper-v虚拟机转换变KVM虚拟机。
spice 客户端 用于spicy远程链接,编译时,可支持USB重定向支持
spice架构中运行于虚拟机Guest上的组件程序源码
If you are generally unfamiliar with how to use Spice, or are not familiar with all of its features then Chapter 2 and Chapter 3 are provided to get you started. The aim in Chapter 2 is just to help ...
在 PSPICE 中使用德州仪器 (TI) SPICE 模型
The IBIS to SPICE application generates SPICE models from IBIS (I/O Buffer Information Specification) data sheets. It reads a template file to define the SPICE models to be generate. The template file...
the spice doa estimation algorithm
SPICE的安装和使用,方便初次使用SIPCE的用户
基于 SPICE 协议的云桌面视频加速方法,通过云终端专有的硬件解码芯片,对传输到 SPICE 客户端的图像采用硬件解码,大幅度提高其解码效率,使在 ARM 架构的瘦客户机上播放高清视频成为可能。测试表明,终端视频应用...
SPICE基本元器件模型参数介绍,注意是英文的,但对想学SPICE仿真的朋友应该没问题哦!
spice用户手册 虚拟化 主机远程登录
Windows版的spice客户端