You are not logged in.
I can't figure out why IOMMU isn't working. I've followed https://wiki.archlinux.org/title/PCI_pa … h_via_OVMF
I've enabled VT-D, SRV-IO, set the kernel param intel_iommu=on, checked the kernel config. But no dice ![]()
IOMMU groups are empty, trying to passthrough the pcie gpu fails with error -22
dmesg | grep -i -e DMAR -e IOMMU ─╯
[ 0.000000] Command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img root="LABEL=root" rw iommu_intel=on iommu=pt vfio-pci.ids=1002:67b1
[ 0.015553] ACPI: DMAR 0x0000000098E75000 0000A8 (v01 INTEL EDK2 00000002 01000013)
[ 0.015587] ACPI: Reserving DMAR table memory at [mem 0x98e75000-0x98e750a7]
[ 0.062448] Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img root="LABEL=root" rw iommu_intel=on iommu=pt vfio-pci.ids=1002:67b1
[ 0.140905] DMAR: Host address width 39
[ 0.140906] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[ 0.140911] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[ 0.140913] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[ 0.140917] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[ 0.140918] DMAR: RMRR base: 0x000000998f1000 end: 0x00000099b3afff
[ 0.140920] DMAR: RMRR base: 0x0000009b000000 end: 0x0000009f7fffff
[ 0.140923] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1
[ 0.140924] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[ 0.140925] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[ 0.142642] DMAR-IR: Enabled IRQ remapping in x2apic mode
[ 0.376886] iommu: Default domain type: Passthrough (set via kernel command line)
[ 0.650716] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
[ 0.650716] AMD-Vi: AMD IOMMUv2 functionality not available on this system
[ 1.190037] iommu_intel=ondmesg | grep -i vfio ─╯
[ 0.000000] Command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img root="LABEL=root" rw iommu_intel=on iommu=pt vfio-pci.ids=1002:67b1
[ 0.062448] Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img root="LABEL=root" rw iommu_intel=on iommu=pt vfio-pci.ids=1002:67b1
[ 1.246241] VFIO - User Level meta-driver version: 0.3
[ 1.249151] vfio-pci: probe of 0000:01:00.0 failed with error -22
[ 1.249152] vfio_pci: add [1002:67b1[ffffffff:ffffffff]] class 0x000000/00000000╰─ cat /boot/loader/entries/linux.conf ─╯
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root="LABEL=root" rw iommu_intel=on iommu=pt vfio-pci.ids=1002:67b1╰─ zcat /proc/config.gz| grep IOMMU ─╯
CONFIG_IRQ_MSI_IOMMU=y
# CONFIG_GART_IOMMU is not set
CONFIG_VFIO_IOMMU_TYPE1=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_IOMMU_IOVA=y
CONFIG_IOMMU_API=y
CONFIG_IOMMU_SUPPORT=y
# Generic IOMMU Pagetable Support
CONFIG_IOMMU_IO_PGTABLE=y
# end of Generic IOMMU Pagetable Support
# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_DMA=y
CONFIG_AMD_IOMMU=y
CONFIG_AMD_IOMMU_V2=y
CONFIG_INTEL_IOMMU=y
CONFIG_INTEL_IOMMU_SVM=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
CONFIG_HYPERV_IOMMU=yAny help is appreciated. Am I missing something here?
Thanks!
Last edited by kyokujitsu (2021-07-01 05:40:24)
Offline
The latest firmware version for your motherboard is 7C75v29 from 2021-04-22 , which version are you running ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
I'm running the latest one, also tried that route....
I don't get it...
Did BIOS reset, cleared CMOS, everything I can think off. Also tried running linux-vfio-lts kernel
Offline
What are the contents of /etc/mkinitcpio.conf ?
Offline
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(piix ide_disk reiserfs)
MODULES=(vfio_pci vfio vfio_iommu_type1 vfio_virqfd)
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS=(systemd btrfs autodetect modconf block filesystems keymap consolefont keyboard fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
#COMPRESSION="zstd"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()Offline
Please also post the whole ungrepped output of dmesg.
Offline
Finally figured it out. Had to add downstream and multifunction to the iommu module, thanks everyone!
Offline