LINUX.ORG.RU

Не работает аудио внутри Qemu

 , , ,


0

2

Система (и хост, и гест) - Дебиан 8 Джесси, без системд, пульсы и либвирт (но стоят пакеты libsystemd0 и libpulse0, соотв. либы libsystemd.so.0.3.1 и libpulsecommon-5.0.so - имеются). Версия Qemu - 2.1.2

Запускаю так:

$ QEMU_ALSA_VERBOSE=1 QEMU_AUDIO_DRV=alsa qemu-system-x86_64 -machine accel=kvm -m 1024 ... -snapshot -soundhw es1370

Не пишет ничего.

В гесте:

# alsactl init
Found hardware: "ENS1370" "Asahi Kasei AK4531" "AK4531" "0x4942" "0x4c4c"
Hardware is initialized using a generic method
# lsmod|grep 1370
snd_ens1370            27087  0
snd_rawmidi            27024  1 snd_ens1370
snd_pcm                88662  2 snd_pcm_oss,snd_ens1370
snd                    65338  7 snd_pcm_oss,snd_timer,snd_pcm,snd_rawmidi,snd_ens1370,snd_seq_device,snd_mixer_oss
gameport               13449  1 snd_ens1370
# amixer
amixer: Mixer attach default error: No such file or directory
#

(alsamixer тоже даёт ошибку) Аналогично со всеми другими эмулируемыми Qemu аудио-картами.

Не пойму что я делаю не так.. Помогите пож. кто чем может.

(ой, не в тот раздел запостил, надо бы в Admin наверно..)



Последнее исправление: abvgdee (всего исправлений: 3)

Ответ на: комментарий от steemandlinux

ich6 - эта карта с либвиртом идёт? У меня нет либвирта (и не будет..)

... -soundhw ich6
qemu-system-x86_64: -soundhw ich6: Unknown sound card name `ich6'
Valid sound card names (comma separated):
sb16        Creative Sound Blaster 16
es1370      ENSONIQ AudioPCI ES1370
ac97        Intel 82801AA AC97 Audio
adlib       Yamaha YM3812 (OPL2)
gus         Gravis Ultrasound GF1
cs4231a     CS4231A
hda         Intel HD Audio
pcspk       PC speaker

-soundhw all will enable all of the above
$
abvgdee
() автор топика

использую -soundhw hda, проблем нет.

anonymous
()

Дебиан 8 Джесси, без системд, пульсы и либвирт

Не пойму что я делаю не так..

meliafaro ★★★★★
()
Последнее исправление: meliafaro (всего исправлений: 1)

Конечно не работает, а если работает, то в основном хреново или с задержкой, достаточной для ощущения раздражения и нервозности.

Вот почему я купил за пару долларов PCI аудиокарту (Manli C-Media M-CMI8738-4CH) и пробрасываю ее вунутре, работает отлично, просто сказка.

Bruce_Lee ★★
()
Ответ на: комментарий от onlybugs

Там не про купить, а про использовать.

Ты лично пробовал USB-аудиокарточки пробрасывать и использовать? На какой версии qemu? vfio? Потому что я купил до PCI-карточки — 3 штуки USB-карточек на разных чипсетах и отгреб задержки и помехи. На UHCI, OHCI, EHCI и XHCI.

Интересно послушать твою историю успеха.

Bruce_Lee ★★
()
Ответ на: комментарий от Bruce_Lee

А вот это печально. Нет, я пробовал в виртуалбоксе и там проброс работал отлично.

onlybugs ★★
()
Ответ на: комментарий от Bruce_Lee
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
...
    <os>
        <type arch='x86_64' machine='pc-i440fx-2.8'>hvm</type>
        <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
        <nvram>/var/lib/libvirt/qemu/nvram/windows-8_VARS.fd</nvram>
    </os>
...
    <sound model='ich6'>
        <codec type='micro'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </sound>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc24a'/>
      </source>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc21c'/>
      </source>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
...
    <qemu:commandline>
        <qemu:env name='QEMU_AUDIO_DRV' value='alsa'/>
        <qemu:env name='QEMU_AUDIO_TIMER_PERIOD' value='200'/>
        <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:commandline>
</domain>

Звук работает, микрофон работает. До кучи, помимо rx480, проброшены G13 и G600 логитековские, виндовые дрова их подхватывают, девайсы работают. Почему не должны работать usb-звуковухи?

PS Да, мерзкий системд, пульс и либвирт на хосте, но трахаться с системой мне лень.

PPS Микрофон в qemu с hda и QEMU_AUDIO_DRV=pa работает с лютой задержкой из-за бага в qemu, поэтому запускаю через alsa.

anonymous
()
Ответ на: комментарий от anonymous

Да, в дремучем дебиане с чипсетом i440fx проброс той же usb-мыши не работал - гость у меня вешался намертво вместе с хостом, нужно было использовать q35. Сейчас всё работает и с i440fx. Но с q35 у меня перестал работать проброс видеокарточки.

anonymous
()
Ответ на: комментарий от anonymous

Да, мерзкий системд, пульс и либвирт на хосте, но трахаться с системой мне лень.

А разве это изветно как баг - что звук не работает без поц-поделий? Я когда создавал тред, не нашёл такого на bugs.debian.org

Ну и я тоже не трахаюсь с этим.. Поставил проприетарную грязь на хост, из-под левого мусорного юзера, да и всё.. Как и гоговские игры.

abvgdee
() автор топика
Ответ на: комментарий от abvgdee

У меня всё работает. Единственное, из-за бага в qemu при работе через пульсу запись от микрофона шла с лагом в 20-25 сек. Можно уменьшить размер буфера, но максимум, что удалось добиться, это уменьшить лаг до 2 секунд, что всё равно было неприемлемо. Поэтому qemu у меня работает через альсу.

Может, косяк в настройках гостя, может, в настройках хоста, может, версия qemu слишком древняя, может звуковуха, что эмулируется, уже не шибко поддерживается. Даже на джесси с той версией qemu у меня не было проблем со звуком в госте, но я не пытался превратить дебьян в слаку хз какого дремучего года без systemd, pulseaudio, utf8 и ещё всяких новомодных штучек.

anonymous
()
Ответ на: комментарий от Bruce_Lee

купил за пару долларов PCI аудиокарту ... и пробрасываю ее вунутре

Но это с либвиртом (virsh), я так понял? Посмотрел сейчас, в мониторе моей Qemu нет даже команды pci_add (хотя в документации есть, т.е. должна была бы быть).

abvgdee
() автор топика
Последнее исправление: abvgdee (всего исправлений: 1)
Ответ на: комментарий от abvgdee

libvirt работает поверх qemu - сам он никаких опций к qemu НЕ ДОБАВЛЯЕТ. Только упрощает управление виртуалками - когда их дохрена, это бывает критично.

Если у тебя нет каких-то опций в qemu, то варианта 3:

1) используешь не тот management-интерфейс(кроме монитора в qemu есть еще qmp); 2) собрал qemu без поддержки нужной тебе приблуды; 3) испольщуешь древнюю версию qemu, где нужную тебе опцию еще не завезли.

Всё. Никакой магии

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от abvgdee

Но это с либвиртом (virsh), я так понял?

Нет, я не использую костыли и подпорки, тем более если вместо говна и палок, что обычно используется в таких случаях, там поганная XML-лапша.

Только raw-портянка конфиг запуска в виде баш-скрипта.

03:06.0 Multimedia audio controller [0401]: C-Media Electronics Inc CMI8738/CMI8768 PCI Audio [13f6:0111] (rev 10)
-device vfio-pci,host=03:06.0
Bruce_Lee ★★
()
Ответ на: комментарий от Pinkbyte

Всё. Никакой магии

Спасибо.

(Офф: Да, я иногда ищу повод для лени.. Лень эта не воинственная, а скорее от брезгливости к продукции РэдХэта.. Ты всё правильно угадал. А кто-то врал что телепаты в отпуске :)

Попробовал скомпилить последнюю версию qemu, 2.9.0. Проброс не получился, ни с vfio, ни с pci-assign. В чипсете нет IOMMU (мать ASUS M4A89GTD). Разбираться желания нет (не нашёл простого рецепта, как завести).

Также не заработал обычный звук, типа -soundhw=hda. configure ... --audio-drv-list=alsa. Те же ошибки. Тоже, разбираться желания нет.

в мониторе моей Qemu нет даже команды pci_add

pci_add -> device_add, видимо просто старая документация qemu в Джесси.

-device vfio-pci,host=03:06.0

Bruce_Lee - тоже спасибо.

abvgdee
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.