[English page]
Raspberry Pi OSではvcgencmd get_thresholdというコマンドで電源電圧と温度に関する状態を、また/sys/class/thermal/thermal_zone0/tempというスペシャルファイルから温度を取得できることを最近知ったので、Xymonでそれらを監視するモジュールを作成しました。
メインのモジュールで、次に述べるwrapper、get_throttled経由でvcgencmd get_throttledを実行して
の3項目の状態を取得します。詳しくはvcgencmdのオフィシャルドキュメントを参照して下さい。
また、/sys/class/thermal/thermal_zone0/tempから温度を取得します。このスペシャルファイルを読み出すと摂氏温度の1000倍がASCII文字列で返ってきます。別の方法としてvcgencmdのmeasure_tmpサブコマンドで取得することも考えられます。
その後、xymonコマンドを2回実行してtemperatureとvoltageの状態をXymonサーバにレポートします。
temperatureのレポートには温度と、"Soft temperature limit active"が発生しているか否か、"Arm frequency capped"が発生しているか否かが含まれています。https://forums.raspberrypi.com/viewtopic.php?f=63&t=147781&start=50#p972790によれば、"Arm frequency capped"は80°Cを、throttlingは85°Cを超えると発生するそうです。
voltageのレポートには"Under-voltage detected"が発生しているか否かだけを含んでいます。先ほどのページによれば、閾値は4.63Vだそうです。計測値には興味があるんですが、まだ取得方法を発見できていません。vcgencmd measure_voltsで取得できるのは、Raspberry Pi外部からUSBコネクタ経由で供給されている電圧ではなく、コアやSDRAMに供給されている電圧です。
vcgencmd get_throttledを特権を行使して実行するためのwrapperです。
tar ballを取得して適当な作業ディレクトリに展開します。
$ tar xvzf vcthrottled.tar.gz
vcthrottledというサブディレクトリが展開されるので、そこにcdします。
$ lsvcthrottled$ cd vcthrottled
ここでget_throttledを配置するディレクトリを決めます。このディレクトリをLIBEXECDIRと表記します。作者は/pub/libexec/xymon/vcthrottledというディレクトリにしています。/usr/local/libか/opt/vcthrottled/libであればFilesystem Hierarchy Standard Version 3.0に適合するのではないかと思います。vcthrottledを配置する/usr/lib/xymon/client/local以下はXymonクライアントが自動的に実行するのでget_throttledを置いてはいけませんが、それ以外で任意にして下さい。
決定したLIBEXECDIRを与えてconfigureを実行します。LIBEXECDIRを指定しないと/usr/local/libexecになります。
$ ./configure --libexecdir=LIBEXECDIR
もしLIBEXECDIRがまだなければ、例えば
$ sudo mkdir /pub/libexec/xymon/vcthrottled
のようにして、ここで作成しておかなければなりません。もちろん意図したLIBEXECDIRに読み替えて下さい。mkdirに-pオプションを与えると便利なこともありますが、深刻ではないにせよ意図しない結果を引き起こさないように注意して下さい。
それではインストールしましょう。
$ sudo make install
vcthrottledは/usr/lib/xymon/client/localにインストールされます。Debianのxymon-clientパッケージを使っていればこのディレクトリが適切なのでconfigureに与えたパラメータの影響は受けません。変更するのであればMakefile.inを変更してconfigureをやり直して下さい。
get_throttledはconfigureに--libexecdirで与えたLIBEXECDIRにインストールされるはずです。もし
Please
mkdir /some/where
before
make install
if the directory is sure.
というメッセージが表示されたら、原因は
mkdirを実行していなかった。
configureに与えたLIBEXECDIRが間違っていた。
configureの工程まで戻って--libexecdirで正しいLIBEXECDIRを与えてやり直して下さい。
のいずれかだと思われます。
上で述べたようにDebianのxymon-clientパッケージは/usr/lib/xymon/client/local以下のモジュールを自動的に実行しますし、temperatureのRRD関係の設定はXymonに組み込まれているので、このモジュールに関する特別な設定は必要ありません。
make installを実行してしばらくするとXymonの画面にtemperatureとvoltageの2つのコラムが現れるはずです。もしうまくいかないときは/var/lib/xymon以下を調べてみて下さい。
[temperature][voltage]
Happy monitoring!