The userland
apmd(8) daemon uses the
/dev/apm,
/dev/apmctl devices to communicate power management events even if the kernel is using
acpi(4) instead of legacy
apm(4) (..most newer systems lack this now, it was a "specification" implemented by the BIOS).
It's just an instance of API reuse, this also allowed for the apmd(8)/
apm(8) tools to be used on platforms like the ARM-based "Sharp Zaurus".
If manually setting the
hw.setperf sysctl doesn't affect CPU speed, or simply doesn't exist, frequency scaling is not yet supported on your system.
For suspend functionality, you can use the apm/
zzz(8) utility to attempt it.. or toggle
machdep.lidsuspend and try simply closing/opening the lid.
Posting a dmesg along with sysctl output might help more, but there isn't much more we can do.