Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] OpenRGB-GUI-Unraid Support Thread

Featured Replies

Starting a new support thread for the OpenRGB-GUI-Unraid container that now enables OpenRGB release 0.9 along with automatic support & installation of the OpenRGB Effects Plugin; or any other valid plugin you manually configure.

Edited by CajunCoding

  • Author

FYI, I've got a fully functioning version of OpenRGB v0.9 running on my Unraid and fully templated . . . I am in process of trying to get it published to the Unraid Community Apps but so far not been successful -- I dunno why this process has to be so hard. I found the submission form buried in the forum . . . but nothing has been published yet.

For now -- and until then -- anyone that stumbles across this can pull the template from my GitHub Repo, and drop it into your /boot/config/plugins/community.applications/private/DockerHub folder on your usb drive and voila it'll be available to install:
https://github.com/cajuncoding/Unraid-Templates/blob/main/openrgb-gui-unraid.xml


A quick script to do this in the Unraid console is:

cd /boot/config/plugins/community.applications/private/DockerHub
wget https://raw.githubusercontent.com/cajuncoding/Unraid-Templates/refs/heads/main/openrgb-gui-unraid.xml

Once downloaded just open Community Apps and it will automatically refresh and it should be available....
image.png

  • CajunCoding changed the title to [Support] OpenRGB-GUI-Unraid Support Thread

Thanks man! This is so much smoother than what I was trying to bodge together. Question: do I still need to manually pass through i2c and hidraw devices?

Also I seem to be having trouble with the udev rules. Even though they are in the correct directory. I've started a separate topic about it here too: https://forums.unraid.net/topic/194671-udev-rules-dont-work-for-me/

Edit: another question, my OpenRGB container seems to crash after I tried adding plugins to it. I just get this ad inifitum:

[supervisor ] service 'app' exited (got signal SIGABRT).
[supervisor ] restarting service 'app'.
[supervisor ] starting service 'app'...
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] Starting plugin initialization...
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] Detected 1 plugin(s) to check.
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] Skipped (already present): OpenRGBEffectsPlugin_0.9_Bookworm_64_f1411e1.so
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] All plugin checks complete.
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] Summary: 0 installed, 1 skipped, 0 failed.
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] Plugin initialization complete.
[app ] Running standalone.
[app ] Network connection thread started on port 6742
[app ] QApplication: invalid style override 'Adwaita-Dark' passed, ignoring it.
[app ] Available styles: Windows, Fusion
[app ] [OpenRGBEffectsPlugin] version 0.9 (f1411e178a0024e3da8d178bbd0f0b60425e35fd), build date 2023-07-11 14:10:26 +0200
[app ] [OpenRGBEffectsPlugin] 53 effects registered
[app ] <h2>WARNING:</h2><p>The OpenRGB udev rules are not installed.</p><p>Most devices will not be available unless running OpenRGB as root.</p><p>If using AppImage, Flatpak, or self-compiled versions of OpenRGB you must install the udev rules manually</p><p>See <a href='https://openrgb.org/udev'>https://openrgb.org/udev</a> to install the udev rules manually</p>
[app ] [OpenRGBSchedulerPlugin] Loading plugin API version.
[app ] [OpenRGBSchedulerPlugin] Loading plugin info.
[app ] [OpenRGBSchedulerPlugin] Time to free some memory.
[app ] [OpenRGBSchedulerPlugin] Loading plugin API version.
[app ] [OpenRGBSchedulerPlugin] Loading plugin.
[app ] [OpenRGBSchedulerPlugin] Creating widget.
[app ] [OpenRGBSchedulerPlugin] Creating tray menu.
[app ] terminate called after throwing an instance of 'std::bad_alloc'
[app ] what(): std::bad_alloc
[supervisor ] service 'app' exited (got signal SIGABRT).
[supervisor ] restarting service 'app'.
[supervisor ] starting service 'app'...
[app ] 2025-10-31 20:23:47 [init-openrgb-plugins] Starting plugin initialization...
[app ] 2025-10-31 20:23:47 [init-openrgb-plugins] Detected 1 plugin(s) to check.
[app ] 2025-10-31 20:23:47 [init-openrgb-plugins] Skipped (already present): OpenRGBEffectsPlugin_0.9_Bookworm_64_f1411e1.so
[app ] 2025-10-31 20:23:47 [init-openrgb-plugins] All plugin checks complete.
[app ] 2025-10-31 20:23:47 [init-openrgb-plugins] Summary: 0 installed, 1 skipped, 0 failed.
[app ] 2025-10-31 20:23:47 [init-openrgb-plugins] Plugin initialization complete.
[app ] Running standalone.
[app ] Network connection thread started on port 6742
[app ] QApplication: invalid style override 'Adwaita-Dark' passed, ignoring it.
[app ] Available styles: Windows, Fusion
[app ] [OpenRGBEffectsPlugin] version 0.9 (f1411e178a0024e3da8d178bbd0f0b60425e35fd), build date 2023-07-11 14:10:26 +0200
[app ] [OpenRGBEffectsPlugin] 53 effects registered
[app ] <h2>WARNING:</h2><p>The OpenRGB udev rules are not installed.</p><p>Most devices will not be available unless running OpenRGB as root.</p><p>If using AppImage, Flatpak, or self-compiled versions of OpenRGB you must install the udev rules manually</p><p>See <a href='https://openrgb.org/udev'>https://openrgb.org/udev</a> to install the udev rules manually</p>
[app ] [OpenRGBSchedulerPlugin] Loading plugin API version.
[app ] [OpenRGBSchedulerPlugin] Loading plugin info.
[app ] [OpenRGBSchedulerPlugin] Time to free some memory.
[app ] [OpenRGBSchedulerPlugin] Loading plugin API version.
[app ] [OpenRGBSchedulerPlugin] Loading plugin.
[app ] [OpenRGBSchedulerPlugin] Creating widget.
[app ] [OpenRGBSchedulerPlugin] Creating tray menu.
[app ] terminate called after throwing an instance of 'std::bad_alloc'
[app ] what(): std::bad_alloc
[supervisor ] service 'app' exited (got signal SIGABRT).
[supervisor ] restarting service 'app'.
[supervisor ] starting service 'app'...
[app ] 2025-10-31 20:23:50 [init-openrgb-plugins] Starting plugin initialization...
[app ] 2025-10-31 20:23:50 [init-openrgb-plugins] Detected 1 plugin(s) to check.
[app ] 2025-10-31 20:23:50 [init-openrgb-plugins] Skipped (already present): OpenRGBEffectsPlugin_0.9_Bookworm_64_f1411e1.so
[app ] 2025-10-31 20:23:50 [init-openrgb-plugins] All plugin checks complete.
[app ] 2025-10-31 20:23:50 [init-openrgb-plugins] Summary: 0 installed, 1 skipped, 0 failed.
[app ] 2025-10-31 20:23:50 [init-openrgb-plugins] Plugin initialization complete.
[app ] Running standalone.
[app ] Network connection thread started on port 6742
[app ] QApplication: invalid style override 'Adwaita-Dark' passed, ignoring it.
[app ] Available styles: Windows, Fusion
[app ] [OpenRGBEffectsPlugin] version 0.9 (f1411e178a0024e3da8d178bbd0f0b60425e35fd), build date 2023-07-11 14:10:26 +0200
[app ] [OpenRGBEffectsPlugin] 53 effects registered
[app ] <h2>WARNING:</h2><p>The OpenRGB udev rules are not installed.</p><p>Most devices will not be available unless running OpenRGB as root.</p><p>If using AppImage, Flatpak, or self-compiled versions of OpenRGB you must install the udev rules manually</p><p>See <a href='https://openrgb.org/udev'>https://openrgb.org/udev</a> to install the udev rules manually</p>
[app ] [OpenRGBSchedulerPlugin] Loading plugin API version.
[app ] [OpenRGBSchedulerPlugin] Loading plugin info.
[app ] [OpenRGBSchedulerPlugin] Time to free some memory.
[app ] [OpenRGBSchedulerPlugin] Loading plugin API version.
[app ] [OpenRGBSchedulerPlugin] Loading plugin.
[app ] [OpenRGBSchedulerPlugin] Creating widget.
[app ] [OpenRGBSchedulerPlugin] Creating tray menu.
[app ] terminate called after throwing an instance of 'std::bad_alloc'
[app ] what(): std::bad_alloc
[supervisor ] service 'app' exited (got signal SIGABRT).
[supervisor ] restarting service 'app'.
[supervisor ] starting service 'app'...

I tried removing the plugin, but that didn't seem to help.

Edited by BreakfastPurrito

  • Author

So from what I've found, no you do not need to manually pass through any devices as long as you are running it with "Priveleged" flag enabled which I turned on by default in the template. For me the latest release did a great job of scanning and finding my motherboard device fine and the logs show that it scans for everything . . .

I've not spent much time working with the udev rules, at this point I've ignored that warning on startup -- too many other priorities.

Regarding the plugins -- I added a script that automagically loads the default Effects Plugin from OpenRGB, and the fact that you see these lines confirm that it ran as expected:

[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] Starting plugin initialization...
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] Detected 1 plugin(s) to check.
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins]  Skipped (already present): OpenRGBEffectsPlugin_0.9_Bookworm_64_f1411e1.so
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] All plugin checks complete.
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins] Summary: 0 installed, 1 skipped, 0 failed.
[app ] 2025-10-31 20:23:44 [init-openrgb-plugins]  Plugin initialization complete.

And then you have these lines (obviously the main failure):
[app ] terminate called after throwing an instance of 'std::bad_alloc'
[app ] what(): std::bad_alloc

But I'm also not sure about this one either:

[app ] [OpenRGBSchedulerPlugin] Time to free some memory.

My Plugin initialization looks like this:

[app ] 2025-10-28 14:36:26 [init-openrgb-plugins] Starting plugin initialization...
[app ] 2025-10-28 14:36:26 [init-openrgb-plugins] Detected 1 plugin(s) to check.
[app ] 2025-10-28 14:36:26 [init-openrgb-plugins] Skipped (already present): OpenRGBEffectsPlugin_0.9_Bookworm_64_f1411e1.so
[app ] 2025-10-28 14:36:26 [init-openrgb-plugins] All plugin checks complete.
[app ] 2025-10-28 14:36:26 [init-openrgb-plugins] Summary: 0 installed, 1 skipped, 0 failed.
[app ] 2025-10-28 14:36:26 [init-openrgb-plugins] Plugin initialization complete.
[app ] Running standalone.
[app ] Network connection thread started on port 6742
[app ] [i2c_smbus_linux] Failed to read i2c device PCI device ID
[app ] <h2>WARNING:</h2><p>The OpenRGB udev rules are not installed.</p><p>Most devices will not be available unless running OpenRGB as root.</p><p>If using AppImage, Flatpak, or self-compiled versions of OpenRGB you must install the udev rules manually</p><p>See <a href='https://openrgb.org/udev'>https://openrgb.org/udev</a> to install the udev rules manually</p>
[app ] [OpenRGBEffectsPlugin] version 0.9 (f1411e178a0024e3da8d178bbd0f0b60425e35fd), build date 2023-07-11 14:10:26 +0200
[app ] [OpenRGBEffectsPlugin] 53 effects registered
[app ] [OpenRGBEffectsPlugin] LoadProfile 'BluePurpleWave'.
[app ] [OpenRGBEffectsPlugin] Looking for corresponding controllers for auto assignement...
[app ] [OpenRGBEffectsPlugin] Creating effect: CustomGradientWave
[app ] [OpenRGBEffectsPlugin] Effect CustomGradientWave: Applying basic settings
[app ] [OpenRGBEffectsPlugin] Effect CustomGradientWave: Loading custom settings
[app ] [OpenRGBEffectsPlugin] Creating effect CustomGradientWave tab
[app ] [OpenRGBEffectsPlugin] Effect CustomGradientWave thread started
[app ] [OpenRGBEffectsPlugin] Assigning 1 zones to CustomGradientWave

So that stackalloc error is def. not an issue for me....

You can try running without plugins by first deleting the already downloaded file using the docker command line:
rm /config/xdg/config/OpenRGB/plugins/*.so because it's already been downloaded.

Then stopping the docker container, and updating the PLUGIN_URLS param to simply be a single piple | this will override and cause it to skip downloading anything -- I may need to build in an enable/disable flag.

Hopefully that will help you track down if it's maybe the plugin initialization that breaks the load . . . and get past that.

Edited by CajunCoding
Fix formatting and edit for clarity

8 hours ago, CajunCoding said:

So from what I've found, no you do not need to manually pass through any devices as long as you are running it with "Priveleged" flag enabled which I turned on by default in the template.

I find that even with privileged flag and root user I need to pass through devices manually.

8 hours ago, CajunCoding said:

You can try running without plugins by first deleting the already downloaded file using the docker command line:
rm /config/xdg/config/OpenRGB/plugins/*.so because it's already been downloaded.

OpenRGB got out of its bootloop/panic when I removed the Scheduler plugin. I'll leave that one for now. But Hardwaresync doesn't show up as an installed plugin at all? It's def in the plugin folder.

  • Author

@BreakfastPurrito Ok, so you are using multiple plugins and one was causing the stacalloc error.... gotcha, and I assume then you may have dropped them in the plugins folder manually (which should be fine). When trying to get things working I found that the plugin has to truly be compatible with the version of OpenRGB or else it will not be loaded. You may also have to extract the *.so file out if it's in a deb package or similar.

But do keep us tuned with a list of plugins (and links) that you confirm are working 👍.

Regarding the need to explicitly pass in the devices . . . yes you are right root user is required too; I forgot to mention that. On my machine I can see it scanning automagically in the logs. So that is interesting. Can you confirm if you did all the other hardware initialization steps and added the modprobe ... lines into your /boot/config/go file as outlined by the readme's here:

  • Author

The Template is now live and usable within Unraid Community Apps -- first successful contribution finally published 🚀

Hope it helps some other folks out as the latest version was not nearly as easily deployed before this . . .


image.png

Edited by CajunCoding

OpenRGB only worked for me until unraid 6.9 due to kernel patch... So, I believe it's not possible to make it work even with this new container if the kernel patch isn't available for this version?

On 11/2/2025 at 5:21 AM, CajunCoding said:

But do keep us tuned with a list of plugins (and links) that you confirm are working 👍.

I've tried every possible version of every plugin. None of them work.

  • Author
12 hours ago, BreakfastPurrito said:

I've tried every possible version of every plugin. None of them work.

Even the Effects Plugin that is auto downloaded with my Docker and my template? It works perfectly fine on my instance….

  • Author
On 11/7/2025 at 12:45 PM, bcfrutuozo said:

OpenRGB only worked for me until unraid 6.9 due to kernel patch... So, I believe it's not possible to make it work even with this new container if the kernel patch isn't available for this version?

Have you actually tried this new template & container? Your comment was not clear, it works perfectly fine for me on Unraid v7.1.4…

Did you add the correct modprobe lines to your /boot/config/go file for your motherboard?

Did you try any of the troubleshooting guides provided on the OpenRgb Gitlab page?

1 hour ago, CajunCoding said:

Even the Effects Plugin that is auto downloaded with my Docker and my template? It works perfectly fine on my instance….

That one works fine. I meant all the other plugins from the OpenRGB website.

52 minutes ago, CajunCoding said:

Have you actually tried this new template & container? Your comment was not clear, it works perfectly fine for me on Unraid v7.1.4…

I'll give it a try. Is it very different from the xml file I was using before? I'm on Unraid 7.2.0 btw.

55 minutes ago, CajunCoding said:

Did you add the correct modprobe lines to your /boot/config/go file for your motherboard?

Yes. As long as I pass them through manually, I don't have problems making the devices show up. The plugins just don't work or even crash OpenRGB.

59 minutes ago, CajunCoding said:

Did you try any of the troubleshooting guides provided on the OpenRgb Gitlab page?

I have not. Do you have a link?

In the windows official app there is a setting to "serve all devices (including from clients)"
This option is not available in the docker...


Can this be added? It would be much easer to run a single OpenRGB server for all my PCs rather than run a server on each one, for connection to Home Assistant.

image.png

  • 4 weeks later...

Hello OpenRGB Developers/Community,

I am requesting future feature support for the RGB controller on the MSI PRO B860-P WIFI motherboard. After exhausting all known Linux/Docker/BIOS community troubleshooting steps, the device remains undetected.

I am documenting all my troubleshooting attempts to help narrow down the source of the incompatibility, which appears to be a deep kernel/hardware communication failure.

Environment & Hardware Specifications

Component

Detail

Version/Chip

Motherboard

MSI PRO B860-P WIFI

PCB ID: MS-7E41

I/O Controller

RGB Control Chip

NUVOTON NCT6687D-M Controller Chip

Operating System

Unraid OS

Current Stable (e.g., 7.2.2 or higher)

Linux Kernel

Unraid Kernel

Linux 6.12.54-Unraid (approx.)

BIOS Version

Current running version

v1.A10

OpenRGB Docker

Image/Release

OpenRGB-GUI-Unraid (Latest, OpenRGB release 0.9)

Troubleshooting Steps Taken (The Problem Persists)

The fundamental error is consistently: [app ] [i2c_smbus_linux] Failed to read i2c device PCI device ID in the Docker log.

  1. BIOS Firmware Modifications:

    • The system was rebooted after explicitly disabling the motherboard's native RGB control to prevent firmware lock: EZ Mode → EZ On/Off → EZ LED Control was set to OFF.

  2. Container Configuration:

    • The OpenRGB-GUI-Unraid Docker container is running in Privileged Mode.

    • Remove USER ID and GROUP ID variables were from the container template (to test if this was causing an issue - it was not).

  3. Kernel Driver Loading (Persistence via /boot/config/go):

    • The primary access modules (i2c-dev and i2c-i801 / nct6687) are loaded persistently via the /boot/config/go file:

      Bash

      modprobe i2c-dev
      modprobe nct6687
      
  4. Kernel Driver Hard Probing Attempts:

    • An initial attempt was made to force load the Intel driver with a common SMBus address via the go file, but this was reverted: modprobe i2c-i801 force_probe=0x2e00.

    • A final, persistent configuration file was created to force the kernel to activate the System Management Interface (SCMI) and probe the Nuvoton chip, which also failed to resolve the PCI Device ID reading issue:

      • File: /etc/modprobe.d/nct6687.conf

      • Content:

        Plaintext

        options i2c_i801 force_scmi=1
        options nct6687 force_id=0x1927
        

Current Status and Request

Every known software, permission, and kernel workaround has been exhausted. Given the persistence of the "Failed to read i2c device PCI device ID" error, it is concluded that either:

  1. The firmware on this new B860 board maintains an unresolvable hardware lock despite the BIOS setting.

  2. The current Nuvoton driver support in OpenRGB (v0.9) is missing the necessary device ID or communication logic for the NCT6687D-M chip on this specific MSI PRO B860-P WIFI model.

I am happy to provide any debug information requested (e.g., specific PCI device information, i2cdump output, or further testing). Thank you for your work on this project!

  • 3 weeks later...

Hello @CajunCoding

I have downloaded your docker and it kinda seems to be working. I am very much looking for a solution to getting my corsair ram to show up. Any insight?

When I open the docker it gives me a warning that I need to assign my devices for my motherboard (z890) i dont have anything plugged into the headers so I ignore it.

Im losing my mind trying to get the ram to shownup.

  • 2 months later...

OpenRGB (v0.9+) is required to get the Corsair Commander Core XT working. Git commit date of 2025-09-07 (or later?)

Any chance of getting the container updated with a an updated version of OpenRGB?

Thanks

  • Author

Thanks for letting us know that there is a helpful update available 👍.

Pull Requests are more than welcome… 😁 but I’ll try to push an update sometime this week (next few days)…

  • Author

FYI @Slythy , @tasmaniac , @mattispantone81

Ok updated version built and pushed now using the latest branch release_candidate_1.0rc2 . . . I also updated and resolved the dependency issues for the latest Plugins which will automatically copy down and run (as before).

Hope this helps!

My local updated and is running as expected:
image.png

Edited by CajunCoding

New version works great with my Commander Core.

Many thanks for updating this.

  • 2 weeks later...

works well on my Unraid which allow me to make RGB changes to the memory dimm, but I can't seems to have the MSI board-level change on the Dragon's lighting....

I've include the modprobe of i2c-dev and i2c-piix4 in the boot/config/go file

Any other steps I missed in order to have the capability to make RGB changes for the board?

Many thanks!

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.