KVM / qemu / libvirtの仮想マシンでSpiceを使用すると、QEMU_AUDIO_DRVはデフォルトでspiceに設定されます。
私のホスト(debian-Stretch)は良いサウンドカード(Xonar DX)とより良いサウンドドライバ(pulseaudio、alsa)を使います。
仮想マシンでは、グラフィック側にspiceを使用し、ゲストOSに関係なくサウンド側にpulseaudioまたはalsaを使用できますか?
注1:domain.xmlに以下を追加しました。
<qemu:commandline>
<qemu:env name='QEMU_AUDIO_DRV' value='pa'/>
<qemu:env name='QEMU_PA_SERVER' value='/run/user/1000/pulse/native'/>
</qemu:commandline>
これで、domain.logに次のものが表示されます。
QEMU_AUDIO_DRV=pa QEMU_PA_SERVER=/run/user/1000/pulse/native
いいですね。しかし、domain.xmlに次のセクションがあるので、ゲストがpulseaudioを使用しているかどうかわかりません。
<sound model='ich6'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
ノート2:その他の試み:
<qemu:commandline>
<qemu:env name='QEMU_AUDIO_DRV' value='alsa'/>
</qemu:commandline>
音が出ません。
答え1
答え2
最初のqemu:commandline
クリップは大丈夫です。ゲストの音声をホストコンピュータの特定のPAサウンドカードに送信するのに最適です。コンソールのボリュームコントロールダイアログボックスの項目は次のとおりです。
現在のユーザーPAに接続するには、以下にドメインを作成するだけですqemu:///session
。つまり、VMプロセスはデフォルトで現在のユーザーIDで実行されます。グローバル QEMU または PA 構成を変更する必要はありません。ヘッドレスをデバッグするには、次のコマンドを使用してPAがvirt-managerから接続を取得していることを確認できますpacmd list-clients
。
index: 137
driver: <protocol-native.c>
owner module: 11
properties:
application.name = "virt-manager"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "34"
application.process.id = "97515"
application.process.user = "xyz"
application.process.host = "xyz"
application.process.binary = "python3.9"
application.icon_name = "virt-manager"
application.language = "en_US.UTF-8"
window.x11.display = ":0.0"
application.process.machine_id = "68058b3d029948a1ae03d28f827a6f53"
application.process.session_id = "c2"