Portál AbcLinuxu, 20. května 2024 19:34


Dotaz: QEMU KVM - jak predat zvuk z virutalniho stroje do hostitele

27.2.2023 13:23 Jix0 | skóre: 24 | blog: Not only for humans
QEMU KVM - jak predat zvuk z virutalniho stroje do hostitele
Přečteno: 366×
Odpovědět | Admin
Přílohy:
Zdravim.

Jdu si za vami pro radu. Zprovoznil jsem si KVM virtualizaci pres QEMU a nasledne nainstaloval do nej Win10. Vsechno funguje jak ma, vcetne GPU passtrough (single GPU), jen jeste bojuji se zprovoznenim zvuku. Nedari se mi rozbehnout zvuk z interni zvukove karty (Realtek ALC887) v PC, zatimco zvuk z GPU pres HDMI ci DP, funguje. Virtualizovany Windows, mi ve spravci zarizeni ukazuje 2 zvukove zarizeni. Jedno z GPU a druhe z interni zvukovky. Takze interni zvukovku vidi, jen z ni neleze zadny zvuk. Dokazal by me prosim nekdo navest?

Pri nastavovani virtualniho stroje, vcetne predavani GPU do hostovaneho systemu, jsem postupoval podle kombinace techto 2 navodu, jelikoz ten navod na wiki, neni uplne presny: Single GPU Passthrough Tutorial - KVM/VFIO a Single GPU Passthrough Community Guide

Jak jsem jiz psal vyse, interni zvuk ve virtualizovanych Windows nefungoval, nasel jsem nasledujici navod a postupoval podle neho, avsak beze zmeny: Passing_audio_from_virtual_machine. Zkousel jsem i ruzne menit hodnotu v tagu "audio id", postupne zvysoval o cislo a zkousel nasledne ci zvuk pujde. Stale ovsem nic. V prubehu laborovani jsem zkousel z vyse uvedeneho navodu, pouzit i postup s pouzitim Pipewire a JACK, ovsem take bez vysledku

Jako system mam nainstalovany OpenSUSE Tumbleweed, kernel je 6.1.12, zvukovy system je zde Pipewire, mam vsak doinstalovany balicek pipewire-pulse a je jako ovladac pouzit Pulseaudio, viz vystup z pactl info
jixo@localhost:~> pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 120
Tile Size: 65472
User Name: jixo
Host Name: localhost.localdomain
Server Name: PulseAudio (on PipeWire 0.3.65)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo
Default Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
Cookie: 170a:95f7
dale vystup z wpctl status
jixo@localhost:~> wpctl status
PipeWire 'pipewire-0' [0.3.65, jixo@localhost.localdomain, cookie:386569719]
 └─ Clients:
        31. xdg-desktop-portal                  [0.3.65, jixo@localhost.localdomain, pid:1920]
        32. WirePlumber                         [0.3.65, jixo@localhost.localdomain, pid:2182]
        33. WirePlumber [export]                [0.3.65, jixo@localhost.localdomain, pid:2182]
        54. pipewire-pulse                      [0.3.65, jixo@localhost.localdomain, pid:2246]
        55. Plasma PA                           [0.3.65, jixo@localhost.localdomain, pid:2019]
        58. Firefox                             [0.3.65, jixo@localhost.localdomain, pid:2397]
        66. wpctl                               [0.3.65, jixo@localhost.localdomain, pid:7554]
        68. Firefox                             [0.3.65, jixo@localhost.localdomain, pid:2397]
        70. Firefox                             [0.3.65, jixo@localhost.localdomain, pid:2397]

Audio
 ├─ Devices:
 │      39. TU116 High Definition Audio Controller [alsa]
 │      40. Vnitřní zvukový systém          [alsa]
 │  
 ├─ Sinks:
 │      41. TU116 High Definition Audio Controller Digitální stereo (HDMI) [vol: 0.40]
 │  *   42. Vnitřní zvukový systém Analogové stereo [vol: 0.41]
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │      43. Vnitřní zvukový systém Analogové stereo [vol: 1.00]
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:
        76. Firefox                                                     
             67. output_FL       > ALC887-VD Analog:playback_FL [init]
             75. output_FR       > ALC887-VD Analog:playback_FR [init]

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:

Settings
 └─ Default Configured Node Names:
         0. Audio/Sink    alsa_output.pci-0000_00_1b.0.analog-stereo
V priloze pak samotny config virtualniho stroje a nasledne i log. Neslo mi sem vlozit jako text, jelikoz se webu nelibily nektere XML tagy, ktere to obsahovalo.

Predem dekuji za pomoc.
If you will not cooperate, you are to be executed! | Starting as a DJ
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.2.2023 13:40 PetebLazar | skóre: 33 | blog: l_eonardovo_odhodlani
Rozbalit Rozbalit vše Re: QEMU KVM - jak predat zvuk z virutalniho stroje do hostitele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co je důvodem přenosu zvuku z GuestOSu do HostOSu, jeho další zpracování?

Osobně jsem podobné trápení (sdílená ZK měla v GuestOSu dropouty) vzdal a vyřešil to nákupem ext. USB ZK za 160Kč a její dedikováním GuestOSu (BOSE Companion 2 III měly příhodně dva vstupy).
27.2.2023 16:22 ewew | skóre: 40 | blog: ewewov_blog
Rozbalit Rozbalit vše Re: QEMU KVM - jak predat zvuk z virutalniho stroje do hostitele
Odpovědět | | Sbalit | Link | Blokovat | Admin

Skús pozrieť tento blog.

Root v linuxe : "Root povedal, linux vykona."
28.2.2023 12:39 LarryL | skóre: 27
Rozbalit Rozbalit vše Re: QEMU KVM - jak predat zvuk z virutalniho stroje do hostitele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ve tvém logu vidím:
-audiodev '{"id":"audio1","driver":"pa","server":"/run/user/1000/pulse/native"}' \
-vnc 0.0.0.0:0,audiodev=audio1 \
...
-audiodev '{"id":"audio1","driver":"spice"}' \
-spice port=5900,addr=127.0.0.1,disable-ticketing=on,image-compression=off,seamless-migration=on \
Volba -audiodev vytváří audio backend (může být pa, alsa, spice). V prvním případě by se ti zvuk na hostiteli měl přehrávat z VNC klienta a ve druhém případě ze spice klienta (Remote-viewer; Virt-viewer).

Většinou jsem používal Alsu místo PA. Akorát jsem používal ještě deprecated metodu (používám čisté Qemu (bez libvirtu)): export QEMU_ALSA_DAC_BUFFER_SIZE=512 QEMU_ALSA_DAC_PERIOD_SIZE=170 QEMU_AUDIO_DRV=alsa

V XML virtmanageru se to zadávalo takto nějak:
<qemu:commandline>
  <qemu:env name="QEMU_AUDIO_DRV" value="alsa"/>
</qemu:commandline>
Pokud si ve Virt-manageru naklikáš nějakou VM a necháš tam výchozí Spice a uvnitř VM budeš mít nainstalovaný správný audio driver, tak by se zvuk na hostiteli měl přehrávat. Pokud se nepřehrává tak budeš vědět, že je něco špatně na tvém hostiteli (OpenSUSE Tumbleweed). Pak můžeš pátrat dál.
1.3.2023 13:30 Jix0 | skóre: 24 | blog: Not only for humans
Rozbalit Rozbalit vše Re: QEMU KVM - jak predat zvuk z virutalniho stroje do hostitele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem trapeni s tim nakonec vzdal a strcil do PC do PCI slotu, Sound Blaster Audigy a vyhradil ji pak do VM. Pres tuto kartu funguje jak zvuk v linuxu, tak i ve virtualizovanych Windows, takze integrovanou zvukovku uz nemusim pouzivat vubec.

I pres to, ze vse bylo nastavene jak byt melo tak zvuk z interni zvukovky nelezl, i kdyz byla v obou systemech dostupna. Takze vyreseno dedikovanou kartou. Kdybych nahodou na to nakonec prisel, zverejnim zde co a jak.
If you will not cooperate, you are to be executed! | Starting as a DJ

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.