Score:0

ส่ง nic ให้แขกใน qemu โดยใช้ iommu & vfio

ธง gb

ฉันซื้อการ์ด PCIe อะแดปเตอร์เครือข่าย 4 พอร์ต (Intel E1G44HT 10/100/1000Mbps PCI-Express 2.0 Server Adapter I340-T4)

ฉันกำลังพยายามติดตั้งในเวิร์กสเตชัน hpZ600 ของฉันและส่งผ่านไปยัง Guest VM ของฉัน

ฉันใช้ Artix Linux แต่ส่วนใหญ่ทำตามคำแนะนำสำหรับ Arch Linux

ปัญหาคือฉันไม่สามารถส่งการ์ดไปยัง VM ของฉันได้

นี่คือสิ่งที่ฉันทำไปแล้ว:

ก่อนอื่นฉันอัปเดตค่าเริ่มต้น / ด้วง

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

จากนั้นฉันสร้างการกำหนดค่าด้วงใหม่

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

ฉันรีบูตและตรวจสอบให้แน่ใจว่าสิ่งต่าง ๆ ใช้งานได้

sudo รีบูต -h ตอนนี้

ฉันตรวจสอบผลลัพธ์ของ dmesg

sudo 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: ประเภทโดเมนเริ่มต้น: Passthrough (ตั้งค่าผ่านบรรทัดคำสั่งเคอร์เนล)
[ 0.485787] DMAR: ที่อยู่โฮสต์กว้าง 40
[ 0.485788] DMAR: ฐาน DRHD: แฟล็ก 0x000000fed90000: 0x1
[ 0.485799] DMAR: dmar0: reg_base_addr fed90000 เวอร์ชัน 1:0 สูงสุด 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: เพิ่มไปยังกลุ่ม iommu 7
[ 0.486167] pci 0000:00:14.2: เพิ่มไปยังกลุ่ม iommu 8
[ 0.486194] pci 0000:00:15.0: เพิ่มไปยังกลุ่ม iommu 9
[ 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) Virtualization Technology สำหรับ Directed I/O
[ 0.520152] AMD-Vi: ไดรเวอร์ AMD IOMMUv2 โดย Joerg Roedel <[email protected]>
[ 0.520153] AMD-Vi: ฟังก์ชัน AMD IOMMUv2 ไม่พร้อมใช้งานในระบบนี้
[ 1.253336] intel_iommu=เปิด
[ 64.058649] vfio_iommu_type1_attach_group: ไม่สนับสนุนการขัดจังหวะการแมปใหม่ ใช้พารามิเตอร์โมดูล "allow_unsafe_interrupts" เพื่อเปิดใช้งานการสนับสนุน VFIO IOMMU บนแพลตฟอร์มนี้

ฉันใช้สคริปต์จาก วิกิอาร์ค เพื่อให้แน่ใจว่ากลุ่มของฉัน:

...
IOMMU กลุ่มที่ 16:
     03:00.0 Ethernet Controller [0200]: Intel Corporation 82580 Gigabit Netork Connection [8086:150e] (rev 01)
IOMMU กลุ่มที่ 17:
     03:00.1 Ethernet Controller [0200]: Intel Corporation 82580 Gigabit Netork Connection [8086:150e] (rev 01)
IOMMU กลุ่มที่ 18:
     03:00.2 Ethernet Controller [0200]: Intel Corporation 82580 Gigabit Netork Connection [8086:150e] (rev 01)
IOMMU กลุ่มที่ 19:
     03:00.3 Ethernet Controller [0200]: Intel Corporation 82580 Gigabit Netork Connection [8086:150e] (rev 01)
...

และฉันยืนยันกลุ่ม vfio ของฉัน

ls /dev/vfio
16 17 18 19 vfio

และฉันเปิด VM ของฉัน

qemu-ระบบ-x86_y4 \
   -m 8G \
   - เปิดใช้งาน kvm \
   - โฮสต์ซีพียู \
   -smp 2 \
   - ไม่มีสุทธิ \
   -อุปกรณ์ vfio-pci,host=03:00.0,id=net0 \
   -vga virtio -แสดง gtk,gl=on \
   - รูปแบบไดรฟ์ = qcow2, ไฟล์ = disk.cow, ดัชนี = 0, ถ้า = virtio \
   -drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2-ovmf/x64/OVMF_CODE.fd \
   -ไดรฟ์ 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 สำหรับคอนเทนเนอร์: การดำเนินการไม่ได้รับอนุญาต

ฉันไม่แน่ใจว่าจะทำอย่างไรต่อไป ความคิดใด ๆ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา