LINUX.ORG.RU

Проблема с пробросом аудиокарты

 , ,


0

1

Купил PCI-карту Manli C-Media M-CMI8738-4CH, чтобы пробросить в виртуалку:

02:05.0 Multimedia audio controller: C-Media Electronics Inc CMI8738/CMI8768 PCI Audio (rev 10)
	Subsystem: C-Media Electronics Inc CMI8738/C3DX PCI Audio Device
	Kernel driver in use: pci-stub
	Kernel modules: snd_cmipci
Добавил её в pci-stub через строку ядра (13f6:0111):
CONFIG_CMDLINE="... ... pci-stub.ids=1002:6818,1002:aab0,13f6:0111"
Заблочил подгрузку её модуля в /etc/modprobe.d/blacklist.conf:
blacklist snd_cmipci
Пытаюсь пробросить через pci-assign:
#   -...
    -enable-kvm -realtime mlock=off -rtc base=localtime \
    -m 4096 -machine pc-i440fx-2.0,accel=kvm -cpu host -smp 4,sockets=1,cores=4,threads=1 \
    -device pci-assign,host=02:05.0 \
#   -...
Получаю ошибку при запуске машины, которая не запускается:
qemu-system-x86_64: -device pci-assign,host=02:05.0: Failed to assign device "(null)"
*** The driver 'pci-stub' is occupying your device 0000:02:05.0.
***
*** You can try the following commands to free it:
***
*** $ echo "13f6 0111" > /sys/bus/pci/drivers/pci-stub/new_id
*** $ echo "0000:02:05.0" > /sys/bus/pci/drivers/pci-stub/unbind
*** $ echo "0000:02:05.0" > /sys/bus/pci/drivers/pci-stub/bind
*** $ echo "13f6 0111" > /sys/bus/pci/drivers/pci-stub/remove_id
***: Device or resource busy
qemu-system-x86_64: -device pci-assign,host=02:05.0: Device initialization failed.
qemu-system-x86_64: -device pci-assign,host=02:05.0: Device 'kvm-pci-assign' could not be initialized
что значит «'pci-stub' is occupying your device»? Конечно occupying, ведь я специально добавил его туда, как и видеокарту. То, что он предлагает сделать - не помогает и представляет собой то, что я должен бы был сделать, если бы не добавил вручную передачу id ауидокарты в pci-stub.

Кто сталкивался?



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

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

ну да, купил самое дешевое из PCI, на хосте работает отлично, разницы с встройкой не заметил.

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

Чип вполне поддерживается, но только он очень старый, я поэтому удивился. У меня один такой был встроен в мат. плату с Socket-370, а с другим с того же времени осталась PCI-плата.

dumka ★★
()

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

Что может означать эта ошибка?

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

use vfio

с vfio другая гречка:

-device vfio-pci,host=02:05.0: vfio: error, group 7 is not viable, please ensure all devices within the iommu_group are bound to their vfio bus driver.
-device vfio-pci,host=02:05.0: vfio: failed to get group 7
-device vfio-pci,host=02:05.0: Device initialization failed.
-device vfio-pci,host=02:05.0: Device 'vfio-pci' could not be initialized
это устройство в 7 группе:
/sys/kernel/iommu_groups/7/devices/0000:02:05.0

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

vfio я осилил, там нечего осиливать, но при пробросе с vfio на Gigabyte Radeon 7870 не хочет устанавливаться драйвер, под конец установки креш/ребут, какой чипсет (q35 или дефолтный) не ставь.

А вот старый добрый pci-assign работает более чем хорошо, разница менее 5% по сравнению с нативом, по всем бенчмаркам.

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

Ага, я вижу.

Что именно ты видишь? Видеокарта проброшена, смысл этого треда в том, что я спрашиваю - по какой причине не пробрасывается (даже не стартует машина) аудиокарта.

В гугле - ничего нет, даже сама ошибка «The driver 'pci-stub' is occupying your device» встречается в гугле 122 раза, но информации об этом нет.

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

с vfio другая гречка:

я в курсе этого, если что, но у меня нет возможности переставить в другой слот, потому как он один всего на плате.

ACS override patch не пробовал, но похоже он остается как последний вариант.

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

что именно тебя удивляет? Впервые об этом слышишь?

vim
() автор топика
26 марта 2016 г.

Кому интересно, то эта дешевая, но отлично работающая карточка идеально пробрасывается через vfio.

В ядре:

CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO_VIRQFD=m
CONFIG_VFIO=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
CONFIG_VFIO_PCI_MMAP=y
CONFIG_VFIO_PCI_INTX=y
CONFIG_KVM_VFIO=y

CONFIG_SND_CMIPCI=m
в грубе:
GRUB_CMDLINE_LINUX_DEFAULT="vfio-pci.ids=13f6:0111"
или ядре в случае прямой загрузки через UEFI:
CONFIG_CMDLINE="vfio-pci.ids=13f6:0111"
в /etc/modprobe.d/blacklist.conf (не уверен, что это надо делать, возможно vfio таки освобождает её):
blacklist snd_cmipci
в /etc/conf.d/vfio-assign (здесь 0000: + её порядковый номер из lspci | grep -i cmi).
DEVICES="0000:02:06.0"

Драйвера для восьмерки можно здесь скачать.

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