Hardware Watchdog
os-watchdog · システム
ホストのハードウェアウォッチドッグを有効にして、動作が止まったホストを自身のハードウェアでリセットさせ、ホストが前回リセットされた理由をチップセットから読み取ります。
メニューの場所
- os-xgs-npu をインストールした場合: XGS: Hardware Watchdog
- os-xgs-npu がない場合: System: Hardware Watchdog

OPNsense は自らウォッチドッグを有効にしません。設定がオンのとき、このプラグインは起動のたびに watchdogd(8) でチップセットのウォッチドッグタイマーを有効にし、シャットダウンのたびに無効にするので、電源を切ったマシンは切れたままです。タイマーのドライバーはプロセッサーで決まり、AMD では amdsbwd、Intel では ichwd です。
ファミリー 17h 以降の AMD プロセッサーでは、起動のたびにホストが前回リセットされた理由も読み取ります。FCH の S5_RESET_STATUS レジスター(原因ごとに 1 ビット)を読んで記録を保存し、次の起動のためにレジスターをクリアします。
os-xgs-npu を入れた Sophos XGS では、os-xgs-npu がすでにタイマーを有効にしてリセット記録を読んでいるため、このプラグインは身を引きます。自分の watchdogd は起動せずに os-xgs-npu のものを表示し、レジスターを読む代わりに os-xgs-npu が読んだその起動の記録を使います。os-xgs-npu がタイマーを有効にしなくなれば、このプラグイン自身の設定が引き継ぎます。
機能
-
起動時にタイマーを有効化
watchdogd(8) が起動のたびにチップセットのタイマーを有効にし、シャットダウンのたびに無効にします。
-
2 つの設定
オンかオフか、そしてタイムアウト(64、128、256 秒)。
-
前回の再起動
ホストが前回リセットされた理由を、チップセットの記録どおり、立ったビットごとにその意味とともに示します。ファミリー 17h 以降の AMD プロセッサーが対象です。
-
タイマーを握るのは誰か
タイマーが有効かどうか、誰が有効にしたか(このプラグイン、os-xgs-npu、または別の watchdogd)をページに表示します。ほかのものが起動した watchdogd には手を触れません。
-
起動ごとに読み手は 1 つ
起動中の最初の読み取りが記録をクリアするので、os-xgs-npu が読んだ場合、このプラグインはその記録を使います。
インストールと更新
0.1.0-alpha.7.1 の次の os-xgs-npu リリースからは、XGS: Updates の Plugins タブにこのプラグインが表示され、インストール済みのコピーはそこで手動で更新でき、未インストールの環境ではそこからインストールできます。そのリリースから作られる完成済みイメージにも含まれます。それまでは、以下のとおりインストールと更新を行います。更新を実行する cron エントリーはありません。XGS アプライアンスでもほかの OPNsense でも、インストールは root で行います。リポジトリのチェックアウトから sh install/install.sh を実行する方法(ページは os-xgs-npu があれば XGS の下、なければ System の下に置かれ、再実行しても設定は保たれます)と、リリースのパッケージ os-watchdog-1.0.0.pkg を SHA256SUMS で確認して pkg で追加する方法があります。この方法でインストールしたコピーは、自身の self-update.py で更新します。OPNsense のプラグインリポジトリには含まれていません。
制限と、まだテストされていないこと
- このプラグインによるタイマーの有効化と無効化。os-xgs-npu があるアプライアンスでは、どれでも身を引いています。
- Intel プロセッサーの ichwd タイマー。
- tools/make-package.sh でビルドし pkg で追加するパッケージ。
- os-xgs-npu のない OPNsense へのインストール。
- Plugins タブまたは self-update.py による更新。1.0.0 が最初のリリースなので、インストール済みのコピーより新しいリリースはまだありません。
リポジトリ
最初のリリース: 2026-10-25