端末でこれを行いましたsudo cat /dev/char/10:130
。uevent
名前はwatchdogで、カーネルからwatchdog did not stop !
数秒後に電源が切れました。なぜ?というメッセージを出力します。
一体私が何をしているの?
私はRaspberry 3b +でRaspbian Liteを実行しています。
答え1
/dev/char/10:130
メジャーデバイス番号が10番、マイナーデバイス番号が130番のキャラクターデバイスです。非埋め込みLinuxシステムでは、より一般的な名前はです/dev/watchdog
。
監視デバイスの電源を入れると、タイマー(通常はハードウェアレベルのタイマー)が計算を開始します。監視デバイスを開くプログラムは、システムがまだ正常に動作していることを示すために、開いているデバイスに定期的に何か(実際には何でも)を書く必要があります。これにより、ハードウェアタイマーがリセットされ、再びゼロにカウントされ始めます。
たとえば、システムの停止または過負荷のためにこれが発生しない場合、ハードウェアタイマーはゼロに達し、監視メカニズムはハードウェアレベルリセット信号を有効にしてハード再起動を実行します。それは次のとおりです。デッドスイッチオペレーティングシステムおよび/またはシステムで実行されている他のソフトウェアと一緒に使用されます。
監視デバイスを管理するソフトウェアを停止する必要がある場合、一部の監視デバイスドライバはファイルを閉じる前に監視デバイスに特定の文字を送信する必要があります。これにより、カーネルの監視ドライバが監視タイマーを無効にする必要があります。あなたはsudo cat /dev/char/10:130
これをしませんでした。
問題は、一部のハードウェア監視タイマーがアクティブになったら、再起動しないと停止できないことです。カーネルがCONFIG_WATCHDOG_NOWAYOUTオプションでコンパイルされると、ドライバは、ウォッチドッグが有効になっているときにもウォッチドッグマネージャプロセスが常に存在する必要があるため、ウォッチドッグの無効化要求が拒否されると予想します。