Current/New - unRaid HP Proliant Edition - RMRR Error Patching


1812

Recommended Posts

Welcome to the "new" new method of working around HP's RMRR problem on unRaid. 

 

For the previous/deprecated method which was no longer working, see: https://forums.unraid.net/topic/72681-unraid-hp-proliant-edition-rmrr-error-patching/ Additionally, for 6.9 there was a way to compile the patch yourself using the now deprecated kernel helper. This method starting with 6.10 is more streamlined as the patch is pre-built into unRaid now.

 

First the disclaimer: This patch been tested with no negative attributes observed by myself and many others. . Many have been running an RMRR patched version since mid 2018 when we first started producing them, and so far have had no reported issues. In 2021 I sold my last proliant, so as new releases of unRaid are made public, it will be on the users to report any issues as they may (or may not) arise..

As the patch only omits RMRR checks, it should not affect any other core function of the OS. But as a general notice,  neither Limetech or myself, or any contributors are responsible/liable for any loss of data or damage to hardware in enabling this patch in unRaid, or on any other system you install it.

 

The "New" New unRaid HP Proliant Edition - RMRR Error Patching

 

Description/Problem

It is well documented that many HP Proliant servers have RMRR issues using certain BIOS versions after about 2011 when trying to passthrough devices in a linux environment. Device passthrough fails and the onscreen error will show:

 

vfio: failed to set iommu for container: Operation not permitted

 

And a look further into the logs show:

 

Device is ineligible for IOMMU domain attach due to platform RMRR requirement.  Contact your platform vendor.

 

HP is aware of this problem and is not updating older machines. There are some bios options to try to fix this on newer models with some success.

 

On unRaid, the problem is addressed by patching out the RMRR check. As of 6.10 the patch is now built into unraid, but off by default. Information regarding the patch can be found here:  https://github.com/kiler129/relax-intel-rmrr

 

Note: the patch author states:

 

Quote

This path should be safe, as long as you don't try to remap devices which are used by the IPMI/BIOS, e.g.:

-Network port shared between your IPMI and OS

-RAID card in non-HBA mode with its driver loaded on the host

-Network card with monitoring system installed on the host (e.g. Intel Active Health System Agent)


This is not a supported solution by any of the vendors. In fact this is a direct violation of Intel's VT-d specs (which Linux already violates anyway, but this is increasing the scope). It may cause crashes or major instabilities. You've been warned.

 

 

 

------------------

--->>>A big thanks to @ich777 for creating the ability for users to previously easily compile the patch themselves, and to @limetech for now incorporating it into unRaid itself. <<<---

------------------

 

Previously, @AnnabellaRenee87 and I maintained and provided the patched file for users. But now you will be able to easily enable the patch as it is included in unRaid starting with 6.10.

 

 

 

Installation/Enable

Procedure valid starting with 6.10

 

 

For users already using a previously patched version of unRaid, follow these steps:

 

1. Make a backup of your flash device by clicking on the main tab, then scroll down to your boot device section, click flash, then click flash backup and wait for the download. 

 

 

2. Modify your syslinux.cfg by going to the main tab>boot device>flash in the "Unraid OS" section.

 

Modify to the following:

append intel_iommu=relax_rmrr initrd=/bzroot

 

The patch is off by default and requires this to enable it.

 

 

3. Update to at least 6.10 of unRaid, reboot.

 

 

4. After the server has booted up, open a terminal and enter

dmesg | grep 'Intel-IOMMU'

If the patch is active you will get the following response

 DMAR: Intel-IOMMU: assuming all RMRRs are relaxable. This can lead to instability or data loss

 

 

 

For users already running 6.10 and above follow these steps:

 

1. Make a backup of your flash device by clicking on the main tab, then scroll down to your boot device section, click flash, then click flash backup and wait for the download. 

 

 

2. Modify your syslinux.cfg by going to the main tab>boot device>flash in the "Unraid OS" section.

 

Modify to the following:

append intel_iommu=relax_rmrr initrd=/bzroot

 

The patch is off by default and requires this to enable it.

 

 

3. Reboot.

 

 

4. After the server has booted up, open a terminal and enter

dmesg | grep 'Intel-IOMMU'

If the patch is active you will get the following response

 DMAR: Intel-IOMMU: assuming all RMRRs are relaxable. This can lead to instability or data loss

 

 

 

Disable

 

To disable the patch, remove the modification to syslinux.cfg and reboot.

 

Other Proliant Problems

 

Check this thread for fixes to other common Proliant problems:

https://forums.unraid.net/topic/59375-hp-proliant-workstation-unraid-information-thread/

 

 

Happy unRaiding!

 

 

Edited by 1812
updated for 6.10
  • Like 2
  • Thanks 5
Link to comment
  • 3 weeks later...

Hi,

 

Thanks for posting this. I'm trying to pass through my NVIDIA GeForce 1060 to my Windows10 VM and get the following error when starting my VM: "Failed to set iommu for container: Operation not permitted".

 

I downloaded the Unraid-Kernel-Helper and set the RMRR Relax Patch to "True". When viewing the log files, it says "Download of Stock Unraid v6.9.0-rc2 failed, putting container into sleep mode!---".

 

Any suggestions are most appreciated.

 

2147103770_Screenshot2021-01-22230237.png.99b8c8c6562bbc6946052f558647cff4.png

Edited by Therapists_For_200
Link to comment
9 minutes ago, Therapists_For_200 said:

Hi,

 

Thanks for posting this. I'm trying to pass through my NVIDIA GeForce 1060 to my Windows10 VM and get the following error when starting my VM: "Failed to set iommu for container: Operation not permitted".

 

I downloaded the Unraid-Kernel-Helper and set the RMRR Relax Patch to "True". When viewing the log files, it says "Download of Stock Unraid v6.9.0-rc2 failed, putting container into sleep mode!---".

 

Any suggestions are most appreciated.

Have you stopped the Unraid-Kernel-Helper once?

 

Please try to delete every file from the 'kernel' directory that is located in your 'appdata' folder.

 

I think the main problem is a failed download and now it can't download the file again.

Link to comment
15 hours ago, Therapists_For_200 said:

Thanks for the quick reply. I might have messed it up upon first download. Below is a screenshot of that folder now. Just to confirm, delete these two folders and all their contents?

 

1614354929_Screenshot2021-01-23064313.png.e80d7c4dbd76998c6493afdc7d1eaeaf.png

 

Exactly, does the container have exclusive access to the internet (eventually PiHole or something else is blocking the container from accessing certain sites)?

 

From the log that you posted it seems like it can't access the CDN where the Unraid files are hosted (keep in mind that the container needs access to the internet because it downloads, the drivers, Kernel source and other important stuff dependent on what you select in the template).

Link to comment

I am really excited about this!  After hours of trying to get my DL380 G8 to work with my GPU I was about to give up and return it.  I am trying to figure out how this works, but I cant seem to find the docker in the CA app.  There is an Unraid Kernel Helper Plugin, but the output from that is blank and it tells you to download the Unraid Kernel Docker.  There is a docker that shows up when you check on Docker Hub and it's made by the OP, but I cant seem to find any instructions from there.  I can usually figure these things out, but I'm  at a complete loss on this.  Can anyone point me in the right direction?

 

My Issue - I have a gpu I am trying to passthrough to a Windows VM on my DL380 G8.  The Bios is the 2018 version with the 2013 version in backup.  The GPU is a PowerColor Red Dragon Radeon RX 570 AXRX 570 4GBD5-3DHD/OC.  I'm pretty sure the issue is the RMRR patch based on logs etc.

 

Thanks in advance for any help.

 

 

Link to comment
3 hours ago, dave980 said:

There is an Unraid Kernel Helper Plugin, but the output from that is blank and it tells you to download the Unraid Kernel Docker.

It is also mentioned in the first post but you have to be on Unraid version 6.9.0RC2 to see the Unraid-Kernel-Helper in the CA App.

 

The process and the template are really self explaining. Just turn on the things you want and click on apply, don't interrupt the process!

The container will stop when it's finished.

Link to comment

@ich777, Apologies for the delayed response. The recommendations you made fixed my problem, and I was able to download the files using Unraid-Kernal-Helper. (I temporarily disabled pfblocker inside my pfsense firewall to get it to work). I copied all the files beginning with bz* onto the /boot, and rebooted (see image below)

 

When I type "dmesg | grep 'Intel-IOMMU'" into terminal, I don't get the active patch response (i.e. DMAR: Intel-IOMMU: assuming all RMRRs are relaxable. This can lead to instability or data loss).

 

I'm assuming this indicates I did something wrong?

 

2024909553_Screenshot2021-01-26223752.thumb.png.865e45e02d0d9e9bd1f6c656000ab625.png

Edited by Therapists_For_200
Link to comment
6 hours ago, Therapists_For_200 said:

@ich777, Apologies for the delayed response. The recommendations you made fixed my problem, and I was able to download the files using Unraid-Kernal-Helper. (I temporarily disabled pfblocker inside my pfsense firewall to get it to work). I copied all the files beginning with bz* onto the /boot, and rebooted (see image below)

 

When I type "dmesg | grep 'Intel-IOMMU'" into terminal, I don't get the active patch response (i.e. DMAR: Intel-IOMMU: assuming all RMRRs are relaxable. This can lead to instability or data loss).

 

I'm assuming this indicates I did something wrong?

 

2024909553_Screenshot2021-01-26223752.thumb.png.865e45e02d0d9e9bd1f6c656000ab625.png

 

Yes. In some step, something is incorrect. Without knowing everything you did and verifying each step, there is no way to know so you will have to try the process again. But I can already see that you didn't follow the steps as written because it says to only copy over the bzimage and bzmodules. That may not matter, but it shows inattention to detail.

 

So now you should roll back to stock unraid, reboot, and start over and follow the steps as written, and then report back.

 

 

Edited by 1812
Link to comment

@1812, Thanks for the reply. Don't mean to be an annoyance and really do appreciate the work both of you have done.

 

 I forgot to mention that I did try bzimage, bzimage.sha256, bzmodules and bzmodules.sha256 on my first attempt with the same result. I'm assuming the *.sha256 files should have been excluded, too?

 

Also, I wasn't sure where to paste the "intel_iommurelax_rarr" in syslinux.cfg (or if it matters), so I guessed and added it to the bottom of group "label Unraid OS". Is this the correct placement?

 

image.thumb.png.43661c1c0b5cc780906243e94cd840ff.png

 

I will attempt to roll back to stock unraid using the usb backup I made and try again.

Link to comment
1 hour ago, Therapists_For_200 said:

 

Also, I wasn't sure where to paste the "intel_iommurelax_rarr" in syslinux.cfg (or if it matters), so I guessed and added it to the bottom of group "label Unraid OS". Is this the correct placement?


i would expect it to be added to the ‘append’ line for whichever boot option(s) you are using.

Link to comment
3 hours ago, Therapists_For_200 said:

Also, I wasn't sure where to paste the "intel_iommurelax_rarr" in syslinux.cfg (or if it matters), so I guessed and added it to the bottom of group "label Unraid OS". Is this the correct placement?

modified the original post to make it clearer. It should go under menu default

Link to comment
21 hours ago, ich777 said:

It is also mentioned in the first post but you have to be on Unraid version 6.9.0RC2 to see the Unraid-Kernel-Helper in the CA App.

 

The process and the template are really self explaining. Just turn on the things you want and click on apply, don't interrupt the process!

The container will stop when it's finished.

I must have read the original post 10 times and still somehow missed that.  I will upgrade to 6.9.0RC2 and go from there.  Thanks for pointing me in the right direction!

Link to comment
  • 2 months later...

I believe i did everything right and when i try to passthrough a 1050ti to a w10 vm it still gives the same error, after using this "dmesg | grep 'Intel-IOMMU'" it gives me the right response saying the patch is enabled, but something isnt working, complete noob in unraid, trying to see if this works, if i get it working then i will buy a license.

 

Specs:
Hp dl360 g7 
2x x5650
64gb ecc ram
gtx 1050ti
1 WD black 750gb (Unraid)
1 Samsung 860 evo 500gb (W10 VM)

Thanks in advance

Opera Instantâneo_2021-04-21_175312_192.168.1.79.png

unraid-diagnostics-20210421-1819.zip

Link to comment
  • 2 months later...

Is there any way I can achieve this without currently being on the latest version?
Case in point: I run my firewall VM'd on Unraid. The firewall has 4 ports of a physical network adapter passed through to the VM. Without the patch applied, I can't boot the VM. Without the VM, Unraid has no external network connectivity. No internet means I can't run the tool.

Is there a way to run the tool against the version of Unraid I want to upgrade to (In this case from 6.9.0 to 6.9.2) and then I can upgrade, copy over the relevant patched files, and everything is great?

Link to comment
19 hours ago, BlackDwarf said:

Is there any way I can achieve this without currently being on the latest version?
Case in point: I run my firewall VM'd on Unraid. The firewall has 4 ports of a physical network adapter passed through to the VM. Without the patch applied, I can't boot the VM. Without the VM, Unraid has no external network connectivity. No internet means I can't run the tool.

Is there a way to run the tool against the version of Unraid I want to upgrade to (In this case from 6.9.0 to 6.9.2) and then I can upgrade, copy over the relevant patched files, and everything is great?

 

Off the top of my head, no. You would have to ask @ich777 if there is a way to support this (unless I overlooked something in the configuration page of the plugin.) There is a section for beta builds, so it may be possible.

Link to comment
19 hours ago, BlackDwarf said:

Without the patch applied, I can't boot the VM.

You can try it but I don't think it will work.

Create a Variable in the template with thr Key: UNRAID_V and as Value only the unRAID version without any beta tag.

If you want to build it for a beta the you also have to create a Variable with the Key: BETA_BUILD and as value only which beta version you want, otherwise leave this value empty.

 

But this will or better speaking can fail and I don't recommend doing it that way.

Link to comment
  • 5 weeks later...

Okay so i followed this guide step by step. 
I can use the iGPU/GPU now but as soon as i do this the display didn´t get initialized and i don´t even get any kind of log? 
Sorry if i am just a bit dumb or so but what am i missing? 

The VM is starting up normaly so i guess the patch got through but the display stays black and if i switch back to VNC i just get "Guest has not initialized the display (yet)" message that stays forever.. 

Link to comment
18 hours ago, Panics said:

Okay so i followed this guide step by step. 
I can use the iGPU/GPU now but as soon as i do this the display didn´t get initialized and i don´t even get any kind of log? 
Sorry if i am just a bit dumb or so but what am i missing? 

The VM is starting up normaly so i guess the patch got through but the display stays black and if i switch back to VNC i just get "Guest has not initialized the display (yet)" message that stays forever.. 

 

If you're using the internal display output, I can't really advise that. But you should try to bind whatever graphics device you want to use under tools>system devices to start.

 

If you bork the vm and get the "guest not initializing display", make a new vm with the same settings/disk (don't delete your old disk when removing the old vm afterwards.)

 

Link to comment

Mmh the iGPU was a try after i didn´t get my external Graphicscard not to work as intended.. 
I made several new VM´s just to try but it hangs exactly at the same point :/ 

I bounded the device to start but nothing changes.. 

Will retrying everything after i got a new Graphicscard. 
Maybe the Quadro i wanna use is a bit overkill so i will get a smaller Tesla card. 
For the needed purpose it should work as intended.

Edited by Panics
Link to comment
  • 3 months later...
1 hour ago, zavanilli said:

I followed the guide however the script fails to download one of the resources for NVIDIA and it goes o sleep. I checked my firewall even used another router but it doesn't get past that point.

please help. Thanks

you will have to ask in this thread, as I don't maintain the script.

 

  • Like 1
Link to comment
1 hour ago, zavanilli said:

I followed the guide however the script fails to download one of the resources for NVIDIA and it goes o sleep. I checked my firewall even used another router but it doesn't get past that point.

Please build it without Nvidia support and install the Nvidia Driver from the CA App.

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.