[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
します。
$ ls
vcthrottled
$ 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/wherebefore 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!