s.kurachi
2024年1月17日 17時53分
お世話になっております。
購入したArmadillo-IoT G4 LANモデル (型番: AGX4500-C00D0)にて、hwclockコマンドが使用できなかったので相談いたします。
購入してから初めて起動した状態で、"hwclock"コマンドを入力したところ以下のようなエラーとなってしまいました。
armadillo:~# hwclock hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument
init.dから手動でhwclockサービスを実行したところ、次のようになり起動しません。
armadillo:~# /etc/init.d/hwclock start modules | * Loading modules ... [ ok ] hwclock | * Setting system clock using the hardware clock [UTC] ...hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument hwclock | * Failed to set the system clock hwclock | [ !! ]
また、"dmesg"コマンドで確認したところ、次のようなRTCに関するメッセージが出力されています。
[ 22.988313] rtc-rv8803 1-0032: Voltage low, data is invalid. [ 22.988925] rtc-rv8803 1-0032: Voltage low, data is invalid. [ 65.777973] rtc-rv8803 1-0032: Voltage low, data is invalid. [ 65.778591] rtc-rv8803 1-0032: Voltage low, data is invalid.
CON13にコイン電池を入れて試してみましたが、同様でした。
コイン電池の電圧値が3.2V出力されていることは確認しています。
なお、今回AGX4500-C00D0を合計3つ購入したのですが、1台は初回起動時から、電池を入れなくてもhwclockコマンドが使用できていました。
残りの2台は上述のような状態でした。
試しに、hwclockが実行できるArmadilloからインストールディスクを作成し、他2台にイメージを書きこみましたが、変わらず上述のような状態でした。
本件の原因についてご教示いただけますでしょうか。
コメント
s.kurachi
at_kojiro.yamada
2024年1月17日 20時17分
> [ 65.778591] rtc-rv8803 1-0032: Voltage low, data is invalid.
コイン電池をつけない状態で Armadillo-IoT G4 を使用している時に、電源を切断した後のちょうど良いタイミングで電源を入れると、その状態になる場合があります。
もし、RTCの異常でなければ、以下のいずれかを行うことで RTC から時刻を取得できるようになるはずです。
- コイン電池を取り外し、ACアダプタを抜いて長時間待った後、電源を入れる
- Armadilloをインターネットに接続してしばらく待つ(自動的に、インターネットから時刻が取得され設定されます)
- 手動でRTCに時刻を設定する
(RTCの異常ではない前提で説明しますが)この現象は、RTCの低電圧検出機能が誤作動してしまうことで発生します。
低電圧検出機能は、忘れたかもしれない時刻を使わないようにするためのものです。
Armadilloの電源を切断すると、コンデンサに貯まった電荷が徐々にRTCに供給され電圧が下がっていくので、それを「コイン電池が切れかけている」とRTCが誤解してしまうのです。
この状態ではRTCから時刻を取得することはできませんがRTCに時刻を設定することはでき、時刻の設定後は時刻を取得できるようになります。