наигрался с настройкой проброса видеокарты в qemu через vfio-pci, а теперь возник закономерный вопрос — как сделать то же самое, но от простого пользователя? Из того, что удалось нагуглить, — предложение сменить права доступа для устройств в /dev/vfio/*. Сейчас оно выглядит так:
$ ls -l /dev/vfio
crw-rw-rw- 1 dmitriy qemu 246, 0 фев 16 00:57 1
crw-rw-rw- 1 dmitriy qemu 10, 196 фев 16 00:57 vfio
Да, видеокарта находится именно в 1-й группе. При попытке запустить ВМ получаю
qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0,bus=root.1,addr=00.0,multifunction=on: VFIO_MAP_DMA: -12
qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0,bus=root.1,addr=00.0,multifunction=on: vfio_dma_map(0x55ba05696ef0, 0x0, 0x80000000, 0x7f2bd3a00000) = -12 (Cannot allocate memory)
qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0,bus=root.1,addr=00.0,multifunction=on: VFIO_MAP_DMA: -12
qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0,bus=root.1,addr=00.0,multifunction=on: vfio_dma_map(0x55ba05696ef0, 0x100000000, 0x180400000, 0x7f2c53a00000) = -12 (Cannot allocate memory)
qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0,bus=root.1,addr=00.0,multifunction=on: vfio: memory listener initialization failed for container
qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0,bus=root.1,addr=00.0,multifunction=on: vfio: failed to setup container for group 1
qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0,bus=root.1,addr=00.0,multifunction=on: vfio: failed to get group 1
qemu-system-x86_64: -device vfio-pci,host=0000:02:00.0,bus=root.1,addr=00.0,multifunction=on: Device initialization failed
Явно где-то не хватает прав доступа, но вот где именно...