サイトマップ

Fbst
フレームバッファを使ったホストのステータス表示

はじめに

 このページの内容及び、ダウンロードしたものは無保証です。一切の責任を作成者は負いません。自己責任で利用してください。また、サポートも一切行いません。as is でお願いします。

Fbst

Fbst

 Raspberry Pi のコンソール画面にホストの状態(負荷、CPU 温度、メモリ使用量) を表示するプログラムです。 フレームバッファ (/dev/fb0) を使ってグラフも表示します。

 古い SPI 接続の 3.5 inch の液晶に fbcp(fbcp-ili1394 を推奨) で表示している場合に、SDL2 や DirectFB では表示できなかったので直接フレームバッファに書き出しています。

 直接フレームバッファに書き出しているのでグラフィックライブラリは必要ありません。ウィンドウシステムを動かしていないサーバでの利用を想定しています。

 サーバに負荷をかけたくなかったのでオプション解析や設定ファイルの読み込みといった処理はありませんが、ソース中の定義を変えることで、色やグラフの更新時間を変えることはできます。

 そのままコンパイルすると、テキストは 1 秒間隔で更新し、グラフは 10 秒間隔で更新します。また、23 時から 6 時までは、表示を暗くしています。

コンパイル

 以下のようにして、コンパイル、インストールできます。インストール先は、/home/pi/bin です。

$ mkdir fbst $ cd fbst $ wget -O fbst-230407.tar.gz "https://sirius10.net/Download/download.php?download=fbst-230407.tar.gz" $ tar xvfz fbst-230407.tar.gz $ make $ make install

カスタマイズ

 ソース中の定義を変更することでカスタマイズできます。

/* グラフ表示する際の色(AARRGGBB) */ #define BG_COLOR (uint32_t)0xFF080808 #define CURRENT_COLOR (uint32_t)0xFFFFFFFF #define LOAD_COLOR (uint32_t)0xFF00FF00 #define TEMP_COLOR (uint32_t)0xFF00FFFF #define MEM_COLOR (uint32_t)0xFFFF00FF #define BORDER_COLOR (uint32_t)0xFFFF0000 /* エスケープシーケンスによる文字の色 */ #define TEXT_LIGHT 0x07 #define TEXT_DARK 0xEA #define LOAD_LIGHT 0x02 #define LOAD_DARK 0x16 #define TEMP_LIGHT 0x0E #define TEMP_DARK 0x19 #define MEM_LIGHT 0x05 #define MEM_DARK 0x5B #define TEXT_RED 0x01 /* 各種データの最大値 */ #define MAX_TEMP 80 #define MAX_LOAD 4 #define MAX_MEM 100 /* 百分率 */ /* 最大値の何割を限界値にするか */ #define DATA_LIMIT 8 /* MAX 10 */ /* SLEEP_TIME から WAKE_TIME の間は表示を暗くする */ #define SLEEP_TIME 23 #define WAKE_TIME 6 #define JST (9 * 3600) /* UTC + 9 */ /* グラフの更新間隔(秒) */ #define GRAPH_SEC 10

キー操作

 q をタイプすると終了します。s をタイプすると現在のフレームバッファの内容を BITMAP 形式で保存します。

シグナル

 SIGUSR1 を受け取ると現在のフレームバッファの内容を BITMAP 形式で保存します。

 別端末から送るには、kill コマンドが使えます。

$ kill -n SIGUSR1 <fbst の pid>

免責

 このプログラムを使ったことによる一切の責任を sirius は負いません。使用は自己責任でお願いします。

著作権

 本プログラムの著作権は sirius(https://sirius10.net) にありますが、本プログラムの著作権は主張いたしません。

保証

 無保証です。

更新履歴

日本語でのみご利用いただけます。その他の言語では対応いたしかねます。
Only available in Japanese language. We cannot support it in other languages.