You are not logged in.
Hi all,
I'm trying to expose CPU power consumption (from energy_uj) to non-root tools like s-tui, powerstat, or MangoHUD, without having to run:
sudo chmod o+r /sys/class/powercap/intel-rapl:0/energy_uj
after each reboot.
So I created this udev rule:
SUBSYSTEM=="powercap", KERNEL=="intel-rapl:0", MODE="0440", GROUP="games"
I also added my user to the games group.
The rule file is located in /etc/udev/rules.d/70-intel-rapl.rules.
After reboot, the permissions remain:
-r-------- root root /sys/class/powercap/intel-rapl:0/energy_uj
Even after running udevadm trigger and udevadm control --reload, it doesn’t change.
Am I missing something about how permissions are applied to virtual files in /sys/class via udev?
Thanks in advance!
Last edited by SupKurtJ (2025-08-03 19:14:18)
Offline
SUBSYSTEM=="powercap", KERNEL=="intel-rapl:0", MODE="0440", GROUP="games"
OWNER, GROUP, MODE set permissions to device node. /sys/class/powercap/intel-rapl:0 isn't a device node. Moreover, it's a symlink to another directory. Even if you manage to change its permissions, it will affect directory itself, not files in it.
You can try something like this:
SUBSYSTEM=="powercap", KERNEL=="intel-rapl:0", \
RUN+="/usr/bin/chgrp games /sys/%p/energy_uj'", \
RUN+="/usr/bin/chmod g+r /sys/%p/energy_uj"
Offline
Thanks @dimich
Your solution work
Offline