41 lines
1.2 KiB
Lua
41 lines
1.2 KiB
Lua
-- Authors: Unknown
|
|
-- License: Public domain
|
|
-- Last Changed: Unknown
|
|
--
|
|
-- statusd_cpufreq.lua
|
|
--
|
|
-- Public domain
|
|
--
|
|
-- Use the key "cpufreq_[KMG]" to get the current CPU frequency in
|
|
-- K/M/GHz, according to /sys/devices/system/cpu/cpuX/cpufreq/. (This
|
|
-- has the advantage of being a much "rounder" number than the one in
|
|
-- /proc/cpuinfo, as provided by statusd_cpuspeed.lua.)
|
|
--
|
|
-- The "cpu" option to the statusd settings for cpufreq modifies which
|
|
-- cpu we look at.
|
|
|
|
local defaults={ update_interval=2*1000, cpu=0 }
|
|
local settings=table.join(statusd.get_config("cpufreq"), defaults)
|
|
|
|
function get_cpufreq()
|
|
local f=io.open('/sys/devices/system/cpu/cpu'.. settings.cpu ..'/cpufreq/scaling_cur_freq')
|
|
local cpufreq_K = f:read('*a')
|
|
f:close()
|
|
|
|
local cpufreq_M = cpufreq_K / 1000
|
|
local cpufreq_G = cpufreq_M / 1000
|
|
|
|
return tostring(cpufreq_K), tostring(cpufreq_M), tostring(cpufreq_G)
|
|
end
|
|
|
|
function update_cpufreq()
|
|
local cpufreq_K, cpufreq_M, cpufreq_G = get_cpufreq()
|
|
statusd.inform("cpufreq_K", cpufreq_K)
|
|
statusd.inform("cpufreq_M", cpufreq_M)
|
|
statusd.inform("cpufreq_G", cpufreq_G)
|
|
cpufreq_timer:set(settings.update_interval, update_cpufreq)
|
|
end
|
|
|
|
cpufreq_timer = statusd.create_timer()
|
|
update_cpufreq()
|