linux‎ > ‎

kvm+spiceでゲストのサウンドを聞く

(2013-01-01-14 初稿 - 2013-01-20 追記)

はじめに

以前このサイトに、kvmを初めて利用した時にメモを書きました。
その時は、インストールもうまく行き、そこそこ喜んでいたのですが、ゲストのサウンドを鳴らす方法がわからなかったため、Windows系のOSのインストールは諦めてVirtualBoxにインストールしていました。

その時にわかったこととして、通常のkvmはVNCで見る形で接続するためゲストのサウンドが聞こえないということ。
しかし、VNCの代わりにspiceというプロトコルを用いることにより、サウンドも聞こえるようになるとのことでした。

そこで、早速 spice 関連のパッケージをUbuntuで探したのですが、なぜか64bit版はあるものの、32bit版は無くて、断念してしまいました。

2012年の年末から筆者のハードディスクから異音が発生し始め、新しくSSDのハードディスクを購入しました。
2013年1月13日に届いたので、今まではUbuntu 12.10の32bit版を利用していたのですが、今後のことも考えて思い切って64bit版をインストールしてみました。

さっそく、spiceプロトコルに関連するパッケージをインストールしてkvmを試したところ、なんとかゲストOSのサウンドが聞こえるようになりましたので、ここに設定のメモを書きます。

試したゲストOSは、debian sid 32bit と Windows 7 64bit版です。

なお、kvmの基本的なインストール等は以下のページにありますので、初めて利用する方は、まず以下のページをご覧ください。

必要なパッケージのインストール

すでに、kvmの基本的なパッケージはインストールされているものとして、追加するパッケージを記載します。
なお、筆者が試行錯誤でインストールしたものですので、不要なものがあるかもしれません。
sudo apt-get install qemu-kvm-spice
sudo apt-get install spice-client spice-client-gtk
sudo apt-get install python-spice-client-gtk

一番最後のパッケージをインストールしないと、「No module named SpiceClientGtk」とエラーが出て、ゲストOSの画面が表示されません。
(これに、結構時間を費やしてしまった… とほほ)

Virt-manager の設定変更

パッケージのインストールが済んだら、virt-managerの設定を変更します。

ディスプレイの種類をspiceに

まずは、ディスプレイの種類を VNC から Spice に変更します。
変更後は、「適用(A)」ボタンを押します。


ビデオカード変更

標準だと、vgaやcirrusで、6MB程度しかビデオメモリーがありませんが、spiceプロトコルを利用することにより、「qxl」が利用でき、ビデオメモリが64MBに拡張します。
サウンドが聞けるだけでなく、こんなところにもメリットがあるのですね。


サウンドを聞いてみる

それでは、実際にサウンドを聞いてみます。
筆者がkvmにインストールしたのは、debian sid(32bit) と Windows 7 (64bit)ですが、両ゲストOSともに、サウンドを聞くことができました。

なお、「設定」「サウンド」、「アプリケーション」で「virt-manager」の音量を上げないと聞こえない場合がありますので、確認をしてください。


debian と Windows 7 で音楽を鳴らせてみた画像を以下に示します。
決して良い音ではありませんが、聞こえないことを思えば満足できると思います。(^^♪


他のPCからホストPCのゲストOSにspice接続する(2013-01-20追記)

他のPC(以下、クライアントPC)でvirt-manager起動し、sshでホストPCのゲストOSを起動することもできます。
操作を行うクライアントPCには、ほとんど負荷がかからないため、非力なノートPC等では便利な方法です。
さらに、上記のとおりホストPCが64bit版でkvm+spiceの設定が済んでいれば、クライアントPCは、32bit版でも、spice接続で、ホストPCのゲストOSの音楽を聞くことができます。
これは、kvm+spiceを利用する上で、敷居を下げるメリットが大きいと考えます。

パッケージのインストール

インストールするパッケージは、以下の2つになります。
sudo apt-get install virt-manager
sudo apt-get install python-spice-client-gtk

筆者が試みたところ、最初はなぜか音がでませんでしたが、2度目以降は、安定して音が出るようになりました。
pavucontrolがインストールされてなければ、インストールして、下図のように音量等を確認してください。
sudo apt-get install pavucontrol

クライアントPCからホストのゲストOSに接続し、pavucontorolで音量を確認している。

おわりに

必要なパッケージがわかれば、あまり苦労せずに、kvm + spice でゲストOSのサウンドを聞くことができました。
なぜ64bit版にしか qemu-kvm-spice パッケージがないのか、筆者にはわかりませんが、今後、64bit化が進むに連れて、簡単にゲストOSをインストールできる環境が整うことと思います。
(2013-01-20追記)
64bit版しかない理由を @MurabitoL さんに教えていただきました。多謝。m(__)m
spiceプロトコルは、CPUの64bit特有の命令を利用しているようです。
詳細は、以下のサイトをご覧ください。

Windows 7でも、音が聞けたことから、Ubuntu等linuxにOSに、Windowsをインストールする方も増えるかもしれません。
(筆者は、昔からLinuxをホスト、Windows ゲストで使っています。)

もう少しディスプレイ表示が早くなると、ホストと同じくらいの速度になって良いなと思うのですが… (^^ゞ
(待望、virtio ディスプレイドライバ (^^ゞ )

それでは、また何か気づいたことがあれば、追記します。

Comments