[PATCH] add override_for_missing_acs_capabilities.patch

devilrunner

Active Member
Aug 3, 2015
16
6
43
Hi,
please send this to the developer list.
 
Dear,

Please add the following patch into the 4.1.3 kernel releases for proxmox 4.0.
This is needed to split up / break up some (multi)devices iommu groups.
Using this myself to split up my rocketU USB3.0 cards USB controllers into different iommu groups so that vfio can passthrough each controller separately to a VM.

https://github.com/zman0900/linux-vfio-aur/blob/master/override_for_missing_acs_capabilities.patch

Kind regards;
Robin.

I am trying to achieve the same but have trouble applying your patch. Could you give me a hint on what I am doing wrong here? What I did:
  • Code:
    git clone git://git.proxmox.com/git/pve-kernel.git --depth 1
  • Downloaded your patch file override_for_missing_acs_capabilities.patch
  • tried to apply your patch
    Code:
    git apply -v override_for_missing_acs_capabilities.patch
I got the following errors:
Code:
Checking patch Documentation/kernel-parameters.txt...error: Documentation/kernel-parameters.txt: No such file or directory
Checking patch drivers/pci/quirks.c...
error: drivers/pci/quirks.c: No such file or directory

Even if I apply that patch, is a
Code:
make
enough? Shouldn't I create debian packages out of that?

Thanks for your help!
 
Ok, so I had a hard time finding the general approach on building the PVE Kernel. The main difference to building a default linux kernel is that the included makefile does everything for you. No manual override required.

So for anyone else wondering - here is a quick tutorial:
1. Install dependencies (adapt to your system)
On Debian:
Code:
apt-get install git-core lintian build-essential automake autoconf libtool
If the build in step 5 fails, take a close look at the output. It will tell you about any missing libraries. Just install them with apt-get and try again.

2. Checkout sources
Code:
git clone git://git.proxmox.com/git/pve-kernel.git --depth 1
and cd into this folder
Code:
cd pve-kernel

3. OPTIONAL: Enable kernel patches, e.g. the ACS patch above.
Download patch to current directory
Code:
wget https://raw.githubusercontent.com/zman0900/linux-vfio-aur/master/override_for_missing_acs_capabilities.patch
Open Makefile in your favorite editor to add your patches. For the ACS patch, you just have to uncomment the following line:
Code:
#cd ${KERNEL_SRC}; patch -p1 <../override_for_missing_acs_capabilities.patch
Other patches can be applied in a similar way.

4. Build that thing!
Proxmox did a wonderful job here. All you have to do is run
Code:
make
as root! Running as root is important because the make file not only compiles the sources, it will also try to mount some directories. This process might take a while. If you run into any errors, check the output and look for missing packages, libraries and so on. If something goes wrong, you are most likely missing some required packages.

5. Install
Once the make command finished successfull, you will find a couple of newly created deb packages in the folder. Just run (once again as root):
Code:
dpkg -i *.deb
to install them all at once.
Warning: The new packages will most likely overwrite official packages made available through Debian sources and might thus break your system. You have been warned.

6. Done
Now all that is left is to reboot into your new kernel - grub should have picked it up during the installation.
You are done. Enjoy your bleeding-edge, patched PVE kernel!
 
Last edited:
Hi All,

I ran into this today. Found that the newer kernel's have the ACS patch included for PCI passthrough / iommu groups. Just make sure you use the full line in your /etc/default/grub: pcie_acs_override=downstream,multifunction

Mine looks like this for an AMD CPU:
GRUB_CMDLINE_LINUX_DEFAULT="amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nomodeset"

It has to have the multifunction to work. Update your grub etc..
 
  • Like
Reactions: Giovanni
The acs override patch is still not working for J3455 mainboards as stated previously in this thread. There are other threads with the same problem here, here and here. I would really appreciate if someone could write a proper tutorial on how to change the kernel patch 0003-pci-Enable-overrides-for-missing-ACS-capabilities-4.patch and compile the kernel for Proxmox 7.1. I tried to follow @yfdoor instructions but the process fails. I don't know why line 187 of the patch is malformed. I haven't changed that line. Here is another thread with the issue.

This is what I have done:

$ git clone git://git.proxmox.com/git/pve-kernel.git --depth 1 $ nano patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch

I changed line 159 from

+ if (!pci_is_pcie(dev) || + pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS))

To:

+ if (!pci_is_pcie(dev))

$ make applying patch '../../patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch' patching file Documentation/admin-guide/kernel-parameters.txt patching file drivers/pci/quirks.c patch: **** malformed patch at line 187: @@ -4912,6 +5012,8 @@ static const struct pci_dev_acs_enabled { make: *** [Makefile:90: ubuntu-jammy.prepared] Error 2
 
Last edited:
The acs override patch is still not working for J3455 mainboards as stated previously in this thread. There are other threads with the same problem here, here and here. I would really appreciate if someone could write a proper tutorial on how to change the kernel patch 0003-pci-Enable-overrides-for-missing-ACS-capabilities-4.patch and compile the kernel for Proxmox 7.1. I tried to follow @yfdoor instructions but the process fails. I don't know why line 187 of the patch is malformed. I haven't changed that line. Here is another thread with the issue.

This is what I have done:

$ git clone git://git.proxmox.com/git/pve-kernel.git --depth 1 $ nano patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch

I changed line 159 from

+ if (!pci_is_pcie(dev) || + pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS))

To:

+ if (!pci_is_pcie(dev))

$ make applying patch '../../patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch' patching file Documentation/admin-guide/kernel-parameters.txt patching file drivers/pci/quirks.c patch: **** malformed patch at line 187: @@ -4912,6 +5012,8 @@ static const struct pci_dev_acs_enabled { make: *** [Makefile:90: ubuntu-jammy.prepared] Error 2
I found with my setup, that the easiest way to sidestep the malformed patches line was to not remove the entire "pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS))" line, but to leave the closing ")" on there so that you're left with:

+ if (!pci_is_pcie(dev) + )


The reason for the malformed patch errors after removing the whole line, is that the patch file expects to have edited/inserted so many lines, and removing a line of the patch file without updating the insert/removal points for the patch edits (and all the ones after it in the same file) breaks the line references.
 
Last edited:
  • Like
Reactions: tristank
Thank you so much. With your information I was able to compile pve-kernel-5.15.12-1-pve_5.15.12-3_amd64 kernel with the proper patches for the J3455 mainboard. Now the acs override works.
 
Last edited:
Hi All,

I ran into this today. Found that the newer kernel's have the ACS patch included for PCI passthrough / iommu groups. Just make sure you use the full line in your /etc/default/grub: pcie_acs_override=downstream,multifunction

Mine looks like this for an AMD CPU:
GRUB_CMDLINE_LINUX_DEFAULT="amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nomodeset"

It has to have the multifunction to work. Update your grub etc..

I was following the WIKI (https://pve.proxmox.com/wiki/Pci_passthrough) and it wasn't working. It wasn't until I found this comment that with 'multifunction' my AMD Ryzen 3700X finally had the IOMMU groups fixed. Thanks!
 
I have a Fitlet2 with 4 x Intel(R) Atom(TM) Processor E3950 @ 1.60GHz (1 Socket). I'm having the same issue. ACS all looks to be enabled but when groups are being allocated, its ignored and I'm stuck with the same group mappings. How do I work around this please?

I'm trying to passthrough a single NIC for the WAN interface for OPNSense.

Code:
 0.506256] DMAR: No ATSR found
[ 0.506258] DMAR: No SATC found
[ 0.506262] DMAR: IOMMU feature fl1gp_support inconsistent
[ 0.506264] DMAR: IOMMU feature pgsel_inv inconsistent
[ 0.506266] DMAR: IOMMU feature nwfs inconsistent
[ 0.506268] DMAR: IOMMU feature eafs inconsistent
[ 0.506270] DMAR: IOMMU feature prs inconsistent
[ 0.506271] DMAR: IOMMU feature nest inconsistent
[ 0.506273] DMAR: IOMMU feature mts inconsistent
[ 0.506274] DMAR: IOMMU feature sc_support inconsistent
[ 0.506276] DMAR: IOMMU feature dev_iotlb_support inconsistent
[ 0.506278] DMAR: dmar0: Using Queued invalidation
[ 0.506285] DMAR: dmar1: Using Queued invalidation
[ 0.506331] Trying to unpack rootfs image as initramfs...
[ 0.506433] pci 0000:00:00.0: Adding to iommu group 0
[ 0.506461] pci 0000:00:02.0: Adding to iommu group 1
[ 0.506493] pci 0000:00:0e.0: Adding to iommu group 2
[ 0.506521] pci 0000:00:0f.0: Adding to iommu group 3
[ 0.506542] pci 0000:00:12.0: Adding to iommu group 4
[ 0.506601] pci 0000:00:13.0: Adding to iommu group 5
[ 0.506631] pci 0000:00:13.1: Adding to iommu group 5
[ 0.506657] pci 0000:00:13.2: Adding to iommu group 5
[ 0.506684] pci 0000:00:15.0: Adding to iommu group 6
[ 0.506734] pci 0000:00:16.0: Adding to iommu group 7
[ 0.506754] pci 0000:00:16.1: Adding to iommu group 7
[ 0.506776] pci 0000:00:16.2: Adding to iommu group 7
[ 0.506797] pci 0000:00:16.3: Adding to iommu group 7
[ 0.506846] pci 0000:00:17.0: Adding to iommu group 8
[ 0.506866] pci 0000:00:17.1: Adding to iommu group 8
[ 0.506887] pci 0000:00:17.2: Adding to iommu group 8
[ 0.506907] pci 0000:00:17.3: Adding to iommu group 8
[ 0.506958] pci 0000:00:18.0: Adding to iommu group 9
[ 0.506980] pci 0000:00:18.1: Adding to iommu group 9
[ 0.507001] pci 0000:00:18.2: Adding to iommu group 9
[ 0.507023] pci 0000:00:18.3: Adding to iommu group 9
[ 0.507044] pci 0000:00:1b.0: Adding to iommu group 10
[ 0.507065] pci 0000:00:1c.0: Adding to iommu group 11
[ 0.507090] pci 0000:00:1e.0: Adding to iommu group 12
[ 0.507125] pci 0000:00:1f.0: Adding to iommu group 13
[ 0.507148] pci 0000:00:1f.1: Adding to iommu group 13
[ 0.507163] pci 0000:01:00.0: Adding to iommu group 5
[ 0.507177] pci 0000:02:00.0: Adding to iommu group 5
[ 0.507190] pci 0000:03:00.0: Adding to iommu group 5
[ 0.507261] DMAR: Intel(R) Virtualization Technology for Directed I/O
 
This also seems to work on a Pentium J4205. Each device now has its own iommu group but I have not tested yet if everything works and is stable.

Since the instructions above were a little unclear to me, I had to jump through some hoops to get building the kernel to work. Here's how I did it:

I'm doing this on a fresh Proxmox 7.3-1 install with the 5.15.74-1-pve kernel from the November 22, 2022 iso image.
Before starting, make sure you have at least 35gb free disk space.
Since I had no space left on any of my other drives, I had to increase the pve/root partition, which was automatically created during installation and had a size of ca. 30gb. I did it with this guide, which deleteslocal-lvm (dev/pve/data) and extendslocal (dev/pve/root). I wouldn't do this on an existing install, since it deletes your container/vm volumes.

I'm building the kernel based on the instruction of the pve-common readme which the developer wiki page links to.

(everything done as root)
Bash:
# prepare repositories
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
echo "deb http://download.proxmox.com/debian bullseye pvetest" > /etc/apt/sources.list.d/pve-development.list
apt-get update && apt-get upgrade

# install build packages
apt-get install build-essential git git-email debhelper pve-doc-generator devscripts

# download source
mkdir /root/proxmox && cd /root/proxmox
# for 6.x kernel
# git clone git://git.proxmox.com/git/pve-kernel.git
# for 5.15.x kernel
git clone --branch pve-kernel-5.15 git://git.proxmox.com/git/pve-kernel.git

# install dependencies
cd pve-kernel/ && mk-build-deps --install debian/control.in

Now edit /root/proxmox/pve-kernel/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch like described above from:
Git:
...
+       /* Never override ACS for legacy devices or devices with ACS caps */
+       if (!pci_is_pcie(dev) ||
+               pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS))
+                       return -ENOTTY;
+
+       for (i = 0; i < max_acs_id; i++)
...

to:
Git:
...
+       /* Never override ACS for legacy devices or devices with ACS caps */
+       if (!pci_is_pcie(dev)
+               )
+                       return -ENOTTY;
+
+       for (i = 0; i < max_acs_id; i++)
...

Then just install one last dependency and start the build:

Note: I noticed some warnings during my build.
Code:
...
Makefile.config:595: No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev
Makefile.config:643: No libunwind found. Please install libunwind-dev[el] >=1.1 and/or set LIBUNWIND_DIR
Makefile.config:808: Missing perl devel files. Disabling perl scripring support, please install perl-ExtUtils-Embed/libperl-dev
Makefile.config:891: Old version of libbfd/binutils things like PE executable profiling will not be available
Makefile.config:955: No libzstd found, disables trace compression, please install libzstd-dev[el]  and/or set LIBZSTD_DIR
Makefile.config:966: No libcap found, disables capability support, please install libcap-devel/libcap-dev
Makefile.config:1034: No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev
Makefile.config:1060: No alternatives command found, you need to set JDIR= to point to the root of your Java directory
...

You might want to install those, however it also finishes without them. This was my first time building a kernel. I don't know enough about that.

Edit: These seem to be regarding perf. To get rid of them, you need to install some additional packages, see below:

Bash:
# build will stop if this is not installed, it won't find python3-config
apt-get install python3-dev
# optional: install to get rid of Perf warnings
apt-get install systemtap-sdt-dev libunwind-dev libperl-dev libzstd-dev libcap-dev libbabeltrace-dev binutils-dev

# start the building
make

Depending on your system, this might take a few minutes to a few hours (on the J4205 it takes about 3-4 hours).

After that has finished, install the packages that you just built, enable the kernel for boot, edit grub and update grub.

Bash:
cd /root/proxmox/pve-kernel
dpkg -i *.deb
# edit to your built kernel version
update-initramfs -c -k 5.15.83-1-pve

Then, in /etc/default/grub edit the line GRUB_CMDLINE_LINUX_DEFAULT="quiet" to GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream".

Lastly, do update-grub and reboot now.

To then check the iommu groups and which devices are in them, run
for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU Group %s ' "$n"; lspci -nns "${d##*/}"; done, which should output something like this:

Code:
IOMMU Group 0 00:00.0 Host bridge [0600]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge [8086:5af0] (rev 0b)
IOMMU Group 1 00:02.0 VGA compatible controller [0300]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller [8086:5a84] (rev 0b)
IOMMU Group 2 00:0e.0 Audio device [0403]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster [8086:5a98] (rev 0b)
IOMMU Group 3 00:0f.0 Communication controller [0780]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Trusted Execution Engine [8086:5a9a] (rev 0b)
IOMMU Group 4 00:12.0 SATA controller [0106]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SATA AHCI Controller [8086:5ae3] (rev 0b)
IOMMU Group 5 00:13.0 PCI bridge [0604]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #1 [8086:5ad8] (rev fb)
IOMMU Group 6 00:13.3 PCI bridge [0604]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #4 [8086:5adb] (rev fb)
IOMMU Group 7 00:15.0 USB controller [0c03]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series USB xHCI [8086:5aa8] (rev 0b)
IOMMU Group 8 00:1f.0 ISA bridge [0601]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface [8086:5ae8] (rev 0b)
IOMMU Group 8 00:1f.1 SMBus [0c05]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller [8086:5ad4] (rev 0b)
IOMMU Group 9 02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0c)

That's it.
 
Last edited:
  • Like
Reactions: TheRealBeltet
This also seems to work on a Pentium J4205. Each device now has its own iommu group but I have not tested yet if everything works and is stable.

Since the instructions above were a little unclear to me, I had to jump through some hoops to get building the kernel to work. Here's how I did it:

I'm doing this on a fresh Proxmox 7.3-1 install with the 5.15.74-1-pve kernel from the November 22, 2022 iso image.
Before starting, make sure you have at least 35gb free disk space.
Since I had no space left on any of my other drives, I had to increase the pve/root partition, which was automatically created during installation and had a size of ca. 30gb. I did it with this guide, which deleteslocal-lvm (dev/pve/data) and extendslocal (dev/pve/root). I wouldn't do this on an existing install, since it deletes your container/vm volumes.

I'm building the kernel based on the instruction of the pve-common readme which the developer wiki page links to.

(everything done as root)
Bash:
# prepare repositories
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
echo "deb http://download.proxmox.com/debian bullseye pvetest" > /etc/apt/sources.list.d/pve-development.list
apt-get update && apt-get upgrade

# install build packages
apt-get install build-essential git git-email debhelper pve-doc-generator devscripts

# download source
mkdir /root/proxmox && cd /root/proxmox
# for 6.x kernel
# git clone git://git.proxmox.com/git/pve-kernel.git
# for 5.15.x kernel
git clone --branch pve-kernel-5.15 git://git.proxmox.com/git/pve-kernel.git

# install dependencies
cd pve-kernel/ && mk-build-deps --install debian/control.in

Now edit /root/proxmox/pve-kernel/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch like described above from:
Git:
...
+       /* Never override ACS for legacy devices or devices with ACS caps */
+       if (!pci_is_pcie(dev) ||
+               pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS))
+                       return -ENOTTY;
+
+       for (i = 0; i < max_acs_id; i++)
...

to:
Git:
...
+       /* Never override ACS for legacy devices or devices with ACS caps */
+       if (!pci_is_pcie(dev)
+               )
+                       return -ENOTTY;
+
+       for (i = 0; i < max_acs_id; i++)
...

Then just install one last dependency and start the build:

Note: I noticed some warnings during my build.
Code:
...
Makefile.config:595: No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev
Makefile.config:643: No libunwind found. Please install libunwind-dev[el] >=1.1 and/or set LIBUNWIND_DIR
Makefile.config:808: Missing perl devel files. Disabling perl scripring support, please install perl-ExtUtils-Embed/libperl-dev
Makefile.config:891: Old version of libbfd/binutils things like PE executable profiling will not be available
Makefile.config:955: No libzstd found, disables trace compression, please install libzstd-dev[el]  and/or set LIBZSTD_DIR
Makefile.config:966: No libcap found, disables capability support, please install libcap-devel/libcap-dev
Makefile.config:1034: No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev
Makefile.config:1060: No alternatives command found, you need to set JDIR= to point to the root of your Java directory
...

You might want to install those, however it also finishes without them. This was my first time building a kernel. I don't know enough about that.

Edit: These seem to be regarding perf. To get rid of them, you need to install some additional packages, see below:

Bash:
# build will stop if this is not installed, it won't find python3-config
apt-get install python3-dev
# optional: install to get rid of Perf warnings
apt-get install systemtap-sdt-dev libunwind-dev libperl-dev libzstd-dev libcap-dev libbabeltrace-dev binutils-dev

# start the building
make

Depending on your system, this might take a few minutes to a few hours (on the J4205 it takes about 3-4 hours).

After that has finished, install the packages that you just built, enable the kernel for boot, edit grub and update grub.

Bash:
cd /root/proxmox/pve-kernel
dpkg -i *.deb
# edit to your built kernel version
update-initramfs -c -k 5.15.83-1-pve

Then, in /etc/default/grub edit the line GRUB_CMDLINE_LINUX_DEFAULT="quiet" to GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream".

Lastly, do update-grub and reboot now.

To then check the iommu groups and which devices are in them, run
for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU Group %s ' "$n"; lspci -nns "${d##*/}"; done, which should output something like this:

Code:
IOMMU Group 0 00:00.0 Host bridge [0600]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge [8086:5af0] (rev 0b)
IOMMU Group 1 00:02.0 VGA compatible controller [0300]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller [8086:5a84] (rev 0b)
IOMMU Group 2 00:0e.0 Audio device [0403]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster [8086:5a98] (rev 0b)
IOMMU Group 3 00:0f.0 Communication controller [0780]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Trusted Execution Engine [8086:5a9a] (rev 0b)
IOMMU Group 4 00:12.0 SATA controller [0106]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SATA AHCI Controller [8086:5ae3] (rev 0b)
IOMMU Group 5 00:13.0 PCI bridge [0604]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #1 [8086:5ad8] (rev fb)
IOMMU Group 6 00:13.3 PCI bridge [0604]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #4 [8086:5adb] (rev fb)
IOMMU Group 7 00:15.0 USB controller [0c03]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series USB xHCI [8086:5aa8] (rev 0b)
IOMMU Group 8 00:1f.0 ISA bridge [0601]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface [8086:5ae8] (rev 0b)
IOMMU Group 8 00:1f.1 SMBus [0c05]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller [8086:5ad4] (rev 0b)
IOMMU Group 9 02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0c)

That's it.
Wow! Thank you!
I tested this and it worked like a charm!

I have a Gigabyte H410M-H paired with a i5-10500T, and could not get it to work. But this fixed it. I needed it because of my 2.5Gb nic card and motherboard nic was in the same group. Now they have seperate.
Have not tested the function yet, but will soon.

EDIT: It kinda worked... But the performance was terrible. I could get a connection through the motherboard NIC, but it was so bad I barely got a ssh connection to the server. Anyway, thanks for the guide! there were no problem with that.
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!