Apr 012018
This is a continuation of an earlier post regarding ECC memory under Linux, and is how I added a little widget to display the current ECC memory status. Because I don’t really know lua, most of the work is carried out with a shell script that is run via cron on a frequent basis.
The shell script simply runs edac-util to obtain the number of correctable errors and uncorrectable errors, and formats the numbers in a way suitable for setting the text of a widget :-
#!/bin/zsh # # Use edac-util to report some numbers to display ... correctables=$(edac-util --report=ce | awk '{print $NF}') uncorrectables=$(edac-util --report=ue | awk '{print $NF}') c="chartreuse" if [[ "$correctables" != "0" ]] then c="orange" fi if [[ "$uncorrectables" != "0" ]] then c="red" fi echo "ECC: $correctables/$uncorrectables "
This is run with a crontab entry :-
*/7 * * * * /site/scripts/gen-ecc-wtext > /home/mike/lib/awesome/widget-texts/ecc-status
Once the file is being generated, the Awesome configuration can take effect :-
-- The following function does what it says and is used in a number of dumb widgets -- to gather strings from shell scripts function readfiletostring (filename) file = io.open(filename, "r") io.input(file) s = io.read() io.close(file) return s end eccstatus = wibox.widget.textbox() eccstatus:set_markup(readfiletostring(homedir .. "/lib/awesome/widget-texts/ecc-status")) eccstatustimer = timer({ timeout = 60 }) eccstatustimer:connect_signal("timeout", function() eccstatus:set_markup(readfiletostring(homedir .. "/lib/awesome/widget-texts/ecc-status")) end ) eccstatustimer:start() ... layout = wibox.layout.fixed.horizontal, ... eccstatus, ...
There plenty of ways this could be improved – there’s nothing really that requires a separate shell script, but this works which is good enough for now.