ウォッチドッグタイマ

Linux では,確か結構前からウォッチドッグタイマのサポートがあります. が,使う機会がないので使ってなかったのだが,HDL-GXR ポーティング祭りの一環としていじってみました.

参考文献

linux/Documentations/watchdog/ の下のドキュメント.

カーネルの設定

ウォッチドッグタイマのドライバは linux/drivers/watchdog にあります. HDL-GXR では「Orion5x watchdog」を有効にすれば使用することができるはずです. が,今のカーネルではコンパイルエラーで止まってしまうので,適当に直しました.

こいつを当ててコンパイルしてください.

ユーザランドからの使いかた

要約すると

  • ユーザランドからは /dev/watchdog 経由で操作する
  • このデバイスファイルに write(2) することにより,ウォッチドッグタイマの再設定が行われる
  • 一定期間 write が無いとタイマが expire し,ハードウェアリセットがかかる

こんなところです.

簡単な例では

# ( while sleep 10; do echo; done ) >/dev/watchdog &

で動かすことができます.

が,これでは動いてるのかどうかわからないので,実際にリセットがかかるように動かしてみましょう.

landisk:~# sleep 1000000 >/dev/watchdog                                         
                                                                                
                                                                                
=========================================                                       
    HDL-GXR series Initial boot loader                                          
                                                                                
 Copyright (C) 2006 I-O DATA DEVICE,INC.                                        
========================================= ** LOADER **                          
 ** MARVELL BOARD: DB_MV88F5182_HDL_GT LE                                       
                                                                                
U-Boot 1.1.1 (Oct  5 2006 - 13:58:33) MV : 1.7.3 (I-O DATA 0.9(GX))             

確かにリセットがかかりました.

正しい使いかた

まぁ,上記の例のままでも「システム全体としての監視」としては用を為しているのかと思います.

が,マジメに使おうとする場合は

  • 監視対象のプログラム(サーバデーモン)などにウォッチドッグタイマの再設定処理を埋め込み
  • 再設定処理も alarm などの割り込みを使わずに処理のメインパスに埋め込む

ようにする必要があります.

Gnome デスクトップ

HDL-GXR に サインはVGA と USB キーボードと USB マウスをつなぎ,X を動かしてみる. ここまでくると普通の遅いパソコンだなぁ.

Screenshot.png

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-12-21 (日) 21:42:04 (4254d)