sas_okuyama
2015年9月1日 18時10分
お世話になります、okuyamaと申します。
以前、フォーラム内でArmadillo-400 シリーズで
スリープ機能を実装されている文言があり、
Armadillo-440でrtcwakeコマンドを実行してみましたが、
以下のメッセージが表示します。
[root@armadillo440-0 (ttymxc1)]# rtcwake -m mem -s 3600
-ash: rtcwake: not found
上記のメッセージから、rtcwakeコマンドがないとあるので、
なにか設定を行えばよいようにも思いますが、
解決方法について、
誰かわかる方がいらっしゃいましたら、
ご教授願いたいと思います。
何卒よろしくお願いいたします。
コメント
sas_okuyama
at_yuma.arakawa さまへ
お世話になります、okuyamaです。
ご返答ありがとうございます。
> 「Armadilloをスリープ状態へ移行させ、アラーム割り込みで復帰させたい」
> という用途であれば、sysfs経由で実現できます。
>
> ■ 操作例: アラーム割り込みを60秒後に設定し、スリープ状態(suspend-to-RAM)へ移行
> [Armadillo]# echo +60 > /sys/class/rtc/rtc0/wakealarm
> [Armadillo]# echo mem > /sys/power/state
>
> 詳しくは以下を参照してください。
> - 9.20.1. スリープ機能
> http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…
> - 9.12.2. アラーム割り込み
> http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…
返答内容を確認いたしました。
確認結果として、
1.スリープ状態への移行:OK
2.アラーム割り込みで復帰:NG
でした。
ソフトウェアマニュアルp.96の
「図9.2アラーム割り込み発生時刻の設定」に
記載されてある内容でも確認しましたが、
/proc/interruptsコマンドの応答がない状況です。
また、今回ご教授いただいたコマンドの実用例を検索したところ、
以下のサイトがありました。
http://lists.atmark-techno.com/pipermail/armadillo/2012-February/007886…
そこに記載されてある内容から、
ハードの改造が必要であることがわかりましたので、
PD1をCON9_2ピンに接続しましたが、アラーム割り込み1の割り込みは以前として発生しません。
すみませんが、以下のご質問をさせていただきます。
(質問1)
カーネルコンフィギュレーションで
ARMADILLO400_RTC_ALM_INT_CON9_2
と
RTC_ALM_INT_WAKE_SRC_SELECT
を有効するとありますが、
ARMADILLO400_RTC_ALM_INT_CON9_2は、
「System Type -->」
「Freescale MXC Implementations --> 」
「MX25 Options -->」
「Armadillo-400 Board options -->」
「Enable RTC alarm interrupt at CON9_2」 ← この箇所を有効にしました。
RTC_ALM_INT_WAKE_SRC_SELECTの設定箇所を探しましたが、
わかりませんでした。
ここの設定に関してはデフォルトで「y」でしたので、気にはしていなかったのですが、
設定されていない可能性もあるので、確認したいのですが、設定箇所がわかりません。
誰かわかる方がいらっしゃいましたら、
ご教授願いたいと思います。
何卒よろしくお願いいたします。
y.nakamura
中村です。
これが原因かわかりませんが(推測ですが)・・・
> 2.アラーム割り込みで復帰:NG
...
> http://lists.atmark-techno.com/pipermail/armadillo/2012-February/007886…
>
> そこに記載されてある内容から、
> ハードの改造が必要であることがわかりましたので、
> PD1をCON9_2ピンに接続しましたが、アラーム割り込み1の割り込みは以前として発生しません。
ということは、RTCは、Armadillo-440の液晶ボードのものではなくて
オプションのRTCモジュールを使っているということですよね。
440の液晶関連はどうなっていますか?
液晶のタッチパネルによるウェイクアップが有効になっていないとなると(420と同じだとすると)、
デフォルトでは、スリープ時にRTCオプションモジュールの電源(3.3V_IO)が落ちます。
これを回避するには(420の場合の回避方法です)、次のようにしてスリープ前に、
たとえば、シリアルインターフェース2によるウェイクアップを有効にしてあげれば、
スリープしてもRTCオプションモジュールの電源が切れなくなります。
# echo enabled > /sys/devices/platform/mxcintuart.2/tty/ttymxc2/power/wakeup
このあたりのことは、マニュアルの
http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…
の下の方の
9.20.1.1. 外部デバイスへの電源供給について
です。
> RTC_ALM_INT_WAKE_SRC_SELECTの設定箇所を探しましたが、
> わかりませんでした。
昔の自分のメモでは、ここのところは、
ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT=y
となっていました(マニュアルの間違いだろう、と勝手に判断して、ですが)。
linux-xxxx/arch/arm/mach-mx25/Kconfig にある次の部分が
これだと思います。
config ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT bool "RTC alarm interrupt at CON9_2" default y depends on ARMADILLO400_CON9_2_RTC_ALM_INT
--
なかむら
sas_okuyama
中村さまへ
お世話になります、okuyamaです。
ご回答ありがとうございます。
> # echo enabled > /sys/devices/platform/mxcintuart.2/tty/ttymxc2/power/wakeup
上記コマンドを追加したところ、RTCからのアラーム割り込みが発生することを確認しました。
> ということは、RTCは、Armadillo-440の液晶ボードのものではなくて
> オプションのRTCモジュールを使っているということですよね。
はい、そのとおりです。
RTCモジュールは内蔵電池で動作しているので、
Armadillo-440ボードの電源に左右されないものと思ってました…
> 昔の自分のメモでは、ここのところは、
> ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT=y
> となっていました(マニュアルの間違いだろう、と勝手に判断して、ですが)。
>
> linux-xxxx/arch/arm/mach-mx25/Kconfig にある次の部分が
> これだと思います。
>
> config ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT > bool "RTC alarm interrupt at CON9_2" > default y > depends on ARMADILLO400_CON9_2_RTC_ALM_INT >
この箇所は同じでした。
ようやく、アラーム割り込みで復帰が動作し始めたところなので、
もう少し、動作確認を行い、なにかわかったことがあれば、
UPいたします。
これからも、よろしくお願いいたします。
> 中村です。
>
> これが原因かわかりませんが(推測ですが)・・・
>
> > 2.アラーム割り込みで復帰:NG
> ...
> > http://lists.atmark-techno.com/pipermail/armadillo/2012-February/007886…
> >
> > そこに記載されてある内容から、
> > ハードの改造が必要であることがわかりましたので、
> > PD1をCON9_2ピンに接続しましたが、アラーム割り込み1の割り込みは以前として発生しません。
>
> ということは、RTCは、Armadillo-440の液晶ボードのものではなくて
> オプションのRTCモジュールを使っているということですよね。
>
> 440の液晶関連はどうなっていますか?
> 液晶のタッチパネルによるウェイクアップが有効になっていないとなると(420と同じだとすると)、
> デフォルトでは、スリープ時にRTCオプションモジュールの電源(3.3V_IO)が落ちます。
> これを回避するには(420の場合の回避方法です)、次のようにしてスリープ前に、
> たとえば、シリアルインターフェース2によるウェイクアップを有効にしてあげれば、
> スリープしてもRTCオプションモジュールの電源が切れなくなります。
> # echo enabled > /sys/devices/platform/mxcintuart.2/tty/ttymxc2/power/wakeup
>
> このあたりのことは、マニュアルの
> http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…
> の下の方の
> 9.20.1.1. 外部デバイスへの電源供給について
> です。
>
>
> > RTC_ALM_INT_WAKE_SRC_SELECTの設定箇所を探しましたが、
> > わかりませんでした。
>
> 昔の自分のメモでは、ここのところは、
> ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT=y
> となっていました(マニュアルの間違いだろう、と勝手に判断して、ですが)。
>
> linux-xxxx/arch/arm/mach-mx25/Kconfig にある次の部分が
> これだと思います。
>
> config ARMADILLO400_RTC_ALM_INT_WAKE_SRC_SELECT > bool "RTC alarm interrupt at CON9_2" > default y > depends on ARMADILLO400_CON9_2_RTC_ALM_INT >
>
> --
> なかむら
>
y.nakamura
中村です。
> 上記コマンドを追加したところ、RTCからのアラーム割り込みが発生することを確認しました。
解決できたようですが、
> RTCモジュールは内蔵電池で動作しているので、
> Armadillo-440ボードの電源に左右されないものと思ってました…
これ、気になります。
私もRTCオプションモジュールにバッテリをつないでいれば
(モジュールのCON2につなぐCR2032などですよね?)、
+3.3V_IOが切れても大丈夫だと思っていました。
案件の仕様としてバッテリをつなぐことができなかったので
試したことはないのですが、設計時に「バッテリをつなげば
+3.3V_IOをOFFにできるのになぁ」と。
--
なかむら
izawa
y.nakamura
at_yuma.arakawa
2015年9月9日 15時59分
> Armadillo-440でrtcwakeコマンドを実行してみましたが、
申し訳ありません、rtcwakeはA440用のAtmark Distに含まれておりません。
「Armadilloをスリープ状態へ移行させ、アラーム割り込みで復帰させたい」
という用途であれば、sysfs経由で実現できます。
■ 操作例: アラーム割り込みを60秒後に設定し、スリープ状態(suspend-to-RAM)へ移行
[Armadillo]# echo +60 > /sys/class/rtc/rtc0/wakealarm
[Armadillo]# echo mem > /sys/power/state
詳しくは以下を参照してください。
- 9.20.1. スリープ機能
http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…
- 9.12.2. アラーム割り込み
http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…