Package Details: linux-vfio 6.11.9-1

Git Clone URL: https://aur.archlinux.org/linux-vfio.git (read-only, click to copy)
Package Base: linux-vfio
Description: The Linux kernel and modules (ACS override and i915 VGA arbiter patches)
Upstream URL: https://www.kernel.org
Keywords: acs arbiter assignment gpu i915 kvm override passthrough pci qemu vfio vga
Licenses: GPL-2.0-or-later
Provides: KSMBD-MODULE, VIRTUALBOX-GUEST-MODULES, WIREGUARD-MODULE
Submitter: zman0900
Maintainer: xiota
Last Packager: xiota
Votes: 73
Popularity: 0.000296
First Submitted: 2015-01-30 06:41 (UTC)
Last Updated: 2024-11-19 18:25 (UTC)

Required by (5)

Sources (7)

Pinned Comments

xiota commented on 2024-01-09 18:43 (UTC) (edited on 2024-01-11 16:53 (UTC) by xiota)

  • Leaving eclairvoyant's comment pinned because it contains some useful information.
  • Patch policy is different, but similar.
    • Primary purpose of this package are the ACS override and i915 VGA arbiter patches.
    • Upstream Arch patches will be applied to maintain parity with the standard kernel.
    • No other patches will be added.
  • Package does have options that can be changed, like building with clang or disabling Arch patches.
    • Defaults will match Arch packages, except when incompatible with this package's primary patches.
    • Options are subject to change. Read PKGBUILD for details.
  • Avoid commenting and flagging at the same time for the same issue.
    • Flag for common issues with standard solutions, like new releases, key changes, etc.
    • Comment for issues requiring explanation or debugging.
      • Use a pastebin for blocks of text more than a few lines.

eclairevoyant commented on 2023-04-06 21:24 (UTC) (edited on 2023-04-06 21:31 (UTC) by eclairevoyant)

This package exists for the specific purpose of adding ported patches based on those originally created by Alex Williamson for:

Arbitrary patches will not be added.

Refer to the wiki on PCI passthrough and this blog post on IOMMU groups for risks/caveats before using this package.

Regular AUR etiquette applies as well (knowledge of makepkg and searching the wiki/Arch forums is expected, and AUR helpers or Arch-based distros that are not Arch Linux are unsupported).

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 .. 32 Next › Last »

fmorgner commented on 2023-09-01 08:12 (UTC)

Since this has been lagging behind the mainline kernel, I decided to try and update to the current kernel release. I am using the following patch and from what I can tell, it works perfectly fine:

From 473511d01b02b0d946a2f336f0e0ead28b62b95b Mon Sep 17 00:00:00 2001
From: Felix Morgner <felix.morgner@gmail.com>
Date: Fri, 1 Sep 2023 10:09:54 +0200
Subject: [PATCH] pkg: update to Linux 6.4.12-arch1

---
 0001-add-acs-overrides.patch | 34 ++++-----------
 0002-i915-vga-arbiter.patch  | 80 +++++++++++++-----------------------
 PKGBUILD                     | 23 ++++++-----
 3 files changed, 50 insertions(+), 87 deletions(-)

diff --git a/0001-add-acs-overrides.patch b/0001-add-acs-overrides.patch
index 2b270d5..2624b05 100644
--- a/0001-add-acs-overrides.patch
+++ b/0001-add-acs-overrides.patch
@@ -1,19 +1,7 @@
-From b41eb63d48790c92ac171fd92ad6355cb724e7ad Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=A9clairevoyant?=
- <848000+eclairevoyant@users.noreply.github.com>
-Date: Tue, 14 Mar 2023 17:06:39 -0400
-Subject: [PATCH 1/2] add-acs-overrides
-
----
- .../admin-guide/kernel-parameters.txt         |   8 ++
- drivers/pci/quirks.c                          | 102 ++++++++++++++++++
- 2 files changed, 110 insertions(+)
-
-diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index 6cfa6e3996cf..fdbe34c0fbf3 100644
---- a/Documentation/admin-guide/kernel-parameters.txt
-+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -4178,6 +4178,14 @@
+diff --unified --recursive --text a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
+--- a/Documentation/admin-guide/kernel-parameters.txt  2023-08-26 21:41:59.900155485 +0200
++++ b/Documentation/admin-guide/kernel-parameters.txt  2023-08-26 21:42:33.030920840 +0200
+@@ -4256,6 +4256,14 @@
        nomsi       [MSI] If the PCI_MSI kernel config parameter is
                enabled, this kernel boot option can be used to
                disable the use of MSI interrupts system-wide.
@@ -28,11 +16,10 @@ index 6cfa6e3996cf..fdbe34c0fbf3 100644
        noioapicquirk   [APIC] Disable all boot interrupt quirks.
                Safety option to keep boot IRQs enabled. This
                should never be necessary.
-diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 494fa46f5767..41150eb8bd4c 100644
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -194,6 +194,106 @@ static int __init pci_apply_final_quirks(void)
+diff --unified --recursive --text a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+--- a/drivers/pci/quirks.c 2023-08-26 21:42:01.850200571 +0200
++++ b/drivers/pci/quirks.c 2023-08-26 21:42:33.030920840 +0200
+@@ -194,6 +194,106 @@
  }
  fs_initcall_sync(pci_apply_final_quirks);

@@ -139,7 +126,7 @@ index 494fa46f5767..41150eb8bd4c 100644
  /*
   * Decoding should be disabled for a PCI device during BAR sizing to avoid
   * conflict. But doing so may cause problems on host bridge and perhaps other
-@@ -5002,6 +5102,8 @@ static const struct pci_dev_acs_enabled {
+@@ -5017,6 +5117,8 @@
    { PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
    /* Wangxun nics */
    { PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs },
@@ -148,6 +135,3 @@ index 494fa46f5767..41150eb8bd4c 100644
    { 0 }
  };

--- 
-2.39.2
-
diff --git a/0002-i915-vga-arbiter.patch b/0002-i915-vga-arbiter.patch
index fc546d8..b82eed5 100644
--- a/0002-i915-vga-arbiter.patch
+++ b/0002-i915-vga-arbiter.patch
@@ -1,23 +1,7 @@
-From 61009bd54ec93d15f9c26325cf5e5c68ac98becc Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=A9clairevoyant?=
- <848000+eclairevoyant@users.noreply.github.com>
-Date: Tue, 14 Mar 2023 17:07:40 -0400
-Subject: [PATCH 2/2] i915-vga-arbiter
-
----
- drivers/gpu/drm/i915/display/intel_display.c | 15 ++++++++--
- drivers/gpu/drm/i915/display/intel_display.h |  1 +
- drivers/gpu/drm/i915/display/intel_vga.c     | 31 ++++++++++++++++++++
- drivers/gpu/drm/i915/display/intel_vga.h     |  4 +++
- drivers/gpu/drm/i915/i915_params.c           |  3 ++
- drivers/gpu/drm/i915/i915_params.h           |  1 +
- 6 files changed, 52 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
-index dedbdb175f8b..e7e95308f6e6 100644
---- a/drivers/gpu/drm/i915/display/intel_display.c
-+++ b/drivers/gpu/drm/i915/display/intel_display.c
-@@ -8646,9 +8646,11 @@ int intel_modeset_init_noirq(struct drm_i915_private *i915)
+diff --unified --recursive --text package.orig/drivers/gpu/drm/i915/display/intel_display.c package.new/drivers/gpu/drm/i915/display/intel_display.c
+--- package.orig/drivers/gpu/drm/i915/display/intel_display.c  2023-08-26 21:42:01.223519415 +0200
++++ package.new/drivers/gpu/drm/i915/display/intel_display.c   2023-08-26 21:47:01.677083488 +0200
+@@ -8372,9 +8372,11 @@

    intel_bios_init(i915);

@@ -31,8 +15,8 @@ index dedbdb175f8b..e7e95308f6e6 100644
 +  }

    /* FIXME: completely on the wrong abstraction layer */
-   intel_power_domains_init_hw(i915, false);
-@@ -8796,6 +8798,12 @@ int intel_modeset_init(struct drm_i915_private *i915)
+   ret = intel_power_domains_init(i915);
+@@ -8527,6 +8529,12 @@
    if (ret)
        return ret;

@@ -45,7 +29,7 @@ index dedbdb175f8b..e7e95308f6e6 100644
    /* Only enable hotplug handling once the fbdev is fully set up. */
    intel_hpd_init(i915);
    intel_hpd_poll_disable(i915);
-@@ -8966,6 +8974,7 @@ void intel_modeset_driver_remove(struct drm_i915_private *i915)
+@@ -8705,6 +8713,7 @@
    if (!HAS_DISPLAY(i915))
        return;

@@ -53,11 +37,10 @@ index dedbdb175f8b..e7e95308f6e6 100644
    flush_workqueue(i915->display.wq.flip);
    flush_workqueue(i915->display.wq.modeset);

-diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
-index 714030136b7f..fbd500249ab1 100644
---- a/drivers/gpu/drm/i915/display/intel_display.h
-+++ b/drivers/gpu/drm/i915/display/intel_display.h
-@@ -535,6 +535,7 @@ void i830_disable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe);
+diff --unified --recursive --text package.orig/drivers/gpu/drm/i915/display/intel_display.h package.new/drivers/gpu/drm/i915/display/intel_display.h
+--- package.orig/drivers/gpu/drm/i915/display/intel_display.h  2023-08-26 21:42:01.223519415 +0200
++++ package.new/drivers/gpu/drm/i915/display/intel_display.h   2023-08-26 21:47:01.677083488 +0200
+@@ -426,6 +426,7 @@
  int vlv_get_hpll_vco(struct drm_i915_private *dev_priv);
  int vlv_get_cck_clock(struct drm_i915_private *dev_priv,
              const char *name, u32 reg, int ref_freq);
@@ -65,11 +48,10 @@ index 714030136b7f..fbd500249ab1 100644
  int vlv_get_cck_clock_hpll(struct drm_i915_private *dev_priv,
               const char *name, u32 reg);
  void intel_init_display_hooks(struct drm_i915_private *dev_priv);
-diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c
-index a69bfcac9a94..4cafe1f812f5 100644
---- a/drivers/gpu/drm/i915/display/intel_vga.c
-+++ b/drivers/gpu/drm/i915/display/intel_vga.c
-@@ -46,6 +46,36 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
+diff --unified --recursive --text package.orig/drivers/gpu/drm/i915/display/intel_vga.c package.new/drivers/gpu/drm/i915/display/intel_vga.c
+--- package.orig/drivers/gpu/drm/i915/display/intel_vga.c  2023-08-26 21:42:01.230186236 +0200
++++ package.new/drivers/gpu/drm/i915/display/intel_vga.c   2023-08-26 21:47:01.677083488 +0200
+@@ -47,6 +47,36 @@
    intel_de_posting_read(dev_priv, vga_reg);
  }

@@ -106,7 +88,7 @@ index a69bfcac9a94..4cafe1f812f5 100644
  void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv)
  {
    i915_reg_t vga_reg = intel_vga_cntrl_reg(dev_priv);
-@@ -54,6 +84,7 @@ void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv)
+@@ -55,6 +85,7 @@
        drm_dbg_kms(&dev_priv->drm,
                "Something enabled VGA plane, disabling it\n");
        intel_vga_disable(dev_priv);
@@ -114,11 +96,10 @@ index a69bfcac9a94..4cafe1f812f5 100644
    }
  }

-diff --git a/drivers/gpu/drm/i915/display/intel_vga.h b/drivers/gpu/drm/i915/display/intel_vga.h
-index ba5b55b917f0..7e2af7924e99 100644
---- a/drivers/gpu/drm/i915/display/intel_vga.h
-+++ b/drivers/gpu/drm/i915/display/intel_vga.h
-@@ -15,4 +15,8 @@ void intel_vga_redisable_power_on(struct drm_i915_private *i915);
+diff --unified --recursive --text package.orig/drivers/gpu/drm/i915/display/intel_vga.h package.new/drivers/gpu/drm/i915/display/intel_vga.h
+--- package.orig/drivers/gpu/drm/i915/display/intel_vga.h  2023-08-26 21:42:01.230186236 +0200
++++ package.new/drivers/gpu/drm/i915/display/intel_vga.h   2023-08-26 21:47:01.677083488 +0200
+@@ -15,4 +15,8 @@
  int intel_vga_register(struct drm_i915_private *i915);
  void intel_vga_unregister(struct drm_i915_private *i915);

@@ -127,11 +108,10 @@ index ba5b55b917f0..7e2af7924e99 100644
 +void intel_vga_disable_mem(struct drm_i915_private *i915);
 +
  #endif /* __INTEL_VGA_H__ */
-diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
-index d1e4d528cb17..a00cbc6591b0 100644
---- a/drivers/gpu/drm/i915/i915_params.c
-+++ b/drivers/gpu/drm/i915/i915_params.c
-@@ -154,6 +154,9 @@ i915_param_named_unsafe(invert_brightness, int, 0400,
+diff --unified --recursive --text package.orig/drivers/gpu/drm/i915/i915_params.c package.new/drivers/gpu/drm/i915/i915_params.c
+--- package.orig/drivers/gpu/drm/i915/i915_params.c    2023-08-26 21:42:01.243519878 +0200
++++ package.new/drivers/gpu/drm/i915/i915_params.c 2023-08-26 21:47:01.680416897 +0200
+@@ -160,6 +160,9 @@
  i915_param_named(disable_display, bool, 0400,
    "Disable display (default: false)");

@@ -141,11 +121,10 @@ index d1e4d528cb17..a00cbc6591b0 100644
  i915_param_named(memtest, bool, 0400,
    "Perform a read/write test of all device memory on module load (default: off)");

-diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h
-index 2733cb6cfe09..f21c5b1529cc 100644
---- a/drivers/gpu/drm/i915/i915_params.h
-+++ b/drivers/gpu/drm/i915/i915_params.h
-@@ -76,6 +76,7 @@ struct drm_printer;
+diff --unified --recursive --text package.orig/drivers/gpu/drm/i915/i915_params.h package.new/drivers/gpu/drm/i915/i915_params.h
+--- package.orig/drivers/gpu/drm/i915/i915_params.h    2023-08-26 21:42:01.243519878 +0200
++++ package.new/drivers/gpu/drm/i915/i915_params.h 2023-08-26 21:47:01.680416897 +0200
+@@ -79,6 +79,7 @@
    param(unsigned int, lmem_size, 0, 0400) \
    param(unsigned int, lmem_bar_size, 0, 0400) \
    /* leave bools at the end to not create holes */ \
@@ -153,6 +132,3 @@ index 2733cb6cfe09..f21c5b1529cc 100644
    param(bool, enable_hangcheck, true, 0600) \
    param(bool, load_detect_test, false, 0600) \
    param(bool, force_reset_modeset_test, false, 0600) \
--- 
-2.39.2
-
diff --git a/PKGBUILD b/PKGBUILD
index 3b32c3e..879d700 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
 # Upstream: Jan Alexander Steffens (heftig) <heftig@archlinux.org>

 pkgbase=linux-vfio
-pkgver=6.3.7.arch1
+pkgver=6.4.12.arch1
 pkgrel=1
 pkgdesc='Linux'
 _srctag=v${pkgver%.*}-${pkgver##*.}
@@ -20,14 +20,9 @@ makedepends=(
   libelf
   pahole
   perl
+  python
   tar
   xz
-
-  # htmldocs
-  graphviz
-  imagemagick
-  python-sphinx
-  texlive-latexextra
 )
 options=('!strip')
 _srcname=archlinux-linux
@@ -45,8 +40,8 @@ validpgpkeys=(
 )
 b2sums=('SKIP'
         'c2d1c69265adc041dc0364e448f6e86dc4c9ca1207c84071abc1675dd820534a8ab5a230e579e68bfb1bf2b861f23ad34e090f8ceaef5e265ea95e2bc6946013'
-        'b1bb6028bead89c277f0e98b308574e47feee2ece5b7f0a2422d40d5b2532216550f99153fbb451c2bee2df398a1a2d596f776281243cf55d4e94c1d5d854ef2'
-        '7c99c5d965bda71f1d08e72fadc529b594d95648950aab49212daee8b34af525404bd98737d2bd715d81959fb71ed143416cb21d88075d833f931f9d0d313ab5')
+        'a8c82582eaa6b8e997022f1b2c8481d0e316c46bb12a7ff7e0df772634f24cd2da7a61b8512dddf14e9d964f9ca4ef90d7965bbec736861ab10f0b5c2b04db31'
+        '5becda768e2b6cf6f5c664b16671a3e27c4fd934e06df9545c66ee80a85533bbe4dfe85a0953217a37664d4fe18a95fc8f3ca76dbd2ef912a54ff4247ab38550')

 export KBUILD_BUILD_HOST=archlinux
 export KBUILD_BUILD_USER=$pkgbase
@@ -81,12 +76,16 @@ prepare() {
   _make olddefconfig
   diff -u ../config .config || :

+
+
+
+
   echo "Prepared $pkgbase version $(<version)"
 }

 build() {
   cd $_srcname
-  _make htmldocs all
+  _make all
 }

 _package() {
@@ -105,6 +104,10 @@ _package() {
     VIRTUALBOX-GUEST-MODULES
     WIREGUARD-MODULE
   )
+  replaces=(
+    virtualbox-guest-modules-arch
+    wireguard-arch
+  )

   cd $_srcname
   local modulesdir="$pkgdir/usr/lib/modules/$(<version)"
-- 
2.42.0

eclairevoyant commented on 2023-04-06 21:24 (UTC) (edited on 2023-04-06 21:31 (UTC) by eclairevoyant)

This package exists for the specific purpose of adding ported patches based on those originally created by Alex Williamson for:

Arbitrary patches will not be added.

Refer to the wiki on PCI passthrough and this blog post on IOMMU groups for risks/caveats before using this package.

Regular AUR etiquette applies as well (knowledge of makepkg and searching the wiki/Arch forums is expected, and AUR helpers or Arch-based distros that are not Arch Linux are unsupported).

daniel_shub commented on 2023-04-06 17:44 (UTC)

The pinned comment mentions binary packages in markzz and slowbro's repos. Both of these repos seem out of date. If they are not being updated, it is probably worth replacing the pinned comment with an updated one.

eclairevoyant commented on 2023-01-01 21:43 (UTC)

@pagdot Thanks for catching that, fixed.

@markzz Feel free to comment if you have any technical input, but I'd suggest keeping the passive aggressive comments to yourself next time. It's just software, it's not that deep. That's all I'll be discussing on that topic.

markzz commented on 2023-01-01 20:16 (UTC)

Yeah, turns out, maintaining this package is not always just updating the version number and grabbing a new config. I'll work on an updated patch today.

pagdot commented on 2023-01-01 15:53 (UTC) (edited on 2023-01-01 15:55 (UTC) by pagdot)

Applying the patch is broken right now:

==> Starting prepare()...
Setting version...
Applying patch add-acs-overrides.patch...
patching file Documentation/admin-guide/kernel-parameters.txt
Hunk #1 succeeded at 4145 (offset 516 lines).
patching file drivers/pci/quirks.c
Hunk #1 succeeded at 194 (offset 2 lines).
Hunk #2 succeeded at 5080 with fuzz 1 (offset 211 lines).
Applying patch i915-vga-arbiter.patch...
patching file drivers/gpu/drm/i915/display/intel_display.c
Hunk #1 succeeded at 8656 (offset -925 lines).
Hunk #2 succeeded at 8809 (offset -927 lines).
Hunk #3 FAILED at 10475.
1 out of 3 hunks FAILED -- saving rejects to file drivers/gpu/drm/i915/display/intel_display.c.rej
patching file drivers/gpu/drm/i915/display/intel_display.h
Hunk #1 succeeded at 576 (offset 8 lines).
patching file drivers/gpu/drm/i915/display/intel_vga.c
patching file drivers/gpu/drm/i915/display/intel_vga.h
patching file drivers/gpu/drm/i915/i915_params.c
Hunk #1 succeeded at 154 (offset 12 lines).
patching file drivers/gpu/drm/i915/i915_params.h
Hunk #1 succeeded at 76 with fuzz 2 (offset 1 line).
==> ERROR: A failure occurred in prepare().
    Aborting...

drivers/gpu/drm/i915/display/intel_display.c.rej:

\--- drivers/gpu/drm/i915/display/intel_display.c
+++ drivers/gpu/drm/i915/display/intel_display.c
@@ -10475,6 +10483,7 @@ void intel_modeset_driver_remove(struct drm_i915_private *i915)
        if (!HAS_DISPLAY(i915))
                return;

+       intel_vga_enable_mem(i915);
        flush_workqueue(i915->flip_wq);
        flush_workqueue(i915->modeset_wq);

eclairevoyant commented on 2022-11-05 18:19 (UTC) (edited on 2022-11-05 18:19 (UTC) by eclairevoyant)

I strongly suggest rebuilding this after updating openssl to 3.0.7 (or better, building in a clean chroot which has an updated openssl), as this may break things otherwise.

Firebug24k commented on 2022-10-31 04:25 (UTC)

Same problem here - I can't get 6.0.5 to boot, it hangs as soon as it gets to the framebuffer.

TieMajor commented on 2022-10-17 06:22 (UTC)

6.0.2.arch1-1 is causing weird issues for me. The initial framebuffer seems to be broken (I am not using quiet), but when the xorg or wayland session starts it works fine. Trying to troubleshoot this I only found out it happens when I specify ids with vfio-pci.ids as a kernel parameter.

The symtoms are extremly similar to this post https://bbs.archlinux.org/viewtopic.php?id=280512.