Looking for ways to control the RGB lighting of 2 (soon to be 3) different mother(main) boards.
The 2 I have now are older systems. The MSI MB is a Z270 Gaming M7 and the other is a Gigabyte Z390 AORUS Pro. The 3rd is on order and I will get it this week so can’t say what the MB is, but it’s possibly an MSI Z790.
Because the Z270 only supports 12v RGB strip lights, such as 5050 LED strips, I am currently using a separe LED controller for the fan LEDs.
The Gigabyte MB supports both 12v & 5v RGB, and I have successfully used OpenRGB (openrgb.org) running under a different op sys to control all LEDs. OpenRGB uses udev rules to provide user control over the I2C/SMBus interface:
Load the i2c driver for your chipset:
for Intel:
sudo modprobe i2c-i801
for AMD:
sudo modprobe i2c-piix4
My question is, can this be done in an app VM or must access to SMBus/I2C be done via dom0? I’d sure hate to discover I opened a new security attack vector via this LED “playtoy”, that clearly not essential.
I would say that this likely needs to be done inside dom0, or it won’t work at all. But try it inside a qube and see.
I mean, you could technically pass through the i2c controller into a qube, but I wouldn’t recommend it. It’s probably doing things that your machine relies on to stay operational…
Sorry, but I can’t really help you more on this one, but it would be good if you could document your results 
Thanks for your input alzer89. Sounds like a decision of whether risk is greater passing i2c to an app vm or moving openRGB code or it’s udev rules to dom0. Either way involves some risk.
I’m inclined to pass the i2c controller to a limited access VM, but it may not reduce risk much if at all if i2c is that crucial for normal operations. However, it’s much easier to update an app VM that code in dom0.
Off the top of my head I’m not sure how to import code or blocks of text into dom0. If I’ve ever done that it’s such a rare occurrence I can’t recall how. Is it a qvm-copy or similar, or is that prohibited into dom0?