Skip to content

Instantly share code, notes, and snippets.

@belmer
Last active September 25, 2021 06:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save belmer/5860761cb7cb591aaa8d56756fa616fb to your computer and use it in GitHub Desktop.
Save belmer/5860761cb7cb591aaa8d56756fa616fb to your computer and use it in GitHub Desktop.
OpenRGB on Linux with MSI motherboard

This document is to highlights the steps to make OpenRGB work on Linux with MSI Motherboard. This is actually the general process for all motherboard that are supported on OpenRGB but few notes I found that works on my MSI motherboard.

Download OpenRGB

OpenRGB project repository

Details on my machine

  • MSI X570 Gaming edge wifi
  • 32GB GSkill TridentZ Neo
  • Nvidia GeForce RTX 3060
  • AMD Ryzen 3800x

Before you install OpenRGB, make sure to check their supported devices

Download OpenRGB

On Linux, the installation wasn't so straight forward. So, I'm not gonna go into the details of wether to use Debian or .deb. For this purpose let's use the AppImage, coz it mostly applies to all versions of Linux.

  1. So download the AppImage depending of your system, be it 64-bit or 32-bit. You probably gonna get the application with the .AppImage extension or a zip depending on where you get them. Well, if it's a zip file, obviously extract it.
  2. Navigate to the directory where you download OpenRGB. Whereever you downloaded the image file, you might want to transfer the file somewhere appropriate like the application folder, just to avoid accidentally deleting it.
  3. Right-click on the xx.AppImage file and select Properties.
  4. And then select on the Permissions Tab.
  5. Make sure Allow executinng the file as program is checked or enabled.
  6. Finally, close the diaglog and double-click on the image file. It should open up the app but it's blank. Mostly blank and no devices detected no matter what you do. And that's because your user does not have enough access rights to communicate to your devices. (Follow along to fix this.)

Setup Devices

  1. We need to download some udev rules to properly communnicate and address our RGB hardwares. Download [60-openrgb.rules] (https://gitlab.com/CalcProgrammer1/OpenRGB/-/raw/master/60-openrgb.rules?inline=false)
  2. Open your terminal and navigate to your directory where you download the rules.
  3. Copy 60-openrgb.rules to /etc/udev/rules.d. sudo cp 60-openrgb.rules /etc/udev/rules.d
  4. Verify the the rules file was indeed copied to rules directory. ls /etc/udev/rules.d
  5. Now that it has been copied. We need to reload the udev rules. You can reload the udev rules by rebooting your computer OR you can use the udev administration tool by doing this command sudo udevadm control --reload-rules.
  6. After reload, we need to trigger this rule update by invoking the command sudo udevadm trigger
  7. To be able OpenRGB to talk to your devices, it uses SMBus or i2c to communicate. In Linux this is called i2c-dev that allow apps to talk to i2c interface. OpenRGB in this case.
  8. Let's make sure that this is loaded sudo modeprob i2c-dev
  9. Load i2c driver for the chipset sudo modeprob i2c-piix4 for AMD and sudo modeprob i2c-i801 if intel.
  10. Confirm that everthing is loaded by doing sudo i2cdetect -l. If you don't have this tool you can install it by sudo apt install i2c-tools
  11. It should list your devices on i2c interface and what you're really look into are those with SMBus values. If you have that, then your good to go.
  12. Now, exit from your terminal.
  13. Re-open OpenRGB app, it might take a while because it's now detecting all your hardware devices. Just be patient and once it's loaded, you should see all your RGB devices and be able to control them.

How about MSI???

Now, I downloaded the stable version of OpenRGB. When I did all the steps above, as soon as I open the app. I can see that it's listing my devices but when it get's to the point that it's detecting my MSI Motherboard, it crashes. Re-opening it or running it via sudo doesn't make any difference.

And then, I tried downloading the experimental version. That WORKS for me. So they might have some support added to MSI mb already. Kudos to OpenRGB developers and thank you. This may not work for you so I suggest to try different versions of this app.

What's Next?

Add it to your system start-up.

Go to cd /usr/lib/systemd/system and create a file called nano openrgb.service. Then paste the following scripts:

[Unit]
Description=OpenRGB control

[Service]
Type=oneshot
ExecStart=/path/to/openrgb/image/OpenRGB-x86_64.AppImage -c 00D5FF -m Direct
User=mrb
Group=i2c

[Install]
WantedBy=multi-user.target

Now, make sure to reload your system daemon sudo systemctl daemon-reload.

Also make sure to enable it to start when your computer boots sudo systemctl enable openrgb

To test without rebooting, use sudo systemctl start openrgb

Few notes: Make sure to change the ExecStart where your OpenRGB app image is located and -c 00D5FF your color of choice. 00D5FF is HEX by the way. And finally the User ofcourse. This can be nobody or root.

For some reason, on linux these options --startminimized or --profile will cause an error. I'm not sure if this is specific to MSI Motherboard. But it seems that any of the options are not working for me.

Anyhow, Enjoy!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment