公開コメントは嫌だけどメールならという人はこちら へ
今日まで、3日間の都内出張の帰りに秋葉に通いつめ(決まって雨になったので、先に書いたキーボード探しはしませんでした)。 昼間は研究会、夕方パーツ集め、深夜にハンダ付け。 いろいろ試行錯誤した結果、やっと完成。 秋葉がもっと近かったなら、いや、必要なパーツ類が簡単に手に入るならいいのに。
製作途中、¥100ショップで買っていた、虫眼鏡が大変役に立った。細かい作業は目が追い付かない(昼間研究会ではプロジェクタを見つづけているためか、夜になると視力がものすごく落ちてしまっているようだ)。
はてさて、ソフトウェアと違ってハードウェアの修正は面倒だ。 ちゃんと動くようになるものなのか、作業中に、何度か挫けそうになる。 が、もともと無いものを作るから、動くか動かないかわからないものだからこそ・・・ エラーを予想し修正して少しずつ完成に近付いていく過程はやはり面白い。
そもそもおいらは、コンピュータは、小学校の時のハードウェア製作を通して入った人種だからな(その時は根をつめすぎて熱をだし、親から叱られたけど)。 あの時は、ど田舎の実家で、あんな貧弱な道具環境でよくやっていたと思う。昔話はこの位で。
watchdog 回路の1枚め。1枚あたりの費用は¥1000前後。 保険の1つとして考えれば、まぁ、妥当だろう。 これをあと3枚作る予定。
回路構成についてのアイディアは以前から持っていたもの。 「稼働中のサーバなら HDD アクセスは頻繁に行われる」 -> 「HDD のアクセスが一定時間無ければリセットon」 というもの。安直でしょう。 結局回路は次の様になった。タイマーは安直に 555 でもよかったか。
[HDD LED] -> フォトカプラ -> 4013(D-FF) -> 4060(counter) -> 4013(D-FF) -> リレー -> [RESET] エッジ判定(パルス化) 10分測る パルス化
HDD LED のエッジ判定をしているから、LEDが点いたままハングアップしても正しく動作する。 (回路仕様)だが、HDDのアクセスが無ければ、 BIOS設定中だろうが、 memtest86を実行中だろうが、 およそ 10分で リセットが押されてしまう。 Linux は fs のアップデートや cron が動いている関係上、1分以上 HDD のアクセスが起きないことはない( Windows ででも HDD は頻繁にアクセスがあり 1日 テストしてみたが、誤動作はなかった )。 この回路の応用は他にもある。例えば、電源の手配を工夫し、接続先を power button にすれば、電源回復後およそ10分で自動的に電源 on を発行させることができる。BIOS 設定に auto power on の機能が無い PC に対して有効だ。
回路図は鉛筆書き。公開については時間があって気が向いてたら時にでも。
先に PC トラブルについて書いたが、 それについて書いた直後に PC が止まってしまったのだ。 こんな時、経験上、メモリアクセスや CPU クロックなどのタイミングを調整すると改善することが多い。 BIOS で 5% ほど調整し、様子をみる。
一方で、保険としてハードウェア回路の watchdog の必要性を改めて感じたのだ。 念のため Linux の software watchdog (softdog) を設定していたのだが、これは全く役に立たなかった。 ということで、夏休みの工作も兼ねて作成中ということなのだ。
ソフトウェア的なハングアップは、Windows 機の方が頻度が高いが、該当機の重要性は低い。 ハードウェア的な安定を得た Linux 機はほとんど止まること無く運用できている。 だが止まったときのダメージは大きい。 ただ、停止する原因が無数にある以上、リセットが発行されたからといってシステムが100%復旧できるとは限らない。 だから、保険(の1つ)なのだ。
Prev | 2007/9 | Next | ||||
---|---|---|---|---|---|---|
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
Last-modified: Sat, 29 Sep 2007 03:25:36 JST
8,686/2,944(1)
[dynamic,jconv:jcode,cache:on]
powered by tds-1.01-beta3(1.01-beta3-EGAMIX02)