[Armadillo:09299] Re: Armadillo840でのハードウェアウォッチドッグの利用について

伊藤透 email@hidden
2013年 11月 12日 (火) 18:19:35 JST


伊藤です。

> ハードウェアウォッチドックタイマを利用するにはどうすればよいのでしょうか?

ハードウェアウォッチドッグタイマーは、Hermit-At(ブートローダー)と
Linuxカーネルで使用されています。もしハードウェアウォッチドッグタイマーを
使用するには、以下のような対応が考えられます。

- Hermit-Atのウォッチドッグタイマー無効化、もしくはソースの変更
- Linuxカーネルのドライバーを修正

以下、使用方法の詳細です。

■ Hermit-Atのソースの変更
Hermit-Atでは、src/target/driver/rma1_wdt.cファイルにて
ウォッチドッグタイマーの設定等をしています。必要であれば、
このソースを変更してください。

■ Hermit-Atのウォッチドッグタイマー無効化
Hermit-Atで、ハードウェアウォッチドッグタイマーを使用しないように
するには、以下のコンフィギュレーションを変更してください。

====================================
Hermit-At Configuration
Target Configurations  --->
  Support Devices  --->
    [ ]   Support for RMA1 Watchdog Timer (RWDT)    ← 無効化
====================================
Hermit-Atのビルドは、「Armadillo-840 製品マニュアル」の
「ブートローダーをビルドする」をご参照ください。

■ Linuxカーネルのドライバーを修正
Linuxカーネルのハードウェアウォッチドッグドライバーのソースは、
drivers/watchdog/sh_mobile_wdt.cファイルになります。
ユーザーランドからハードウェアウォッチドッグタイマーを使用するには
このドライバーを修正する必要があるかと思います。

> システムを再起動する要請があって、ハードウェアウォッチドックタイマの機能
> を使ってリセットを行おうと検討しております。

上記の用途ですと、ソフトウェアウォッチドッグタイマーでも
実現可能かと思いますが、いかがでしょうか?

ハードウェアウォッチドッグタイマーは、Linuxカーネルが正常に
動作していない場合に再起動することを狙いとして使用しています。
そのため、ユーザーランドから制御することをあまり想定しておらず、
前述の通りにハードウェアウォッチドッグタイマーを
使用しようとすると手間がかかります。

したがいまして、アプリケーションが正常に動作しない時に
再起動をしたい場合等は、簡単に使えるソフトウェアウォッチドッグタイマーを
おすすめします。

ソフトウェアウォッチドッグタイマーは、以下の手順で使用できます。

1. アプリケーションプログラムで、/dev/watchdogをopen()すると、
   ソフトウェアウォッチドッグタイマーが有効になります。
2. 以後、/dev/watchdogに任意の文字(大文字のV以外)をwrite()すると、
   ソフトウェアウォッチドッグタイマーがキックされます。
3. 一定時間(標準では60秒間)ソフトウェアウォッチドッグタイマーが
   キックされず、タイムアウトした場合、システムがリブートします。

以下のような手順で、動作確認ができます。
(※: ソフトウェアウォッチドッグを有効にしたLinuxカーネルをお使いください)
==============================================
[email@hidden (ttySC2) ~]# echo "" > /dev/watchdog
# ソフトウェアウォッチドッグタイマーを有効化
watchdog: Software Watchdog: watchdog did not stop!
[email@hidden (ttySC2) ~]# softdog: Initiating system reboot
# 60秒後に自動的に再起動がかかる
Hermit-At v3.2.3 (Armadillo-840/nor) compiled at 15:35:03, Jul 03 2013
hermit>
==============================================

一度有効化したソフトウェアウォッチドッグタイマーを、
無効化するには大文字のVを/dev/watchdogにwrite()します。

以下のような手順で、動作確認ができます。
(※: ソフトウェアウォッチドッグを有効にしたLinuxカーネルをお使いください)
==============================================
[email@hidden (ttySC2) ~]# echo "" > /dev/watchdog
# ソフトウェアウォッチドッグタイマーを有効化
watchdog: Software Watchdog: watchdog did not stop!
[email@hidden (ttySC2) ~]# echo "V" > /dev/watchdog
# ソフトウェアウォッチドッグタイマーを無効化
[email@hidden (ttySC2) ~]#
# 60秒経過後も再起動しない
==============================================

以上、ご参考になりましたら幸いです。

2013年11月7日 13:12 柳沢智之 <email@hidden>:
> 柳沢です。
> 回答ありがとうございます。
>
>> ハードウェアウォッチドッグタイマーは、どのような用途で 使用しようとし
>> ていますか?
> システムを再起動する要請があって、ハードウェアウォッチドックタイマの機能
> を使ってリセットを行おうと検討しております。
>
>> /dev/watchdogは、カーネルコンフィギュレーションでソフトウェア ウォッチ
>> ドッグタイマーを有効にすることで使用できます。
> /dev/watchdogはソフトウェアウォッチドックを利用するためのインターフェー
> スということでしょうか。
> ハードウェアウォッチドックタイマを利用するにはどうすればよいのでしょうか?
>
>
> (2013/11/06 11:51), 伊藤透 wrote:
>> 伊藤です。
>>
>>> Armadillo840でハードウェアウォッチドックを利用したいのですが、
>>> /dev/watchdogが存在しないため利用できません。
>> Armadillo-840はデフォルトでハードウェアウォッチドッグタイマーが
>> 有効になっています。
>>
>> /dev/watchdogは、カーネルコンフィギュレーションでソフトウェア
>> ウォッチドッグタイマーを有効にすることで使用できます。
>>
>> ソフトウェアウォッチドッグタイマーは、以下のカーネルコンフィギュレーションで
>> 有効にできます。
>> ==========================================
>> Linux/arm 3.4-at5 Kernel Configuration
>>   Device Drivers  --->
>>     [*] Watchdog Timer Support  --->
>>       <*>   Software watchdog                 ← チェックを入れる
>> ==========================================
>>
>> ハードウェアウォッチドッグタイマーは、どのような用途で
>> 使用しようとしていますか?
>>
>> 2013年11月2日 21:30 柳沢智之 <email@hidden>:
>>> 初めまして。柳沢と申します。
>>>
>>> Armadillo840でハードウェアウォッチドックを利用したいのですが、
>>> /dev/watchdogが存在しないため利用できません。
>>>
>>> make menuconfigでWatchdog Timer Supportを下記のように設定してビルドしな
>>> おしてみた のですが、
>>> それでも/dev/watchdogが存在しないようです。
>>>
>>> │ │ --- Watchdog Timer Support │ │
>>> │ │ -*- WatchDog Timer Driver Core │ │
>>> │ │ [ ] Disable watchdog shutdown on close │ │
>>> │ │ *** Watchdog Device Drivers *** │ │
>>> │ │ < > Software watchdog │ │
>>> │ │ <*> Synopsys DesignWare watchdog │ │
>>> │ │ <*> Max63xx watchdog │ │
>>> │ │ <*> SH-Mobile watchdog │ │
>>> │ │ *** USB-based Watchdog Cards *** │ │
>>> │ │ < > Berkshire Products USB-PC Watchdog │ │
>>>
>>> Armadillo840でハードウェアウォッチドックを利用するにはどうしたらよいので
>>> しょうか?
>>> それともArmadillo840ではハードウェアウォッチドックは利用できないのでしょ
>>> うか?
>>>
>>> ご存知の方がおられましたら、教えていただけないでしょうか。
>>> よろしくお願いします。
>>> _______________________________________________
>>> armadillo mailing list
>>> email@hidden
>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>>
>>
>>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>



-- 
______________________________________

株式会社アットマークテクノ
開発部
伊藤 透(Toru Ito)

TEL: 011-207-6550 FAX: 011-207-6570
URL: http://www.atmark-techno.com/
E-mail: email@hidden
______________________________________




armadillo メーリングリストの案内