Fedora 14でSpice

Fedora14からkvmにspiceが統合されました。
vncでのもっさり感がなくなります。おすすめ。
ただし現在のところlibvirtが対応していないのでvirt-manager等の管理ユーティリティは使えません。
qemuを直接起動します。



以下kvmのセットアップ含めたメモ。

  • 必要なパッケージの導入

yum install qemu-kvm bridge-utils spice-server

  • ネットワーク設定

chkconfig NetworkManager off
chkconfig network on


/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
DNS1=10.20.20.11
IPADDR=10.20.35.2
NETMASK=255.255.0.0
ONBOOT=yes
DELAY=0
GATEWAY=10.20.0.1


/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="eth0"
BOOTPROTO="none"
HWADDR="00:E0:81:B2:57:FE"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE=br0

  • qemuのネットワーク設定

起動時に以下のスクリプトが呼び出されbr0にブリッジされます。

/etc/qemu-ifup

#!/bin/sh

echo "Bringing up $1 for bridged mode..."
ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
brctl addif br0 $1

/etc/qemu-ifdown

#!/bin/sh

echo "Removing $1 to br0..."
brctl delif br0 $1
echo "Shutting down $1..."
ifconfig $1 down

  • ゲストの起動

/usr/bin/qemu-kvm -enable-kvm -rtc base=localtime -name fedora -cpu qemu32 -smp 1,sockets=1,cores=1,threads=1 -m 1024 -drive file=/dev/mapper/vg_vm-fedora,if=none,id=drive-virtio-disk0,format=raw,boot=on -device virtio-blk-pci,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0 -drive file=/mnt/iso/Fedora/Fedora-14-i686-Live-Desktop.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -k ja -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:ff:00:02,bus=pci.0,addr=0x3 -net tap,vlan=0,name=hostnet0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -vga qxl -spice port=5902,disable-ticketing -device virtio-serial,bus=pci.0,addr=0x7 -device spicevmc,subtype=vdagent -device AC97,id=sound0,bus=pci.0,addr=0x5 -boot once=d -daemonize -pidfile /var/run/qemu/fedora.pid

長ったらしいですが重要なのは以下の部分。

-vga qxl -spice port=5901,disable-ticketing
spiceを有効にします。
disable-ticketingだと認証等は何もありませんので必要に応じて適宜オプションを変更します。

-device AC97
サウンドを有効にします。
spiceは音も出せます。

-device spicevmc,subtype=vdagent
コピペを使う場合はこれを追加。
ゲストにvdagentをインストールすることでコピペができるようになります。

クライアントがWindowsの場合はDownloadからspice-client-win32-0.6.3.zipとspice_libs_win32_063_and_earlier.zipをダウンロード。
spicecを実行するのにはlibcelt_0_5_1.dllが必要です。

Fedoraをクライアントにする場合は
yum install spicec
でOK。
GUIで接続先を指定もしくはコマンドライン

spicec -h 10.20.35.2 -p 5901

としてゲストに接続しOSの導入を行う。


ゲストがWindowsの場合はDownloadにあるQXLドライバを導入。
Fedoraの場合は標準で導入されていますが私の環境ではXの起動に失敗してループにはまりました。
一度vncで起動し、yum updateでアップデートをかけるとxorg-x11-drv-qxlにアップデートがかかりますのでその後に改めてspiceを有効にすることで問題が解消しました。


  • オプションとしてコピペ。

Windowsの場合はvdagentをダウンロードしてきてから

vdservice install

Fedoraここにsrc.rpmへのリンクがありますので自分でビルドしましょう。(私はまだやっていません)


Ubuntuをゲストにする場合10.10で入ってくるqxlドライバでは解像度が1024x768までしか設定できません。
ここにあるパッチを4つともあてることで1024x768より大きい解像度が選択できるようになります。