2016年4月6日水曜日

Buffalo HD-HLAN のボードをクロック異常のため交換

以前フラッシュメモリを書き換えて玄箱(初代)化していた HD-HLAN ですが、その後、監視カメラセットとして活用をしていました。この監視カメラセットとして活用を開始したところ、クロックが大幅に進むことが判明しました。この根本対策としてボードの交換をしました。

監視カメラセットとして活躍中の HD-HLAN です。
右の玄箱(初代)のボードを左の HD-HLAN へ移植しました。

状況

クロックは、いわゆるシステムクロックと呼ばれるものの方です。一日一回の ntpdate コマンドで時刻合わせでは到底追いつけないほどの時刻が進んでしまうのです。概ね一時間に1〜2分程度進むような状況です。

とりあえず簡単な対策として ntpd (debian のパッケージの場合 ntp)をインストールして、自宅サーバの ntpd に同期させるようにしてみました。しかし同期を開始して一時間が経過しても同期せず、さらに二時間が経過しても同期しませんでした。ズレが大きくなるばかりです。システムクロックの進行が速すぎて ntpd では同期させられないようでした。

仕方がないので一分おきに cron で ntpdate で step 同期(強制同期)させるという強行手段をさせていました。

さらにハードウェア・クロック(RS5C372a)の方もどうも異常が発生しているようでした。起動時にハードウェア・クロックから時刻を呼びだそうとしたところ、異常な時刻を示していました。dmesg に以下の内容が記録されていました。手持ちの玄箱の起動の様子を観察してみましたが、このような異常値を警告するログが残っていませんでした。どうもハードウェア・クロックの方も異常が発生しているようでした。
# dmesg | grep rtc
[    2.026847] rtc-rs5c372 0-0032: rs5c372a found, 24hr, driver version 0.6
[    2.042284] rtc (null): invalid alarm value: 2016-4-5 45:85:0
[    2.052321] rtc-rs5c372 0-0032: rtc core: registered rtc-rs5c372 as rtc0
[    2.100818] rtc-rs5c372 0-0032: setting system clock to 2016-04-05 16:40:11 UTC (1459874411)

対策(その1)クロック周りの再ハンダ付け

二箇所にある水晶振動子の周囲の部品の再ハンダ付けを行ってみました。しかしクロック異常は改善されませんでした。

システム・クロック用の水晶振動子(X4)
ハードウェア・クロック用の水晶振動子(X2)
水晶振動子の脇にクロック IC の RS5C372a (IC7)があります。

対策(その2)RS5C372a の交換

ハードウェア・クロックの RS5C372a を交換しようと思いました。手持ちのジャンク基盤を探してみましたが、RS5C372a を見つけることができませんでした。32.768KHz の水晶振動子は発見することができるのですが、どうも種類の違うクロック IC を使用しているようでした。そのため RS5C372a の交換をすることができませんでした。

対策(その3)フラッシュメモリの書き直し

この HD-HLAN のボードのフラッシュメモリは、玄箱(初代)の内容に書き換えています。念の為 HD-HLAN のデータへ書き戻してみました。しかし二種類のクロック異常は改善されませんでした。

対策(その4)ボードの交換

クロック異常の発生していない玄箱(初代)のボードと入れ換えてみることとしました。玄箱(初代)には、USB ポートが背面の一つしかありません。そこで前面のポートを追加することとしました。ネット上の情報では USB コネクタをハンダ付けすればすぐに使えるとのことだったので、他の無線 LAN ルータから USB コネクタを取り外して、移植しました。

左側が移植元の USB ポートです。
右側が玄箱(初代)の前方の USB ポートのランドです。
玄箱(初代)の前面ポートへハンダ付けした USB コネクタです。

さらに CF カードからハードディスクへ

対策(その4)のボード交換でクロック異常はもちろんなくなりました。再度元通りにして組み立てようかと考えていましたが、意外なほど CF への書き込み(SWAP 領域など)が発生していました。負荷の大きな motion を稼働させているときに顕著でした。そこで CF カードでの運用を諦めて、ハードディスクへ戻して運用することとしました。単純に dd コマンドで CF カードの内容を単純コピーをして終了しました。motion で撮影したデータは自宅サーバの方へ保存するように設定していることもあって、もともと大きなハードディスクは必要ありませんでした。

玄箱(初代)で使用したハードディスクへ CF カードのデータをイメージ・コピーしました。

結果

この記事を書いているときには、HD-HLAN を起動させて5時間ほど経過していますが、起動時に一回だけ ntpdate コマンドで自宅サーバの ntpd に合わせた時刻が、一秒以下の精度で維持されています。もちろん一分間隔で cron で強制的に時刻を合わせていたことも中止させています。これで当たり前の状況にようやくなりました(笑)。

0 件のコメント:

コメントを投稿