Điểm:0

chuyển nic cho khách trong qemu bằng iommu & vfio

lá cờ gb

Tôi đã mua thẻ PCIe bộ điều hợp mạng 4 cổng (Bộ điều hợp máy chủ Intel E1G44HT 10/100/1000Mbps PCI-Express 2.0 I340-T4)

Tôi đang cố gắng cài đặt nó trong máy trạm hpZ600 của mình và chuyển nó tới VM khách của tôi

Tôi đang chạy Artix Linux nhưng chủ yếu làm theo hướng dẫn cho Arch Linux.

Vấn đề là tôi không thể chuyển thẻ tới máy ảo của mình.

Đây là những gì tôi đã làm cho đến nay:

Đầu tiên tôi cập nhật mặc định/grub của mình

$ sudo -E nvim /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 silent intel_iommu=on iommu=pt vfio-pci.ids=8086:150e"
...

Sau đó, tôi làm lại cấu hình grub của mình

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

Tôi khởi động lại và đảm bảo mọi thứ đang hoạt động

Sudo khởi động lại -h ngay bây giờ

Tôi kiểm tra đầu ra của dmesg

sudo dmesg | grep -i -e DMAR -e IOMMU
[ 0,000000] Dòng lệnh: BOOT_IMAGE=/vmlinuz-linux root=UUID=095a0572-cdd9-402c-80b7-425724b3cf65 rw loglevel=3 silent intel_iommu=on iommu=pt vfio-pci.ids=8086:150e
[ 0,013145] ACPI: DMAR 0x00000000DEFB8F83 000170 (v01 HPQOEM TYLSBURG 00000001 00000000)
[ 0,013171] ACPI: Dự trữ bộ nhớ bảng DMAR tại [mem 0xdefb8f83-0xdefb90f2]
[ 0,064149] Dòng lệnh hạt nhân: BOOT_IMAGE=/vmlinuz-linux root=UUID=095a0572-cdd9-402c-80b7-425724b3cf65 rw loglevel=3 silent intel_iommu=on iommu=pt vfio-pci.ids=8086:150e
[ 0,064257] DMAR: Đã bật IOMMU
[ 0,064301] Tham số dòng lệnh nhân không xác định "BOOT_IMAGE=/vmlinuz-linux intel_iommu=on", sẽ được chuyển đến không gian người dùng.
[ 0.166858] DMAR-IR: BIOS hệ thống này đã bật ánh xạ lại ngắt
[ 0.455454] iommu: Loại miền mặc định: Truyền qua (đặt qua dòng lệnh kernel)
[ 0,485787] DMAR: Chiều rộng địa chỉ máy chủ 40
[ 0,485788] DMAR: Cơ sở DRHD: 0x000000fed90000 cờ: 0x1
[ 0.485799] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c90780106f0462 ecap f02076
[ 0.485802] DMAR: Cơ sở RMRR: 0x000000defd0000 kết thúc: 0x000000defd0fff
[ 0.485804] DMAR: Cơ sở RMRR: 0x000000defd1000 kết thúc: 0x000000defd1fff
[ 0.485805] DMAR: Cơ sở RMRR: 0x000000defd2000 kết thúc: 0x000000defd2fff
[ 0.485807] DMAR: Cơ sở RMRR: 0x000000defd3000 kết thúc: 0x000000defd3fff
[ 0.485808] DMAR: Cơ sở RMRR: 0x000000defd4000 kết thúc: 0x000000defd4fff
[ 0.485809] DMAR: Cơ sở RMRR: 0x000000defd5000 kết thúc: 0x000000defd5fff
[ 0.485811] DMAR: Cơ sở RMRR: 0x000000defd6000 kết thúc: 0x000000defd6fff
[ 0.485812] DMAR: Cơ sở RMRR: 0x000000defd7000 kết thúc: 0x000000defd7fff
[ 0,485813] DMAR: Cờ ATSR: 0x0
[ 0.485838] DMAR: Không tìm thấy SATC
[ 0.485852] DMAR: dmar0: Sử dụng vô hiệu hóa hàng đợi
[ 0.485953] pci 0000:00:00.0: Thêm vào nhóm iommu 0
[ 0.485973] pci 0000:00:01.0: Thêm vào nhóm iommu 1
[ 0.485990] pci 0000:00:03.0: Thêm vào nhóm iommu 2
[ 0.486007] pci 0000:00:07.0: Thêm vào nhóm iommu 3
[ 0.486043] pci 0000:00:10.0: Thêm vào nhóm iommu 4
[ 0.486061] pci 0000:00:10.1: Thêm vào nhóm iommu 4
[ 0.486096] pci 0000:00:11.0: Thêm vào nhóm iommu 5
[ 0.486112] pci 0000:00:11.1: Thêm vào nhóm iommu 5
[ 0.486130] pci 0000:00:14.0: Thêm vào nhóm iommu 6
[ 0.486148] pci 0000:00:14.1: Thêm vào nhóm iommu 7
[ 0.486167] pci 0000:00:14.2: Thêm vào nhóm iommu 8
[ 0.486194] pci 0000:00:15.0: Thêm vào nhóm iommu 9
[ 0.486248] pci 0000:00:1a.0: Thêm vào nhóm iommu 10
[ 0.486265] pci 0000:00:1a.1: Thêm vào nhóm iommu 10
[ 0.486282] pci 0000:00:1a.2: Thêm vào nhóm iommu 10
[ 0.486300] pci 0000:00:1a.7: Thêm vào nhóm iommu 10
[ 0.486317] pci 0000:00:1b.0: Thêm vào nhóm iommu 11
[ 0.486353] pci 0000:00:1c.0: Thêm vào nhóm iommu 12
[ 0.486371] pci 0000:00:1c.5: Thêm vào nhóm iommu 12
[ 0.486425] pci 0000:00:1d.0: Thêm vào nhóm iommu 13
[ 0.486444] pci 0000:00:1d.1: Thêm vào nhóm iommu 13
[ 0.486462] pci 0000:00:1d.2: Thêm vào nhóm iommu 13
[ 0.486479] pci 0000:00:1d.7: Thêm vào nhóm iommu 13
[ 0.486496] pci 0000:00:1e.0: Thêm vào nhóm iommu 14
[ 0.486531] pci 0000:00:1f.0: Thêm vào nhóm iommu 15
[ 0.486551] pci 0000:00:1f.2: Thêm vào nhóm iommu 15
[ 0.486572] pci 0000:03:00.0: Thêm vào nhóm iommu 16
[ 0.486591] pci 0000:03:00.1: Thêm vào nhóm iommu 17
[ 0.486612] pci 0000:03:00.2: Thêm vào nhóm iommu 18
[ 0.486630] pci 0000:03:00.3: Thêm vào nhóm iommu 19
[ 0.486652] pci 0000:0f:00.0: Thêm vào nhóm iommu 20
[ 0.486658] pci 0000:01:00.0: Thêm vào nhóm iommu 12
[ 0.486693] pci 0000:3f:00.0: Thêm vào nhóm iommu 21
[ 0.486713] pci 0000:3f:00.1: Thêm vào nhóm iommu 21
[ 0.486767] pci 0000:3f:02.0: Thêm vào nhóm iommu 22
[ 0.486787] pci 0000:3f:02.1: Thêm vào nhóm iommu 22
[ 0.486806] pci 0000:3f:02.4: Thêm vào nhóm iommu 22
[ 0.486825] pci 0000:3f:02.5: Thêm vào nhóm iommu 22
[ 0.486878] pci 0000:3f:03.0: Thêm vào nhóm iommu 23
[ 0.486897] pci 0000:3f:03.1: Thêm vào nhóm iommu 23
[ 0.486916] pci 0000:3f:03.2: Thêm vào nhóm iommu 23
[ 0.486935] pci 0000:3f:03.4: Thêm vào nhóm iommu 23
[ 0.486989] pci 0000:3f:04.0: Thêm vào nhóm iommu 24
[ 0.487009] pci 0000:3f:04.1: Thêm vào nhóm iommu 24
[ 0.487028] pci 0000:3f:04.2: Thêm vào nhóm iommu 24
[ 0.487047] pci 0000:3f:04.3: Thêm vào nhóm iommu 24
[ 0.487100] pci 0000:3f:05.0: Thêm vào nhóm iommu 25
[ 0.487120] pci 0000:3f:05.1: Thêm vào nhóm iommu 25
[ 0.487143] pci 0000:3f:05.2: Thêm vào nhóm iommu 25
[ 0.487163] pci 0000:3f:05.3: Thêm vào nhóm iommu 25
[ 0.487216] pci 0000:3f:06.0: Thêm vào nhóm iommu 26
[ 0.487236] pci 0000:3f:06.1: Thêm vào nhóm iommu 26
[ 0.487276] pci 0000:3f:06.2: Thêm vào nhóm iommu 26
[ 0.487298] pci 0000:3f:06.3: Thêm vào nhóm iommu 26
[ 0.487335] pci 0000:3e:00.0: Thêm vào nhóm iommu 27
[ 0.487356] pci 0000:3e:00.1: Thêm vào nhóm iommu 27
[ 0.487408] pci 0000:3e:02.0: Thêm vào nhóm iommu 28
[ 0.487429] pci 0000:3e:02.1: Thêm vào nhóm iommu 28
[ 0.487451] pci 0000:3e:02.4: Thêm vào nhóm iommu 28
[ 0.487472] pci 0000:3e:02.5: Thêm vào nhóm iommu 28
[ 0.487527] pci 0000:3e:03.0: Thêm vào nhóm iommu 29
[ 0.487549] pci 0000:3e:03.1: Thêm vào nhóm iommu 29
[ 0.487571] pci 0000:3e:03.2: Thêm vào nhóm iommu 29
[ 0.487593] pci 0000:3e:03.4: Thêm vào nhóm iommu 29
[ 0.487647] pci 0000:3e:04.0: Thêm vào nhóm iommu 30
[ 0.487669] pci 0000:3e:04.1: Thêm vào nhóm iommu 30
[ 0.487692] pci 0000:3e:04.2: Thêm vào nhóm iommu 30
[ 0.487716] pci 0000:3e:04.3: Thêm vào nhóm iommu 30
[ 0.487770] pci 0000:3e:05.0: Thêm vào nhóm iommu 31
[ 0.487793] pci 0000:3e:05.1: Thêm vào nhóm iommu 31
[ 0.487816] pci 0000:3e:05.2: Thêm vào nhóm iommu 31
[ 0.487838] pci 0000:3e:05.3: Thêm vào nhóm iommu 31
[ 0.487896] pci 0000:3e:06.0: Thêm vào nhóm iommu 32
[ 0.487922] pci 0000:3e:06.1: Thêm vào nhóm iommu 32
[ 0.487946] pci 0000:3e:06.2: Thêm vào nhóm iommu 32
[ 0.487969] pci 0000:3e:06.3: Thêm vào nhóm iommu 32
[ 0.488088] DMAR: Công nghệ ảo hóa Intel(R) cho I/O được định hướng
[ 0.520152] AMD-Vi: Trình điều khiển AMD IOMMUv2 của Joerg Roedel <[email protected]>
[ 0.520153] AMD-Vi: Chức năng AMD IOMMUv2 không khả dụng trên hệ thống này
[ 1.253336] intel_iommu=on
[ 64.058649] vfio_iommu_type1_attach_group: Không hỗ trợ ánh xạ lại ngắt. Sử dụng thông số mô-đun "allow_unsafe_interrupts" để bật hỗ trợ VFIO IOMMU trên nền tảng này

Tôi đã sử dụng kịch bản từ wiki vòm để đảm bảo các nhóm của tôi:

...
IOMMU Nhóm 16:
     03:00.0 Bộ điều khiển Ethernet [0200]: Intel Corporation 82580 Gigabit Netork Connection [8086:150e] (rev 01)
Nhóm IOMMU 17:
     03:00.1 Bộ điều khiển Ethernet [0200]: Intel Corporation 82580 Gigabit Netork Connection [8086:150e] (rev 01)
Nhóm IOMMU 18:
     03:00.2 Bộ điều khiển Ethernet [0200]: Intel Corporation 82580 Gigabit Netork Connection [8086:150e] (rev 01)
Nhóm IOMMU 19:
     03:00.3 Bộ điều khiển Ethernet [0200]: Intel Corporation 82580 Gigabit Netork Connection [8086:150e] (rev 01)
...

Và tôi xác minh các nhóm vfio của mình

ls/dev/vfio
16 17 18 19 vfio

Và tôi khởi chạy máy ảo của mình

qemu-system-x86_y4 \
   -m 8G \
   -enable-kvm \
   -máy chủ cpu \
   -smp 2 \
   -net không \
   -thiết bị 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

dẫn đến lỗi sau:

qemu-system-x86_64: -device vfio-pci,host=03:00.0,id=net0: vfio 0000:03:00.0: không thể thiết lập vùng chứa cho nhóm 16: Không thể đặt iommu cho vùng chứa: Thao tác không được phép

Tôi không chắc phải làm gì tiếp theo. Bất kỳ suy nghĩ?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.