MiharashiRUST / LINUX 実機で毎日稼働中

A dedicated view of your Linux machine

サーバーの今を、
ひとつの画面に。

負荷を知る。写真を楽しむ。地震や災害を見逃さない。
Linux マシンのそばに置く、Rust 製のキオスク・ダッシュボード。

実機の表示と、同じ描画処理で仮データを表示した見本を紹介します。

01 / Screens

家とサーバーを、
5 つの画面で見渡す。

4 / 6 で画面を切替、
8 / 2 / 5 で画面内を操作。

SERVER STATUS の OVERVIEW。CPU・GPU・メモリ・SSD 温度・ファンの現在値と、使用率・GPU ごとの VRAM 使用率・電力のグラフ、今日の電力量
STATUS / OVERVIEW CPU と 2 枚の GPU の使用率・温度・電力、メモリ、SSD 温度。下に使用率、GPU ごとの VRAM 使用率、電力のグラフ、今日の電力量と最高温度。実機の値
SERVER STATUS の DETAILS。メモリ圧迫、GPU の詳細、ネットワーク、ディスク、ヘルス、グラフと今日の最大値
STATUS / DETAILS メモリ圧迫、VRAM とクロック、通信量、ディスク、systemd の失敗、今日の最大値。
PHOTO FRAME。左に写真、右にぼかした背景の上に大きな時刻と日付、写真の説明
PHOTO FRAME 写真を巡回し、ぼかした背景の上に大きな時刻と日付。旅や季節の区切りには地図のカード。

写真は公開用に用意した風景画像です。実機では GEOFRAME(写真サーバー)の写真を表示します。以下の 3 画面は、位置や個人のデータを公開せずに表示内容を伝えるため、実装済みの描画処理に仮データを渡した見本です。実際の観測値・予報・作業状況ではありません。

仮データの ROOM & WEATHER。室内センサーの値と履歴、東京地方の今日・明日・週間予報、千代田区の警報・注意報の表示例
ROOM & WEATHER 室内の温度・湿度・CO₂ と履歴、天気予報、警報・注意報をひとつに。仮データ
仮データの AIRCRAFT。東京駅付近を中心とした半径 50km のレーダーと、航空機の機種・高度・速度・経路の表示例
AIRCRAFT 近くを飛ぶ機体の位置と詳細。8 / 2 で注目する機体を選択。仮データ
仮データの T3 AGENTS。4 つのプロジェクトごとに、実行中・待機・応答完了のスレッドを並べたカードボード
T3 AGENTS プロジェクトごとのスレッドと状態を一覧に。新着や変更を中央に表示。仮データ

02 / Features

眺めるだけで、
家とサーバーの様子が分かる。

連携先や表示内容は、
自分の環境に合わせて設定。

ALERTS

地震と災害を、どの画面の上にも

住んでいる地方で震度 4 以上、全国で震度 5 弱以上の地震は、震源と震度の地図を重ねて知らせます。自宅から 50km 以内に特別警報や土砂災害危険警報が出たときも同じです。データは気象庁。

PHOTOS

旅ごと、季節ごとに写真を流す

写真の撮影地から、自宅を離れた「旅」と、いつもの暮らしの「季節」に分けて巡回します。区切りには、行き先の地図と日付のカードを挟みます。

AIRCRAFT

上空を飛ぶ航空機

ADS-B 受信機(readsb)の情報から、近くを飛ぶ機体を近い順に並べ、機種・登録記号・運航会社・経路を表示します。独立したレーダー画面で表示し、8 / 2 で注目する機体を選べます。

ROOM & WEATHER

部屋の空気と、これからの天気

Home Assistant の温度・湿度・CO₂ などと過去 24 時間の推移を表示。気象庁の今日・明日・週間の予報と、自宅の市町村の警報・注意報をまとめます。

T3 AGENTS

AI エージェントの動きを眺める

T3 Code のプロジェクトとスレッドをカードで並べ、状態の変わったものを中央に表示します。会話本文は取得せず、読み取りだけで動きます。連携は設定で有効にします。

ROTATION

触らなければ、画面が巡回

設定した順番と時間で画面を切り替えます。操作すると既定で 5 分休み、そのあと巡回に戻ります。API から巡回を止めたままにすることも、再開することもできます。

SCREEN POWER

留守ならモニターを消す

Home Assistant の在宅判定で、不在が続けば消灯し、帰れば点灯します。アラートは消灯中でも点けて見せます。手動の「常に点灯 / 常に消灯」も切り替えられます。

REMOTE

手元の Echo Show 5 から操作

Android 化した Echo Show 5 が、専用の操作盤になります。画面内の操作やメニューからの直接選択、モニターの消灯・点灯・自動に対応。操作ラベルと、今の画面や巡回の状態も手元で分かります。

LIGHTWEIGHT

内蔵 GPU で描いて、CPU を空ける

GPU 描画を設定で選ぶと、写真の拡大・ぼかし・重ね合わせを内蔵 GPU(OpenGL ES 3.2)で行います(既定は CPU 描画)。作者の実機で写真画面の CPU 使用率の中央値は約 0.8%(1 コア = 100%)でした。測定条件は GPU 描画の検証記録にあります。

DISPLAY REFRESH

固定表示の焼き付きを抑える

航空機の画面では、既定で 5 分ごとに短いグリッチと暗転を挟み、表示位置を数 px ずらします。間隔や対象画面は設定で変更できます。T3 Agent 画面はこの演出に未対応です。

5 画面すべてが初期設定で出るわけではありません。室内環境と天気には Home Assistant または予報地域、航空機には readsb の接続先が必要です。T3 Agent・自動巡回・操作パネル API は既定で無効のため、設定で有効にします。モニターの在宅連動には Home Assistant の設定が必要です。手順は 使い方にあります。

Echo Show 5 の操作パネル。左にモニターの状態と消灯・点灯・自動・設定、中央に現在の画面名と 4・5・6 のボタン、右に灰色の 8・2・0
Miharashi Panel Echo Show 5(960×480)の実機の画面。画像は v0.1.0 の表示です

03 / Control panel

テンキーでも、
手元の画面からでも。

4 / 6 で画面切替、8 / 2 / 5 で画面内を操作し、0 でメニューを開きます。Echo Show 5 の専用アプリでは、操作の意味をラベルで示し、メニューの行から直接画面を選べます。

  • 今の画面名、ページ、写真の何枚目かを手元に表示
  • モニターの消灯・点灯・自動を、Home Assistant と連動して切替
  • しばらく触らなければ操作盤も消灯し、触れば点灯

04 / Architecture

ひとつの描画面から、
ディスプレイにも PNG にも。

TEXTPHOTOGRAPH
COMMON RENDERERRGBA Canvas + GLEStiny-skia / cosmic-text / image、写真の合成は OpenGL ES 3.2
DRM / KMSLinux のモニターへ
PNG Snapshotヘッドレスで確認
DEVICE ROLES

表示する GPU と、見張る GPU を分けられる。

表示は内蔵 GPU、計算は別の GPU、という構成でも、1 枚の GPU の構成でも動きます。表示先のカードとコネクター、監視する GPU は設定で選びます。GPU が使えなければ CPU 描画に戻ります。

SEAT & SYSTEMD

root ではなく、一般ユーザーで常駐。

logind の seat から表示と入力のデバイスを受け取り、VT を切り替えれば手放して、戻れば復帰します。systemd で起動し、落ちても自動で立ち上がります。PoC-002 時点で 12 時間の連続試験に合格しています。

05 / Roadmap

動くものから、
少しずつ足していく。

進み具合は
ロードマップ(#3)で。

  1. ✓
    完了

    直接描画と常駐

    DRM/KMS への描画、日本語・写真・グラフ。seat / VT、systemd、12 時間試験。

  2. ✓
    完了

    アラートと電源

    地震・災害アラート、旅ごとの写真、航空機、在宅判定でのモニター消灯。

  3. ✓
    完了

    GPU 描画と操作パネル

    内蔵 GPU での合成。Echo Show 5 の操作パネルと、その API。

  4. ✓
    完了

    5 画面と自動巡回

    画面の登録と操作の統一。室内環境と天気、独立した航空機画面、T3 Agent、無人時の自動巡回。

次は日常運用の仕上げです。現在の版での長時間試験、ブート時の自動起動の確認、写真のディスクキャッシュ、テストの CI、モニターのつなぎ替え、リリースノートを MVP(#7)で進めます。

06 / FAQ

よくある質問

作っている側が、
聞かれそうだと思った質問です。

ターミナル上で動く TUI ですか?

いいえ。TUI 風の見た目ですが、ピクセル単位で描く全画面のアプリです。文字・写真・グラフを同じ画面に描きます。

X11 や Wayland、ウィンドウマネージャーは必要ですか?

要りません。Linux の DRM/KMS へ直接描きます。デスクトップ環境の無いサーバーでも、モニターをつなげば表示できます。

どんなハードウェアで動きますか?

Linux で DRM/KMS が使える GPU があれば動きます。作者の実機は、表示に CPU 内蔵の GPU を使い、計算用に別の GPU を積んだ構成です。特定の型番やメモリ容量を前提にはしていません。

CPU や GPU の温度・電力は、すべて取れますか?

ドライバーやセンサーが値を出していれば表示します。出ていない値は「--」になります。CPU の電力は RAPL からの推定値で、システム全体の消費電力ではありません。

テンキーが無くても使えますか?

使えます。操作パネルを有効にしていれば、キーボードが無くても起動し、あとから挿されたテンキーも自動で使い始めます。

写真はどこから表示しますか?

GEOFRAME(自宅の写真サーバー)から取得します。1 枚のファイルを指定して表示することもできます。

Home Assistant が止まったら、モニターは消えたままになりますか?

なりません。Home Assistant と通信できないときは点灯させておきます。手動の「常に消灯」も、通信できない状態が続けば自動に戻ります。

自分の環境でも使えますか?

ソースは公開していますが、今は作者の環境で毎日使いながら育てている段階です。表示先や監視対象は設定で変えられるようにしています。

Read more

ソースと設計書は、GitHub に。

使い方、要件、技術設計、検証記録をまとめています。