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
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.