OpenRGB

From LinuxReviews
Jump to navigationJump to search
OpenRGB
OpenRGB.png
OpenRGB on Linux controlling RGB lights on a Gigabyte AX370 Gaming 5 motherboard.
OpenRGB on Linux controlling RGB lights on
a Gigabyte AX370 Gaming 5 motherboard.
Original author(s)Adam Honse
Initial release0.4
September 9, 2020; 46 days ago (2020-09-09)
Repositorygitlab.com /CalcProgrammer1/OpenRGB
Bugtrackergitlab.com /CalcProgrammer1/OpenRGB/-/issues
Written inDecently commented C++[1]
Operating systemLinux (Source, AppImage)
Windows
TypeRGB Light Controller
LicenseGNU GPL v2
Rgb.svg

OpenRGB is a graphical free software program that, in theory, lets you control RGB lights motherboards, graphics cards and other devices from the Linux and Windows operating systems. Using it to control most of the RGB lights it supports on Linux requires compiling the Linux kernel with a special i2c-dev patch and there is a fair chance won't work even if you do that. It is also possible that it will let you control RGB lights from a simple and easy to use graphical interface.

The Linux kernel has good support for regular LED lights found on keyboards and laptops (the WLAN light, etc) and Linux users can control those by sending messages to /sys/. Getting RGB lights to work is a lot harder because it requires sending special messages to special controllers over either the SMBus or USB interfaces. This is where OpenRGB comes in. It can, in theory, talk to RGB controllers and make them work using a nice graphical interface. You may find that it is, in practice, utterly useless software incapable of controlling anything. You could also be lucky and get RGB control from a nice and simple GUI.

Features, Usability & Verdict

OpenRGB On Linux - Gigabyte AX370 Gaming 5.jpg
OpenRGB controlling the RGB LED lights on a Gigabyte AX370 Gaming 5 motherboard.

OpenRGB can, in theory, talk to RGB controllers over either the SMBus (i2c) interface or USB. You may find that OpenRGB is, on Linux, a complete and utter waste of time not worth bothering with. You may want to try if you're a wizard who knows how to apply a patch to the kernel source tree and compile it, but don't expect that you'll be able to control RGB light, or anything else, even if you waste a lot of time of time on it and you carefully follow the instructions.

The only board we managed to get working with OpenRGB was the Gigabyte X370 Gaming 5. That required patching the kernel and booting with the acpi_enforce_resources=lax kernel parameter.

You can compile your own patched kernel (with OpenRGB.patch), add the required udev device file for USB devices and try to get OpenRGB working if you have one of the supposedly supported motherboards, graphics cards, keyboards or other hardware listed below. Just don't be shocked if you end up wasting hours without accomplishing anything beyond perhaps providing some useful information the developer can use to improve OpenRGB.

OpenRGB is very nice if you are able to make it work on your machine.

WARNING!

Snubbelrisk.jpg
Warning: The OpenRGB website has a big warning section where they note that MSI Mystic Light motherboards and Gigabyte Aorus Z390 motherboards using the how hidden-by-default SMBus Tools page within OpenRGB. While this should not be a problem with any of the hardware now officially supported by OpenRGB, it is a concern to be aware of: Sending instructions directly to controller chips over the SMBus does have some risks.

Supported Devices

OpenRGB-devices.jpg
This may be all you get when you try to use OpenRGB for the first time. That's true even if you have one of the supported devices but have not compiled a custom kernel with the (OpenRGB.patch) OpenRGB kernel patch.

The OpenRGB has it's own detailed page listing Supported Devices. The table below is therefore a simplified summary for your convenience.

The OpenRGB project appears to be very Windows-focused. That a device is listed as "supported" does not mean that it actually is supported on GNU/Linux systems. You will likely find that it simply doesn't find any RGB controllers even if you have several that are supposedly supported and you've patched your kernel and followed the instructions. However, there is a chance that it will work. Your mileage will definitively vary on this one.

Motherboards

Motherboards
ASRock B450 Steel Legend, B450M Steel Legend, Fatal1ty B350 Gaming-ITX/ac, B450M/ac, X570 Taichi
ASUS Many PRIME, ROG and TUF boards are supported. These use a USB interface to control RGB lights (no kernel patching required).
Gigabyte X370 Gaming 5 is will work, and there is fair chance other X570 boards and the TRX40 Aorus will work. You must compile your own kernel using OpenRGB's kernel patch (OpenRGB.patch) and boot with acpi_enforce_resources=lax as a kernel parameter.
MSI Almost all MSI boards use either the Nuvoton NCT6795 or Nuvoton NCT6797 chip. These are not supported by the mainline kernel. OpenRGB provides a kernel patch (OpenRGB.patch) that provides a i2c-nct6775 module. Most MSI motherboards will work with OpenRGB if you patch your kernel.

RGB RAM

RGB RAM
Most RGB RAM will enumerate as SMBus devices. Kernel patching is required.
Corsair Vengeance RGB and pro RGB
Crucial Ballistix RGB
HyperX Predator RGB, Fury RGB
Patriot Viper RGB

Graphics Cards

Graphics Cards
ASUS
  • ASUS ROG Strix RX580
  • ASUS ROG Strix GTX1080Ti
EVGA GeForce GTX 1070 FTW
Galax KFA2 RTX2070
Gigabyte Aorus GTX1080Ti Xtreme Waterforce WB, RTX2070 SUPER GAMING
MSI
  • MSI GeForce RTX 2060 Super Gaming X
  • MSI GeForce RTX 2070 Super Gaming X Trio
  • MSI GeForce RTX 2080 Gaming X Trio
  • MSI GeForce RTX 2080 Super Gaming X Trio
  • MSI GeForce RTX 2080Ti Gaming X Trio
  • MSI GeForce RTX 2060 Gaming Z 6G
  • MSI GeForce RTX 2060 Super ARMOR OC
  • MSI GeForce RTX 2070 ARMOR
  • MSI GeForce RTX 2080Ti Sea Hawk EK X
Sapphire Sapphire RX580 Nitro+

Fans, Fan Controllers and LED Strips

Fans, Fan Controllers and LED Strips
AMD Wraith Prism (Actually a Cooler Master product)
ASUS ROG Aura Terminal
Corsair
  • Hydro Series (Corsair H100i PRO RGB)
  • Lighting Node Core / Node Pro
  • Commander Pro
  • LS100 Lighting Kit
  • 1000D Obsidian
  • SPEC OMEGA RGB
NZXT
  • NZXT Kraken X42/X52/X62/X72
  • NZXT Hue 2 / NZXT Hue 2 Ambient
  • NZXT Smart Device V2
  • NZXT RGB & Fan Controller
Thermaltake Riing Plus

Keyboards

Keyboards
ASUS
  • ASUS ROG Zephyrus M GM501GM (laptop)
Corsair
  • Corsair K65 RGB / Lux RGB / RGB Rapidfire
  • Corsair K68 RGB
  • Corsair K70 RGB / Lux RGB / RGB Rapidfire / MK.2 / MK.2 SE / MK.2 Low Profile
  • Corsair K95 RGB / RGB Platinum
  • Corsair Strafe / Strafe MK.2
Ducky
  • DuckDuck Shine 7
  • DuckDuck One 2 / 2 TKL
  • Duck Duck Shine 5 does not work with OpenRGB.
  • Ducky Key Fidget lacks RGB lights and is therefore supported.
HyperX
  • Alloy Elite
  • Alloy Origins
Logitech RGB Keyboards
  • G512
  • G810 Orion Spectrum
MSI
  • GS63VR
Redragon
  • Redragon K550 Yama
  • Redragon K552 Kumara
  • Redragon K556 Devarajas
  • Tecware Phantom Elite
  • Warrior Kane TC235
SteelSeries
  • Apex 5
  • Apex 7, Apex 7 TKL
  • Apex Pro, Apex Pro TKL
TTEsports
  • Poseidon Z RGB

Mice

Mice
Corsair M65 RGB PRO / M65 RGB Elite
Glorious Model O
Logitech
  • G203 Prodigy / G203 Lightsync
  • G403 Prodigy / G403 Hero
  • G502 Proteus Spectrum / G502 Hero
  • G Lightspeed Wireless Gaming Mouse
  • Logitech G Pro Wireless Gaming Mouse (Wired)
  • Logitech G Powerplay Mousepad with Lightspeed"
Redragon
  • Redragon M711 Cobra
  • Redragon M715 Dagger
SteelSeries
  • Rival 100 / 100 DotA 2 Edition
  • Rival 105
  • Rival 110
  • Rival 300 / "Acer Predator Gaming Mouse" (Actually Rival 300 re-branded)

Other

The OpenRazer project is integrated into OpenRGB. That project supports a wide range of Razer keyboards (BlackWidow, Huntsman, etc), Razer mice, laptops, headsets, mouse-mats, speakers etc.

Installation

There is an AppImage available on the OpenRGB releases page. You can get that one, but you might as well get the source. You will need to get a udev rules file and the kernel patch to try to get it working anyway and you don't get those if you get the AppImage. You can get the USB udev rules with wget if you do you the AppImage route.

Snubbelrisk.jpg
Warning: Re-loading the udev rules may be unfortunate consequences such a the X display server crashing!
sudo wget https://gitlab.com/CalcProgrammer1/OpenRGB/-/raw/master/60-openrgb.rules -O /etc/udev/rules.d/60-openrgb.rules
sudo udevadm control --reload-rules && sudo udevadm trigger

You will need to fetch the OpenRGB.patch and use that to patch your kernel regardless of how you acquire the OpenRGB user-space program.

Installing from source is fairly easy. The first step install the packages required to build it.

On Debian / Ubuntu:

sudo apt install build-essential qt5-default libusb-1.0-0-dev libhidapi-dev pkgconf

On Fedora:

sudo dnf install git make automake gcc gcc-c++ qt5-devel hidapi-devel libusb-devel

Next, clone and compile the source:

git clone https://gitlab.com/CalcProgrammer1/OpenRGB.git
cd OpenRGB
qmake OpenRGB.pro
# or, on Fedora,
# qmake-qt5 OpenRGB.pro
make -j$(nproc)  # or just make
sudo make install
# "make install" will NOT install the rules file for you!
sudo cp 60-openrgb.rules /etc/udev/rules.d/

Just installing OpenRGB, and manually copying the rules files into the udev rules directory will likely not be enough. You will also have to use the OpenRGB.patch kernel patch in the OpenRGB source root folder to patch the Linux kernel source and build it. You may also have to add acpi_enforce_resources=lax to the GRUB_CMDLINE_LINUX line in /etc/sysconfig/grub (or otherwise make acpi_enforce_resources=lax a kernel boot parameter).

Some Final Thoughts

OpenRGB is a really nice piece of software. It is a shame that it takes a lot of skill to install it right, and it may not work even if you do. It would be great if more people, that's you, could help out and make OpenRGB a great tool for everyone.

The developer, Adam Honse, is doing a great job on this one. He really is. However, there is a very hard physical limit to what he can do: He ain't got no basement full of every single motherboard, GPU and other pieces of hardware with some obscure RGB ligth controller. Adding data dumps and other useful information to the OpenRGB issue tracker will likely make his "job" (he's actually a vulenter writing this in his space time, keep that in mind) slightly easier.

Links

The source code, homepage and issue tracker is at gitlab.com/CalcProgrammer1/OpenRGB. That's where it's at.

Footnotes

Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.