You are not logged in.

#1 2016-02-08 20:28:38

GuloGuloDesu
Member
Registered: 2013-07-18
Posts: 35

[Solved] VGA Passthrough vfio_pci does not boot

I am attempting to follow the Wiki on setting up VGA passthrough but whenever I enable vfio_pci in mkinitcpio my system will not boot.

I followed the instructions to install the edk2.git-ovmf-x64 without issue.

My syslinux.cfg looks like this:

LABEL arch
    MENU LABEL Arch Linux
    LINUX ../vmlinuz-linux
    APPEND root=/dev/sda2 rw intel_iommu=on
    INITRD ../initramfs-linux.img

After a reboot here is my dmesg | grep -e DMAR -e IOMMU output:

[    0.000000] ACPI: DMAR 0x00000000B725C9A8 0000B8 (v01 INTEL  BDW      00000001 INTL 00000001)
[    0.000000] DMAR: IOMMU enabled
[    0.022573] DMAR: Host address width 39
[    0.022574] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.022579] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a
[    0.022579] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.022582] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c20660462 ecap f010da
[    0.022582] DMAR: RMRR base: 0x000000b9e7d000 end: 0x000000b9e8bfff
[    0.022583] DMAR: RMRR base: 0x000000bb000000 end: 0x000000bf1fffff
[    0.022584] DMAR-IR: IOAPIC id 8 under DRHD base  0xfed91000 IOMMU 1
[    0.022585] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.022586] DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.
[    0.022586] DMAR-IR: Use 'intremap=no_x2apic_optout' to override the BIOS setting.
[    0.022783] DMAR-IR: Enabled IRQ remapping in xapic mode
[    0.404133] DMAR: No ATSR found
[    0.404191] DMAR: dmar0: Using Queued invalidation
[    0.404234] DMAR: dmar1: Using Queued invalidation
[    0.404240] DMAR: Setting RMRR:
[    0.404251] DMAR: Setting identity map for device 0000:00:02.0 [0xbb000000 - 0xbf1fffff]
[    0.404512] DMAR: Setting identity map for device 0000:00:14.0 [0xb9e7d000 - 0xb9e8bfff]
[    0.404527] DMAR: Setting identity map for device 0000:00:1a.0 [0xb9e7d000 - 0xb9e8bfff]
[    0.404541] DMAR: Setting identity map for device 0000:00:1d.0 [0xb9e7d000 - 0xb9e8bfff]
[    0.404551] DMAR: Prepare 0-16MiB unity mapping for LPC
[    0.404556] DMAR: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[    0.404661] DMAR: Intel(R) Virtualization Technology for Directed I/O
[    2.379417] [drm] DMAR active, disabling use of stolen memory

I am using 2 Nvidia GTX 760's for my video cards.  Here is the output of lspci -nn | grep -iP "NVIDIA"

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104 [GeForce GTX 760] [10de:1187] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1)
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104 [GeForce GTX 760] [10de:1187] (rev a1)
02:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1)

My vfio.conf looks like:

options vfio-pci ids=10de:1187,10de:0e0a

My current bootable /etc/mkinitcpio.conf is:

MODULES="vfio vfio_iommu_type1 vfio_virqfd"

But when I add vfio_pci to my mkinitcpio.conf modules my computer fails to boot.  The boot looks like: (Please note this is typed from a picture on my phone, so forgive any typo's)

Loading ../vmlinuz-linux... ok
Loading ../initramfs-linux.img... ok
Probing EDD (edd=off to disable)... ok
early console in decompress_kernel
input_data: 0x000000001a1a3b4
input_len: 0x00000000412c31
output: 0x0000000010000000
ouput_len: 0x00000000e1b9a8
run_size: 0x00000000f65000

Decompressing Linux... Parsing ELF... done.
Booting the kernel.
:: running early hook [udev]
starting version 228
_

It just stalls there and never finishes booting until i remove vfio_pci.

I've been trying to find a solution online, but I have not found a solution as of yet.  Does anyone have any suggestions on a possible fix for this?

Last edited by GuloGuloDesu (2016-02-10 17:41:14)

Offline

#2 2016-02-09 09:19:19

Druid
Member
Registered: 2008-10-11
Posts: 9

Re: [Solved] VGA Passthrough vfio_pci does not boot

I am also want to set up pci-passthrough. And had similar problems.

Please, correct me if I'm wrong. When you passing your VGA cards to vfio, they became unavailable for your host system, thus you have to boot using your integrated VGA. You need to set up in BIOS primary VGA to integrated, and plug one of your display to it, then you will be able boot to your host system.

BTW, what CPU do you use?
Have you tried to use linux-lts-vfio kernel from aur?

Last edited by Druid (2016-02-09 09:21:40)

Offline

#3 2016-02-10 17:40:50

GuloGuloDesu
Member
Registered: 2013-07-18
Posts: 35

Re: [Solved] VGA Passthrough vfio_pci does not boot

Thank you for your response Druid.

After re-reading everything I found my problem.  Since I was using 2 of the same graphics cards, they both had the same PCI location.  I am unsure why they have the same location, but they do.
The fix that I found was that I replaced one of the cards with another model Nvidia card, and I was able to get Arch to boot with the vfio_pci.

I'm not 100% sure that I have everything working, and I am still building and testing things, but at least I can boot the OS.  I think I also have the vfio assigned properly.

Offline

Board footer

Powered by FluxBB