You are not logged in.

#1 2025-08-02 17:22:36

SupKurtJ
Member
Registered: 2015-07-18
Posts: 51

[SOLVED] Udev rule for /sys/class/powercap/intel-rapl:0/energy_uj

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

#2 2025-08-02 19:06:25

dimich
Member
From: Kharkiv, Ukraine
Registered: 2009-11-03
Posts: 414

Re: [SOLVED] Udev rule for /sys/class/powercap/intel-rapl:0/energy_uj

SupKurtJ wrote:
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

#3 2025-08-03 01:26:39

SupKurtJ
Member
Registered: 2015-07-18
Posts: 51

Re: [SOLVED] Udev rule for /sys/class/powercap/intel-rapl:0/energy_uj

Thanks @dimich

Your solution work smile

Offline

Board footer

Powered by FluxBB