So here’s the thing. It seems ucore bakes in a bunch of udev rules (I don’t think this is a Bazzite thing). One of those rules is for OpenRGB (60-openrgb.rules).
The problem is these rules are Read-Only; however, the openrgb udev rules are refreshed often enough that they need to be replaced. This is the process now with newer hardware constantly being released - OpenRGB’s udev rules are updated constantly.
There are three ways I was thinking of contributing here; but, I need help with what the devs on what is acceptable/correct approach.
(Easiest) Just update the udev rules, and keep updating udev rules as people request/things break. Brittle and requires constant maintenance.
(Less easy) Update the image build script to always pull the latest udev rules on every build (slows down image building and won’t be static from the repo to build locally until cached).
(Overhaul installation method) Make the install process much richer by removing the static udev rules file from all images - while also changing the ujust install-openrgb to perform the following:
remove hardcoded appimage version, make it pull the latest release.
pull the latest udev rules, and place it writable and fully supported directory of /etc/udev/rules.d/ as standard overrides.
Continue with standard appimage registration process already in place.
Obviously, #3 needs to be performed in all release images (Bazzite, Aurora, BlueFin). I’m willing to spearhead all of this - but I wanted to check in first to see if 1 or 2 is the preferred simple method for now.
Also, #3 is preferred to keep the app and rules updated all the time. They make several releases and betas and having a way to refresh it to the latest would be nice.
Note: I have not been able to find the 60-openrgb.rules yet. The github repos all seem Archived now. Could someone provide a little help in pointing me to the correct repos?
At least for Bazzite, I do believe #3 will closely follow what ujust install-OpenTabletDriver does as that process has more logic around it for the latest versions:
However, we still need to purge/remove 60-openrgb.rules from the base image(s).
That’s what i need a little advice/approval to do (and where?).
The current hack-around I came up with is to mount an empty file using fstab over the read-only file. Then, put my new rules in /etc/udev/rules.d/. But end users should not have to do this in order to get OpenRGB working with newer hardware.
I’ll post an edit/update here next time I am at my desk with the fstab entry.
There is no single way to do this. All of the images have their own repos.
But in general this more thing for Bazzite as that is the image where these things would more be used.
Atleast for Aurora we don’t really want to maintain anything extra and doing the update during build time is another breaking point when there could be a network or repo issue.
Although haven’t really checked where these rules actually come from on our image though (not much interest for us on RGB)
Edit: did check and I think they come from a upstream fedora package (openrgb-udev-rules)