[TUTORIAL] Compile Proxmox VE with patched intel-iommu driver to remove RMRR check

@Feni
I got for the option b but I get at this message. What did I missed or have to do?
1625669666605.png

Edit: mhm okey. Seams like the new path for proxmox 7.x is:

/usr/src/pve-kernel/build/ubuntu-hirsute/drivers/iommu/intel/iommu.c

Still at the end I get this error:
1625669790626.png
Seams like a new dependency is needed: dwarves
 
Last edited:
Hi. Im not done with ur tutorial and I rly hope it works for me too cause im frustrated about the passthrough.
Anyway. I noticed there is a missspelling.
The control.in is not located in /usr/src/pve-kernel but in /usr/src/pve-kernel/debian
Just wanted to point out cause I was confused too :)
These things change from time to time. I think the current best solution is the Kiler129 Relax RMRR script. YMMV.
 
I never mentioned it here, but I'm running the 5.11 main kernel branch with the patch and other modifications.

still knee deep in other projects involving the kernel (working on GPGPU accels on NVIDIA jetson nanos and on porting the googles changes to QEMU to the main branch of QEMU)
 
I never mentioned it here, but I'm running the 5.11 main kernel branch with the patch and other modifications.

still knee deep in other projects involving the kernel (working on GPGPU accels on NVIDIA jetson nanos and on porting the googles changes to QEMU to the main branch of QEMU)
What modifications need to be made? I saw an ALPHA patch to @kiler129 script but haven’t tried it yet…
 
I was testing it before releasing new packages to the public ;) With any new release you can keep the kernel (especially with such small updates like here, we're still on 5.4).

New packages are released on my GH (https://github.com/kiler129/relax-intel-rmrr/releases) and indeed it runs perfectly on 6.3:
Code:
# pveversion
pve-manager/6.3-2/22f57405 (running kernel: 5.4.78-1-pve-relaxablermrr)

# dmesg | grep 'Intel-IOMMU'
[    0.048833] DMAR: Intel-IOMMU: assuming all RMRRs are relaxable. This can lead to instability or data loss


Also, if you're planning to mess with the built-in RAID/SAS controller you should probably look at another piece of info too: https://gist.github.com/kiler129/4f765e8fdc41e1709f1f34f7f8f41706
Hello @kiler129 any updates for Proxmox 7.x? :)
 
Can you explain the modification?
the modifications had to do with other parts of the kernel, not with the patch itself- specifically they had to do with the binder kernel module.

In other words, this patch is portable to other custom kernels.
 
Microserver gen8 user here too. Is there a working solution for lsi passthrough in proxmox 7? Thanks alot!
 
the modifications had to do with other parts of the kernel, not with the patch itself- specifically they had to do with the binder kernel module.

In other words, this patch is portable to other custom kernels.
Are you talking about the @kiler129 patch? I have tried it and it’s not working…
 
the modifications had to do with other parts of the kernel, not with the patch itself- specifically they had to do with the binder kernel module.

In other words, this patch is portable to other custom kernels.
Hi @FelixCLC How can I get the script to compile a working 5.11.x kernel? I can run the script and it completes, but it builds the last version of 5.4 as that is what is hard-coded in. I tried making a few edits but no joy. I see you are active on GitHub and have also contributed, so please help if you can :)
 
Hi @FelixCLC How can I get the script to compile a working 5.11.x kernel? I can run the script and it completes, but it builds the last version of 5.4 as that is what is hard-coded in. I tried making a few edits but no joy. I see you are active on GitHub and have also contributed, so please help if you can :)

I came across this thread and the original repo trying to get an HP Microserver Gen 8 working; here's the compiled binary for 5.11.x (and repo fork if you want to compile yourself)

I've updated the build scripts to work with proxmox 7, but the kernel snapshot shortcut doesn't work for hirsute yet, so it takes a lot longer to compile (but functionally identical)

The original idea behind the patches still work, just the sources for 5.11.x is slightly different so the diffs need to be recalculated. There's also a patch_notes.sh roughly outlining how to generate the .patch files for the 3 modifications for any kernel

https://github.com/crankswagon/relax-intel-rmrr/releases
 
Last edited:
  • Like
Reactions: Whitterquick
I came across this thread and the original repo trying to get an HP Microserver Gen 8 working; here's the compiled binary for 5.11.x (and repo fork if you want to compile yourself)

I've updated the build scripts to work with proxmox 7, but the kernel snapshot shortcut doesn't work for hirsute yet, so it takes a lot longer to compile (but functionally identical)

The original idea behind the patches still work, just the sources for 5.11.x is slightly different so the diffs need to be recalculated. There's also a patch_notes.sh roughly outlining how to generate the .patch files for the 3 modifications for any kernel

https://github.com/crankswagon/relax-intel-rmrr/releases
@crankyjay you are absolutely awesome! Thank you so much!
 
I came across this thread and the original repo trying to get an HP Microserver Gen 8 working; here's the compiled binary for 5.11.x (and repo fork if you want to compile yourself)

I've updated the build scripts to work with proxmox 7, but the kernel snapshot shortcut doesn't work for hirsute yet, so it takes a lot longer to compile (but functionally identical)

The original idea behind the patches still work, just the sources for 5.11.x is slightly different so the diffs need to be recalculated. There's also a patch_notes.sh roughly outlining how to generate the .patch files for the 3 modifications for any kernel

https://github.com/crankswagon/relax-intel-rmrr/releases
Are the edits only for the Docker compile? I get this error if I try to compile myself:

Code:
Step 3.0: Applying patches
cp: cannot stat '../../patches/add-relaxable-rmrr-5_11.patch': No such file or directory
 
Are the edits only for the Docker compile? I get this error if I try to compile myself:

Code:
Step 3.0: Applying patches
cp: cannot stat '../../patches/add-relaxable-rmrr-5_11.patch': No such file or directory

ah yes, i only changed the docker compile and made the script relative to the docker build path so that i can make edits easier locally

but actually, it should still work, assuming you git cloned the new repo. i changed the directory structure to move /patches into /build/proxmox so that it can be copied into the docker build image without git cloning src within the image
 
Last edited:
ah yes, i only changed the docker compile and made the script relative to the docker build path so that i can make edits easier locally

but actually, it should still work, assuming you git cloned the new repo. i changed the directory structure to move /patches into /build/proxmox so that it can be copied into the docker build image without git cloning src within the image
Interesting, I will give it a go later, thanks. I usually compile in a secondary test setup of Proxmox. My Docker setup needs an overhaul (and moving to a bigger disk) :p
 
Last edited:
Hello Guys, for my case also, I have HP DL380 Gen8 so the question is, is it possible to fix this issue or not for my case?
Of course I receive all error mention on this topic:

root@pve:/etc/apt# dmesg | grep -e IOMMU
[ 1.599043] DMAR: IOMMU enabled
[ 3.307115] DMAR-IR: IOAPIC id 10 under DRHD base 0xfbefe000 IOMMU 0
[ 3.307115] DMAR-IR: IOAPIC id 8 under DRHD base 0xdcffe000 IOMMU 1
[ 3.307116] DMAR-IR: IOAPIC id 0 under DRHD base 0xdcffe000 IOMMU 1
[ 117.168990] vfio-pci 0000:04:00.1: DMAR: Device is ineligible for IOMMU domain attach due to platform RMRR requirement. Contact your platform vendor.

If anyone can help or give the link to follow the resolve if it is possible, and great thank for response
 
Hello Guys, for my case also, I have HP DL380 Gen8 so the question is, is it possible to fix this issue or not for my case?
Of course I receive all error mention on this topic:

root@pve:/etc/apt# dmesg | grep -e IOMMU
[ 1.599043] DMAR: IOMMU enabled
[ 3.307115] DMAR-IR: IOAPIC id 10 under DRHD base 0xfbefe000 IOMMU 0
[ 3.307115] DMAR-IR: IOAPIC id 8 under DRHD base 0xdcffe000 IOMMU 1
[ 3.307116] DMAR-IR: IOAPIC id 0 under DRHD base 0xdcffe000 IOMMU 1
[ 117.168990] vfio-pci 0000:04:00.1: DMAR: Device is ineligible for IOMMU domain attach due to platform RMRR requirement. Contact your platform vendor.

If anyone can help or give the link to follow the resolve if it is possible, and great thank for response

this should work on all HP Gen8 server, there are essentially 2 options to patch:

1. manually, by following the original tutorial by OP and adapt to the kernel you are running
2. use the pre-compiled bins
if you run kernel 5.9 or below, you can follow https://github.com/kiler129/relax-intel-rmrr
if you run kernel 5.11 or above, you can follow my fork of kiler129's repo, linked above​
 

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!