Armadilloフォーラム

固定IPシムを使用したsleep中における消費電力の増大について

m-h

2025年2月12日 17時00分

固定IPシムを使用した間欠運転における消費電力の増大について

現在、固定IPシムを使用し、間欠運転を行っています。
特定のIPからのHTTP通信のみを受け付ける運用を検討しており、ファイアウォールは無効化し、iptablesを使用してアクセス制限を設定しています。

しかし、iptablesで制限(DROP)を行っているにもかかわらず、スリープ中でもLTEモデムがパケットを受信しているようです。
armadillo自体は起床していないものの、頻繁なパケット受信により消費電力が増大してしまっています。

この事象を解消するための対策や設定方法があれば、ご教示いただけますでしょうか?

コメント

at_dominique.m…

2025年2月13日 10時32分

m-hさん

お世話になっています、
マルティネです。

> しかし、iptablesで制限(DROP)を行っているにもかかわらず、スリープ中でもLTEモデムがパケットを受信しているようです。

はい、こちらの現象は正常です。
iptables の設定は手元の設定だけで、外側からパケットを受信した後に処理を続くかどうかの判断にすぎないですので、外からパケットが送信されると仕方なく受信まで行ってしまいます。

> armadillo自体は起床していないものの、頻繁なパケット受信により消費電力が増大してしまっています。

そうですね、確かに消費電力の面では不便ですね。

考えれる大作は大きく別けて三つあります:
1/ できれば一番楽だと思いますが、フィルターリングを iptables ではなくプロバイダー側で行えばモバイル通信を行う前にパケットを止めることはできます。
すみません、このあたりには詳しくないのでプロバイダーさんに聞いていただければ幸いです。できるとできない会社もいると思いますし、自社のvpn等経由で接続してその vpn のところで firewall を設定できると思いますが手間ですね。

2/ ややっこしいですしやりづらいのであまり推奨しませんが、sleep前に頑張って tcp の接続を切断させる。
特定の相手と http 通信しているだけのであれば、sleep前に RST パケットをおくれば接続が切断され、それ以降のパケットが送信されなくなります。
結果としては受信もほぼなくなるはずです。

3/ sleep前にモデムを「機内モード」に設定しておくことも可能ですが、起床後に接続するまでの時間が増えますのでその分の電力も考えないといけません。
また、申し訳ないですが標準で簡単にそういう実装できるようにはできてませんので、こちらの方法ですとだいぶ手を加えないといけません。
機内モードの入り方は案内できますので、必要でしたら Armadillo IoT A6E のモデルを教えてください。

よろしくお願いします。

マルティネ様

ご連絡ありがとうございます。

> 3/ sleep前にモデムを「機内モード」に設定しておくことも可能ですが、起床後に接続するまでの時間が増えますのでその分の電力も考えないといけません。
> また、申し訳ないですが標準で簡単にそういう実装できるようにはできてませんので、こちらの方法ですとだいぶ手を加えないといけません。
> 機内モードの入り方は案内できますので、必要でしたら Armadillo IoT A6E のモデルを教えてください。

上記の方法で試してみようと思いますので、お手数ですがご教授いただけますでしょうか。
armadillo Iot Cat.1

また、マニュアルに記載されている wwan-force-restart や wwan-poweroff コマンドを使用し、スリープ前に電源をオフにし、起床後に電源をオンにする方法も検討しています。この方法について、どのようにお考えでしょうか?

at_dominique.m…

2025年2月13日 11時08分

m-hさん

逆順番で回答します。

> また、マニュアルに記載されている wwan-force-restart や wwan-poweroff コマンドを使用し、スリープ前に電源をオフにし、起床後に電源をオンにする方法も検討しています。この方法について、どのようにお考えでしょうか?

wwan-poweroff で確かにモデムの電源を落としますので sleep時の消費電力だけで考えたら一番になりそうですが、復帰時間もまた伸びますので試してみてください。(すみませんモバイル回線によって差は大きいので、参考値はあまり提供できない状態です)

wwan-force-restart ですと機内モードのリスタートもできますが、機内モードに入ってから10秒待って自動的に復帰しますのでそこからコマンドを取得つもりでした。

> > 3/ sleep前にモデムを「機内モード」に設定しておくことも可能ですが、起床後に接続するまでの時間が増えますのでその分の電力も考えないといけません。
> > また、申し訳ないですが標準で簡単にそういう実装できるようにはできてませんので、こちらの方法ですとだいぶ手を加えないといけません。
> > 機内モードの入り方は案内できますので、必要でしたら Armadillo IoT A6E のモデルを教えてください。
>
> 上記の方法で試してみようと思いますので、お手数ですがご教授いただけますでしょうか。
> armadillo Iot Cat.1

了解しました。
Cat.1 ですと、wwan-force-restart の a6e_els31_wwan_restart を参考できます。

機内モード有効化

        nmcli con down gsm-ttyCommModem
        send-at /dev/ttymxc3 AT+CFUN=0

機内モード無効化

        send-at /dev/ttymxc3 AT+CFUN=1
        # need some interval after AT+CFUN=1 on ELS31
        sleep 10
        nmcli con up gsm-ttyCommModem

また、wwan-poweroff で停止した後の復帰方法も同じ wwan-force-restart の「a6e_els31_wwan_force_restart」を試してください。

どちらの方法でも復帰時間は何もしないより大幅に変わりますので、手元で何回か試して検討してください。

よろしくお願いします。

マルティネ様

ご回答いただきありがとうございます。
上記の方法でsleep中にパケット受信しない事確認いたしました。
起床後にLTE復帰までに時間を要しますが、そこ含めて検討していこうと思います