QEMU 4.0 Q35 и проблемы с пробросом графики

Опубликовано 12 Сентября, 2019 под тегами razer, blackwidow, macro, python, pyusb

После обновления QEMU до 4.0 внезапно отвалилась граф. карточка (NVidia) в виртуалке. Симптомы: BSOD либо карточка не заводится с кодом ошибки 43. Я использовал эмулируемый чипсет q35 (потому что, ну что же ещё?), и, оказывается, в QEMU 4.0 поломали распределение IRQ, а драйвер по умолчанию использует IRQ, а не новомодный MSI. Если совсем вкратце, в коде машины pc-q35-4.0 поменялась настройка обработки IRQ по умолчанию, что ломает INTx на vfio-pci. Апстрим планирует откатить эти изменения в 4.1, ну а пока этого не произошло, вернуть всё как было можно добавив в определение машины q35 параметр kernel-irqchip=on, например:

qemu-system-x86_64 -enable-kvm -m $((16*1024)) \
    -M q35,kernel-irqchip=on \
    # etc