ACS override kernel for Fedora

A dnf repo of Fedora kernels with Alex Williamson's ACS override patch applied, for PCI passthrough of devices that share an IOMMU group. Rebuilt daily against the newest Fedora kernel. Source and full setup notes: some-natalie/fedora-acs-override.

Install

sudo dnf config-manager addrepo --from-repofile=https://some-natalie.github.io/fedora-acs-override/acs-override.repo
sudo dnf install kernel-acs kernel-acs-core kernel-acs-devel kernel-acs-modules kernel-acs-modules-extra
sudo reboot

These are kernel-acs*, a separate package family from Fedora's own kernel*, so nothing is replaced. Both stay installed and bootable, and you pick which one runs at the boot menu. uname -r shows .acs when you're on this one.

Check the signing key first

Packages and repo metadata are both signed, so dnf asks you to accept the key on first install. Verify it before you do — the fingerprint should be FC3F2A6C5D05CE26434442BBD9500E334C48DD8B:

curl -s https://some-natalie.github.io/fedora-acs-override/RPM-GPG-KEY-acs-override | gpg --show-keys

Builds are attested too:

gh attestation verify kernel-acs-core-*.rpm --repo some-natalie/fedora-acs-override

Going back a version

The five newest kernel versions per Fedora release stay in the repo. Kernels are installonly, so dnf downgrade refuses — install the older version by name instead and it lands alongside what you have:

dnf list --showduplicates kernel-acs-core
sudo dnf install kernel-acs-core-7.1.8-200.acs.fc44 kernel-acs-modules-7.1.8-200.acs.fc44
sudo grubby --info=ALL | grep -E 'index|title'
sudo grubby --set-default=/boot/vmlinuz-7.1.8-200.acs.fc44.x86_64

Host configuration

Installing the kernel is only half of it — IOMMU still has to be enabled on the kernel command line, and identical cards need pcie_acs_override=downstream. The grub, modprobe, and dracut configuration is in the README.

No warranty, no support. Back up anything you care about first.