Рейтинг:0

передача ник гостю в qemu с помощью iommu и vfio

флаг gb

Я купил 4-портовый сетевой адаптер PCIe-карту (Intel E1G44HT 10/100/1000Mbps PCI-Express 2.0 Server Adapter I340-T4)

Я пытаюсь установить его на свою рабочую станцию ​​hpZ600 и передать на гостевую виртуальную машину.

Я использую Artix Linux, но в основном следую указаниям для Arch Linux.

Проблема в том, что я не могу передать карту своей виртуальной машине.

Вот что я сделал до сих пор:

Сначала я обновляю свой default/grub

$ sudo -E nvim /etc/по умолчанию/жратва
...
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 тихий intel_iommu=on iommu=pt vfio-pci.ids=8086:150e"
...

Затем я переделываю свою конфигурацию grub

sudo grub-mkconfig -o /boot/grub/grub.cfg

Я перезагружаюсь и убеждаюсь, что все работает

sudo reboot -h сейчас

Я проверяю вывод dmesg

судо dmesg | grep -i -e DMAR -e IOMMU
[0.000000] Командная строка: BOOT_IMAGE=/vmlinuz-linux root=UUID=095a0572-cdd9-402c-80b7-425724b3cf65 rw loglevel=3 тихий intel_iommu=on iommu=pt vfio-pci.ids=8086:150e
[0.013145] ACPI: DMAR 0x00000000DEFB8F83 000170 (v01 HPQOEM TYLSBURG 00000001 00000000)
[0.013171] ACPI: резервирование памяти таблицы DMAR по адресу [mem 0xdefb8f83-0xdefb90f2]
[0.064149] Командная строка ядра: BOOT_IMAGE=/vmlinuz-linux root=UUID=095a0572-cdd9-402c-80b7-425724b3cf65 rw loglevel=3 тихий intel_iommu=on iommu=pt vfio-pci.ids=8086:150e
[ 0.064257] DMAR: IOMMU включен
[0.064301] Неизвестные параметры командной строки ядра "BOOT_IMAGE=/vmlinuz-linux intel_iommu=on" будут переданы в пространство пользователя.
[0.166858] DMAR-IR: в BIOS этой системы разрешено переназначение прерываний.
[0.455454] iommu: тип домена по умолчанию: сквозной (устанавливается через командную строку ядра)
[0.485787] DMAR: Ширина адреса хоста 40
[0.485788] DMAR: база DRHD: 0x000000fed90000 флаги: 0x1
[0.485799] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c90780106f0462 ecap f02076
[0.485802] DMAR: база RMRR: 0x000000defd0000 конец: 0x000000defd0fff
[0.485804] DMAR: база RMRR: 0x000000defd1000 конец: 0x000000defd1fff
[0.485805] DMAR: база RMRR: 0x000000defd2000 конец: 0x000000defd2fff
[0.485807] DMAR: база RMRR: 0x000000defd3000 конец: 0x000000defd3fff
[0.485808] DMAR: база RMRR: 0x000000defd4000 конец: 0x000000defd4fff
[0.485809] DMAR: база RMRR: 0x000000defd5000 конец: 0x000000defd5fff
[0.485811] DMAR: база RMRR: 0x000000defd6000 конец: 0x000000defd6fff
[0.485812] DMAR: база RMRR: 0x000000defd7000 конец: 0x000000defd7fff
[0.485813] DMAR: флаги ATSR: 0x0
[0,485838] DMAR: SATC не найден
[ 0.485852] DMAR: dmar0: использование аннулирования в очереди
[ 0.485953] pci 0000:00:00.0: добавление в группу iommu 0
[ 0.485973] pci 0000:00:01.0: добавление в группу iommu 1
[ 0.485990] pci 0000:00:03.0: добавление в группу iommu 2
[ 0.486007] pci 0000:00:07.0: добавление в группу iommu 3
[ 0.486043] pci 0000:00:10.0: добавление в группу iommu 4
[ 0.486061] pci 0000:00:10.1: добавление в группу iommu 4
[ 0.486096] pci 0000:00:11.0: добавление в группу iommu 5
[ 0.486112] pci 0000:00:11.1: добавление в группу iommu 5
[ 0.486130] pci 0000:00:14.0: добавление в группу iommu 6
[ 0.486148] pci 0000:00:14.1: Добавление в группу 7 iommu
[ 0.486167] pci 0000:00:14.2: добавление в группу iommu 8
[ 0.486194] pci 0000:00:15.0: Добавление в группу 9 iommu
[ 0.486248] pci 0000:00:1a.0: добавление в группу iommu 10
[ 0.486265] pci 0000:00:1a.1: добавление в группу iommu 10
[ 0.486282] pci 0000:00:1a.2: добавление в группу iommu 10
[ 0.486300] pci 0000:00:1a.7: добавление в группу iommu 10
[ 0.486317] pci 0000:00:1b.0: добавление в группу iommu 11
[ 0.486353] pci 0000:00:1c.0: добавление в группу iommu 12
[ 0.486371] pci 0000:00:1c.5: добавление в группу iommu 12
[ 0.486425] pci 0000:00:1d.0: добавление в группу iommu 13
[ 0.486444] pci 0000:00:1d.1: добавление в группу iommu 13
[ 0.486462] pci 0000:00:1d.2: Добавление в группу iommu 13
[ 0.486479] pci 0000:00:1d.7: добавление в группу iommu 13
[ 0.486496] pci 0000:00:1e.0: добавление в группу iommu 14
[ 0.486531] pci 0000:00:1f.0: добавление в группу iommu 15
[ 0.486551] pci 0000:00:1f.2: добавление в группу iommu 15
[ 0.486572] pci 0000:03:00.0: добавление в группу iommu 16
[ 0.486591] pci 0000:03:00.1: добавление в группу iommu 17
[ 0.486612] pci 0000:03:00.2: добавление в группу iommu 18
[ 0.486630] pci 0000:03:00.3: добавление в группу iommu 19
[0.486652] pci 0000:0f:00.0: добавление в группу iommu 20
[ 0.486658] pci 0000:01:00.0: добавление в группу iommu 12
[ 0.486693] pci 0000:3f:00.0: Добавление в группу iommu 21
[ 0.486713] pci 0000:3f:00.1: добавление в группу iommu 21
[0.486767] pci 0000:3f:02.0: добавление в группу iommu 22
[ 0.486787] pci 0000:3f:02.1: добавление в группу iommu 22
[ 0.486806] pci 0000:3f:02.4: добавление в группу iommu 22
[ 0.486825] pci 0000:3f:02.5: Добавление в группу iommu 22
[ 0.486878] pci 0000:3f:03.0: добавление в группу iommu 23
[ 0.486897] pci 0000:3f:03.1: добавление в группу iommu 23
[ 0.486916] pci 0000:3f:03.2: добавление в группу iommu 23
[ 0.486935] pci 0000:3f:03.4: добавление в группу iommu 23
[ 0.486989] pci 0000:3f:04.0: добавление в группу iommu 24
[ 0.487009] pci 0000:3f:04.1: добавление в группу iommu 24
[ 0.487028] pci 0000:3f:04.2: добавление в группу iommu 24
[0.487047] pci 0000:3f:04.3: добавление в группу iommu 24
[ 0.487100] pci 0000:3f:05.0: добавление в группу iommu 25
[ 0.487120] pci 0000:3f:05.1: добавление в группу iommu 25
[ 0.487143] pci 0000:3f:05.2: добавление в группу iommu 25
[0.487163] pci 0000:3f:05.3: добавление в группу iommu 25
[ 0.487216] pci 0000:3f:06.0: Добавление в группу iommu 26
[ 0.487236] pci 0000:3f:06.1: добавление в группу iommu 26
[ 0.487276] pci 0000:3f:06.2: добавление в группу iommu 26
[ 0.487298] pci 0000:3f:06.3: Добавление в группу iommu 26
[ 0.487335] pci 0000:3e:00.0: добавление в группу iommu 27
[ 0.487356] pci 0000:3e:00.1: добавление в группу iommu 27
[ 0.487408] pci 0000:3e:02.0: добавление в группу iommu 28
[ 0.487429] pci 0000:3e:02.1: добавление в группу iommu 28
[ 0.487451] pci 0000:3e:02.4: добавление в группу iommu 28
[ 0.487472] pci 0000:3e:02.5: добавление в группу iommu 28
[ 0.487527] pci 0000:3e:03.0: Добавление в группу iommu 29
[ 0.487549] pci 0000:3e:03.1: добавление в группу iommu 29
[ 0.487571] pci 0000:3e:03.2: Добавление в группу iommu 29
[ 0.487593] pci 0000:3e:03.4: добавление в группу iommu 29
[ 0.487647] pci 0000:3e:04.0: добавление в группу iommu 30
[ 0.487669] pci 0000:3e:04.1: добавление в группу iommu 30
[ 0.487692] pci 0000:3e:04.2: добавление в группу iommu 30
[ 0.487716] pci 0000:3e:04.3: добавление в группу iommu 30
[ 0.487770] pci 0000:3e:05.0: добавление в группу iommu 31
[ 0.487793] pci 0000:3e:05.1: добавление в группу iommu 31
[ 0.487816] pci 0000:3e:05.2: добавление в группу iommu 31
[ 0.487838] pci 0000:3e:05.3: добавление в группу iommu 31
[ 0.487896] pci 0000:3e:06.0: добавление в группу iommu 32
[ 0.487922] pci 0000:3e:06.1: добавление в группу iommu 32
[ 0.487946] pci 0000:3e:06.2: добавление в группу iommu 32
[ 0.487969] pci 0000:3e:06.3: Добавление в группу iommu 32
[0.488088] DMAR: технология виртуализации Intel(R) для направленного ввода/вывода
[0.520152] AMD-Vi: Драйвер AMD IOMMUv2 от Joerg Roedel <[email protected]>
[0.520153] AMD-Vi: функциональность AMD IOMMUv2 недоступна в этой системе
[ 1.253336] intel_iommu=on
[64.058649] vfio_iommu_type1_attach_group: нет поддержки переназначения прерываний. Используйте параметр модуля «allow_unsafe_interrupts», чтобы включить поддержку VFIO IOMMU на этой платформе.

Я использовал скрипт из арка вики чтобы мои группы:

...
Группа IOMMU 16:
     03:00.0 Ethernet-контроллер [0200]: гигабитное сетевое соединение Intel Corporation 82580 [8086:150e] (версия 01)
Группа IOMMU 17:
     03:00.1 Контроллер Ethernet [0200]: гигабитное сетевое соединение Intel Corporation 82580 [8086:150e] (версия 01)
Группа IOMMU 18:
     03:00.2 Контроллер Ethernet [0200]: подключение Intel Corporation 82580 Gigabit Netork [8086:150e] (версия 01)
Группа IOMMU 19:
     03:00.3 Контроллер Ethernet [0200]: подключение Intel Corporation 82580 Gigabit Netork [8086:150e] (версия 01)
...

И я проверяю свои группы vfio

лс /dev/vfio
16 17 18 19 лет

И я запускаю свою виртуальную машину

qemu-система-x86_y4 \
   -м 8G \
   -включить-квм \
   -процессор хост \
   -smp 2 \
   -нет нет \
   -устройство vfio-pci,host=03:00.0,id=net0 \
   -vga virtio -display gtk,gl=on \
   -drive format=qcow2,file=disk.cow,index=0,if=virtio \
   -drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2-ovmf/x64/OVMF_CODE.fd \
   -drive if=pflash,format=raw,file=uefi_vars.fd

в результате следующая ошибка:

qemu-system-x86_64: -device vfio-pci,host=03:00.0,id=net0: vfio 0000:03:00.0: не удалось настроить контейнер для группы 16: не удалось установить iommu для контейнера: операция не разрешена

Я не знаю, что делать дальше. есть идеи?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.