qemu 6.1.0(및 6.2.0, qemu.conf의 Capability_filters = [ "device.json" ])까지 이 구성은 이전 Windows 2000 시스템의 GPU 통과에 대해 잘 작동했습니다. 사운드가 동기화되지 않도록 하는 펄스 오디오 모드입니다.
<qemu:commandline>
<qemu:arg value='-object'/>
<qemu:arg value='input-linux,id=mouse,evdev=//dev/input/by-id/usb-Logitech_USB_Receiver-if01-event-mouse'/>
<qemu:arg value='-object'/>
<qemu:arg value='input-linux,id=kbd,evdev=/dev/input/by-id/usb-_USB_Keyboard-event-kbd,grab_all=on,repeat=on'/>
<qemu:arg value='-set'/>
<qemu:arg value='device.hostdev1.x-vga=on'/>
<qemu:arg value='-device'/>
<qemu:arg value='ac97,audiodev=ac97'/>
<qemu:arg value='-audiodev'/>
<qemu:arg value='pa,id=ac97,server=unix:/tmp/pulse-socket'/>
<qemu:env name='QEMU_AUDIO_DRV' value='pa'/>
<qemu:env name='QEMU_AUDIO_DAC_FIXED_FREQ' value='48000'/>
<qemu:env name='QEMU_AUDIO_DAC_TRY_POLL' value='0'/>
<qemu:env name='QEMU_AUDIO_ADC_FIXED_FREQ' value='48000'/>
<qemu:env name='QEMU_AUDIO_ADC_TRY_POLL' value='0'/>
<qemu:env name='QEMU_AUDIO_TIMER_PERIOD' value='1000'/>
<qemu:env name='QEMU_PA_SERVER' value='/tmp/pulse-socket'/>
</qemu:commandline>
그러나 6.2.0 이후에는 이 구성이 더 이상 작동하지 않으며 "QEMU: 'hostdev1' 장치가 정의되지 않았습니다."라는 오류가 반환됩니다.
새로운 구문은 다음과 같습니다
<qemu:override>
<qemu:device alias='hostdev1'>
<qemu:frontend>
<qemu:property name='x-vga' type='bool' value='true'/>
</qemu:frontend>
</qemu:device>
</qemu:override>
VGA는 제대로 작동하지만 ac97 카드가 사라집니다.
나는 이것을 시도했다
<qemu:override>
<qemu:device alias='hostdev1'>
<qemu:frontend>
<qemu:property name='x-vga' type='bool' value='true'/>
</qemu:frontend>
</qemu:device>
<qemu:device alias='ac97'>
<qemu:frontend>
<qemu:property name='audiodev' type='string' value='id=ac97,driver=pa'/>
</qemu:frontend>
</qemu:device>
</qemu:override>
</domain>
그러나 아무것도 없습니다. VM은 사운드 카드 없이 시작되고 로그를 읽을 때 "-device ac97,audiodev=ac97"이 누락됩니다(따라서 VM에 사운드 카드가 없음).
자주하는 질문:
사운드에 HDMI를 사용하지 않는 이유는 무엇입니까? 간단합니다. 내 모니터에는 vga 포트가 하나만 있습니다.
libvirt의 ac97을 사용하지 않는 이유는 무엇입니까? 펄스 오디오 소켓 설정이 가능한지 모르기 때문입니다.
답변1
실제로 저는 이 해결 방법을 사용합니다. 나는 다른 디렉토리(/opt/qemu6)에서 이전 qemu(6.2)를 컴파일하고 /usr에 있는 새 바이너리 대신 이 바이너리를 사용했습니다(나쁘지만 잘 작동합니다). 따라서 이 가상 머신에서는 이전 구문만 사용할 수 있습니다.