#!/bin/sh # powercap-pl-rules.sh — one-shot installer for RAPL access (adlermon). # # RAPL energy_uj is 0400 root-only on this kernel, which gates the power # panel. This installs a udev rule + helper so any user in group `adm` # can read energy counters. Run once as root: # # doas ./powercap-pl-rules.sh # # Idempotent: re-running overwrites installed files. set -eu HELPER=/usr/local/sbin/adlermon-powercap-chmod RULE=/etc/udev/rules.d/60-adlermon-powercap.rules # Helper: relax energy_uj to 0440, group adm, on every powercap dir. cat > "$HELPER" <<'EOF' #!/bin/sh for d in /sys/class/powercap/intel-rapl*; do [ -e "$d/energy_uj" ] && chgrp adm "$d/energy_uj" && chmod 0440 "$d/energy_uj" done exit 0 EOF chmod 0755 "$HELPER" # RUN+= (not MODE=/GROUP=) — powercap has no devnode, so udev's standard # MODE/GROUP assignment doesn't apply; we chmod in-process instead. cat > "$RULE" <