Armadilloフォーラム

LTEモジュールのFirewall無効化について

akira.shimomura

2019年9月3日 16時20分

https://users.atmark-techno.com/armadillo-iot-g3l/software-linux-3-14

に記載されているインストールディスクイメージをダウンロードし、このイメージファイルから
Armadillo-IoT G3Lをセットアップし、nmcliによるLTE設定、および
/etc/connection-recover/gsm-ttyACM0_connection-recover.conf
のPING_DEST_IPを通信できるIPアドレスに変更して再起動後、

https://armadillo.atmark-techno.com/howto/armadillo-iot-g3l-lte-firewall

に記載の方法2でLTEモジュールのFirewall無効化のコマンドを実行すると

root@armadillo:~# els31-firewall-disable
error: els-firewall-disable
root@armadillo:~# els31-firewall-get-status
Error: No modem response

のようにエラーとなり、LTEモジュールのFirewall無効化ができません。
(PING_DEST_IPに設定したアドレスにはPingは通る状態です)

LTEモジュールのFirewall無効化を行えるようにするには、他に何か設定が必要なのでしょうか?

また、LTEモジュールのFirewall無効化のコマンドが公開された際に使用していたカーネル(v3.14-x1-at17)
では、特に追加設定することなく使用できていたコマンドでしたが、v3.14-x1-at22 では
追加設定が必要な理由はありますでしょうか?

コメント

akira.shimomura

2019年9月4日 10時13分

補足です。

> https://users.atmark-techno.com/armadillo-iot-g3l/software-linux-3-14
>
> に記載されているインストールディスクイメージをダウンロードし、このイメージファイルから
使用したイメージファイルのバージョンは「v20190830」です。
https://users.atmark-techno.com/files/downloads/armadillo-iot-g3l/image…
(URLだとバージョンが不明でしたので)

> に記載の方法2でLTEモジュールのFirewall無効化のコマンドを実行すると
> ・・・
> のようにエラーとなり、LTEモジュールのFirewall無効化ができません。
その後、電源OFF→ONで、Firewall無効化コマンドが実行できるようになりましたが、
そこから reboot すると、Firewall無効化コマンドの実行ができなくなります。

reboot で、シャットダウンしていく際、もしくは起動してくる際に何かの処理が
不足しているのではないでしょうか?

akira.shimomura

2019年9月11日 9時48分

アットマークテクノ様

お世話になっております。

本件について、1週間ほど経過いたしましたが、何か進展などはございませんでしょうか?

at_mitsuhiro.yoshida

2019年9月11日 11時04分

吉田です。

こちらでも同一の環境で動作確認したところ
https://armadillo.atmark-techno.com/howto/armadillo-iot-g3l-lte-firewall
の方法2で動作いたしました。

動作環境の確認ですが、インターネットに繋がっている環境でしょうか?

ツール内でping導通の確認を行っておりますので、
インターネットに接続していないとエラーになります。

ご確認お願いします。

akira.shimomura

2019年9月11日 11時18分

吉田様

ご回答ありがとうございます。

動作環境については、閉域網となりますので、インターネット接続はできません。

> ツール内でping導通の確認を行っておりますので、
とのことですが、

els31-firewall-disable / els31-firewall-get-status

でPing確認をおこなっているのでしょうか?

であれば、カーネル更新前(v3.14-x1-at17を使用)では問題なく閉域網でも上記
コマンドは実行できていました。
なぜ、v3.14-x1-at22で実行できなくなってしまったのでしょうか?

akira.shimomura

2019年9月11日 11時40分

吉田様

> こちらでも同一の環境で動作確認したところ
https://armadillo.atmark-techno.com/howto/armadillo-iot-g3l-lte-firewall
> の方法2で動作いたしました。
動作したとのことですが、こちらではまだ動作できません。

下記の手順で行っているのですが、何か間違っている操作などありますでしょうか?

1.https://users.atmark-techno.com/files/downloads/armadillo-iot-g3l/image…
  をダウンロードしてSDカードに書き込み。
2.SDカード・ジャンパーピンをG3Lに取り付けて、G3L電源ON。
3.G3Lのインストール完了後、電源OFFし、SDカード・ジャンパーピン取り外し。
4.G3Lの電源ON。
5.nmcliを使用してLTE設定。
6./etc/connection-recover/gsm-ttyACM0_connection-recover.conf
  のPING_DEST_IPを通信できるIPアドレスに変更。
7.G3Lを再起動(rebootコマンド実行)。
8.LTE接続後、6でPING_DEST_IPに指定したIPアドレスにPing成功することを確認。
9.els31-firewall-disable / els31-firewall-get-status を実行するも、エラーになる。

at_mitsuhiro.yoshida

2019年9月11日 13時27分

吉田です。

rebootを繰り返していたところ、こちらでも現象が再現しました。

再現した際手順9の後に、
wwan-force-restart
を実行した後に再度
els31-firewall-disable / els31-firewall-get-status
を実行すると動作しましたので、お手数ですが試して頂けますでしょうか?

akira.shimomura

2019年9月11日 14時15分

吉田様

ご回答ありがとうございます。

ご提示頂いた方法で、els31-firewall-disable / els31-firewall-get-status の
実行で動作することができました。

ただこの方法ですと、一度接続したLTE回線を切断しないといけないので、可能であれば
LTEを切断しないで、wwan-force-restart相当のことができる方法をご教示頂きたい
と思います。

akira.shimomura

2019年9月20日 9時33分

アットマークテクノ様

お世話になっております。
本件について、しばらく経過していますが、状況いかがでしょうか?

rebootコマンドによる再起動後、
els31-firewall-get-status/els31-firewall-disable 等
が失敗とならないようにする対処方法で、wwan-force-restart
ではなく別の方法で復旧させることはできないでしょうか?

wwan-force-restart で復旧させる場合、一度接続したLTE回線を
切断してしまい、起動シーケンスが遅くなってしまうので、
あまり良い方法ではないと考えています。

また、Kernel4.9(v4.9-at11)の下記インストールディスクイメージ
https://users.atmark-techno.com/files/downloads/armadillo-iot-g3l/image…
をArmadillo-IoT G3Lにセットアップし、
https://users.atmark-techno.com/comment/7479#comment-7479
に記載しました手順で確認しましたところ、同様に
els31-firewall-disable / els31-firewall-get-status
で実行エラーが発生しました。

今後、カーネルを更新しようとしていく際にこの不具合が絡んでくる訳
なのですが、この不具合が修正される見込みはありますでしょうか?
また、その時期はいつごろになりますでしょうか?

古関です。

> であれば、カーネル更新前(v3.14-x1-at17を使用)では問題なく閉域網でも上記
> コマンドは実行できていました。
> なぜ、v3.14-x1-at22で実行できなくなってしまったのでしょうか?

現在原因調査中です。

単純に二分探索をしていった所、以下のタイミングでデグレしている用に見えています。
- v3.14-at21では発生せず、v3.14-at22で発生する
- v4.9-at9では発生せず、v4.9-at10で発生する

症状としては/dev/ttymxc6というモデム用シリアルポートからATコマンドが受け付けなくなっていることで
firewallの設定変更ができない状況になっています。

根本対策には時間がかかりそうです。

> 再現した際手順9の後に、
> wwan-force-restart
> を実行した後に再度
> els31-firewall-disable / els31-firewall-get-status
> を実行すると動作しましたので、お手数ですが試して頂けますでしょうか?

大変申し訳ありませんが、直近できる対策としては、
弊社吉田が提示した上記のワークアラウンドとなります。

大変ご迷惑をおかけして申し訳ありません。

akira.shimomura

2019年10月8日 11時00分

アットマークテクノ 古関様

いつもお世話になっております。

ご回答ありがとうございます。
上記について、承知いたしました。

ご対応よろしくお願い致します。

at_keita.mogaki

2020年2月21日 15時56分

茂垣です。

本件に付きまして、対応が遅れてしまい
大変申し訳ありません。

原因が判明致しましたので、ご報告致します。

■不具合の原因
Armadillo-IoT G3LのELS31-J(LTEモジュール)に対してATコマンドで
SPOWパラメータを一度も設定していない時に、本不具合が発生することが判明致しました。

■発生する問題
Armadillo-IoT G3Lを"reboot"すると、ELS31-JのUARTの信号線(TXD)が、
LOWのままとなってしまう事態が発生しておりました。
この結果、"els31-firewall-disable"等のコマンドを実行しても
ELS31-JがUARTの応答を返せないため、error終了となっていました。

※"wwan-force-restart"の実行や、"poweroff"してから再起動を行うと、この問題は発生しませんでした。

■対策
以下のコマンドを実行して、ATコマンドからSPOWパラメータの上書きをして頂けると、不具合が解消されます。

root@armadillo:~# service connection-recover stop
root@armadillo:~# service ModemManager stop
root@armadillo:~# cu -l /dev/ttyACM0 -s 115200
Connected.
 
ATE1        // キーボードから"ATE1"と入力してEnterを押下して下さい。※その後のコマンドが全て表示される様になります。
OK
AT^SPOW?    // キーボードから"AT^SPOW?"と入力してEnterを押下して下さい。
^SPOW: 2,5000    // ここで表示されるSPOWの値を確認して下さい。今回の例では'2,5000'となっています。
 
OK
AT^SPOW=2,5000    // キーボードから"AT^SPOW=[SPOWコマンドで表示された値]"を入力してEnterを押下して下さい。今回の例では'2,5000'を設定しています。
OK
~.        // キーボードから"~."(チルダ ドット)を入力して、cuコマンドを終了します。
 
Disconnected.
root@armadillo:~# poweroff

本コマンドは一度設定して頂ければ、その後設定を行う必要はありません。

■動作確認
上記の対策を実施したのち、電源を投入して頂くと、一連の不具合は発生しなくなります。

また、"els31-firewall-disable"コマンドに付きまして、LTEネットワークのコネクション確立中にerrorを返す事があります。
そのため、以下のコマンドで、"ttyACM0"の第三パラメータが"connected"になってから実行して頂けると、
確実に設定を行うことができます。

root@armadillo:~# nmcli device | grep ttyACM0
ttyACM0   gsm       connecting (prepare)  gsm-ttyACM0    // "connecting (prepare)":コネクション確立中
root@armadillo:~# els31-firewall-disable
error: els-firewall-disable                    // "els-firewall-disable"コマンドはエラーになります。
root@armadillo:~# nmcli device | grep ttyACM0
ttyACM0   gsm       connected     gsm-ttyACM0        // "connected":コネクション完了
root@armadillo:~# els31-firewall-disable
success: els-firewall-disable                    // "els-firewall-disable"コマンドは成功します。

ご確認の程、よろしくお願い致します。
以上です。

akira.shimomura

2020年2月26日 9時07分

アットマークテクノ 茂垣様

原因特定・対策のご提示ありがとうございます。

対策の最後が
poweroff
となっていますが、
reboot
でも問題ないでしょうか?

poweroffでないといけないとなると、すでにお客様環境にあるArmadillo-IoT G3Lへの
適用が難しくなってしまいますので・・・。

at_keita.mogaki

2020年2月26日 13時23分

茂垣です。

> reboot
> でも問題ないでしょうか?

rebootだけではArmadillo-IoT G3LのELS31-J(LTEモジュール)のTXDが、LOWのまま起動してしまいます。

以下に記載しました手順の通り、reboot後に"wwan-force-restart"を実行すれば、TXDがLOWになる不具合は解消され、"els31-firewall-disable"コマンドも成功致します。

root@armadillo:~# service connection-recover stop
root@armadillo:~# service ModemManager stop
root@armadillo:~# cu -l /dev/ttyACM0 -s 115200
Connected.
 
ATE1        // キーボードから"ATE1"と入力してEnterを押下して下さい。※その後のコマンドが全て表示される様になります。
OK
AT^SPOW?    // キーボードから"AT^SPOW?"と入力してEnterを押下して下さい。
^SPOW: 2,5000    // ここで表示されるSPOWの値を確認して下さい。今回の例では'2,5000'となっています。
 
OK
AT^SPOW=2,5000    // キーボードから"AT^SPOW=[SPOWコマンドで表示された値]"を入力してEnterを押下して下さい。今回の例では'2,5000'を設定しています。
OK
~.        // キーボードから"~."(チルダ ドット)を入力して、cuコマンドを終了します。
 
Disconnected.
root@armadillo:/# reboot
 
// 〜再起動〜
 
root@armadillo:/# wwan-force-restart
 
// 〜LTEモジュールの再起動〜
 
root@armadillo:/# nmcli device | grep ttyACM0
ttyACM0   gsm       connected     gsm-ttyACM0        // "connected"となっている事を確認
root@armadillo:/# els31-firewall-disable                                                          
success: els-firewall-disable

これを一度実行すると、次回以降はrebootしても、LTEモジュールのFirewall無効化の設定が行えるようになります。

ご確認の程、よろしくお願い致します。
以上です。

akira.shimomura

2020年3月2日 11時55分

アットマークテクノ 茂垣様

いつもお世話になっております。

> これを一度実行すると、次回以降はrebootしても、LTEモジュールのFirewall無効化の設定が行えるようになります。
確認しましたところ、
SPOW再設定 → 再起動 → wwan-force-restart → 電源OFF → 電源ON
とすると、再度

root@armadillo:~# els31-firewall-get-status
Error: No modem response
root@armadillo:~#

となりました。

また、電源OFF → 電源ON の操作を 再起動にしても同様になりました。

どうも、ご提示いただいた操作方法では問題解消されないようです。

at_keita.mogaki

2020年3月2日 17時04分

茂垣です。

> どうも、ご提示いただいた操作方法では問題解消されないようです。

以下に提示するコマンドを実行し、コマンドの実行結果を教えて頂いてもよろしいでしょうか?

■ELS31-Jのファームウェアバージョン確認

root@armadillo:~# service connection-recover stop
root@armadillo:~# service ModemManager stop
root@armadillo:~# cu -l /dev/ttyACM0 -s 115200
Connected.
ATE1                // キーボードから"ATE1"と入力してEnterを押下して下さい。※その後のコマンドが全て表示される様になります。
OK
ATI1                // キーボードから"ATI1"と入力してEnterを押下して下さい。
Cinterion
ELS31-J
REVISION 4.3.2.1b    
A-REVISION 4.3.3.0-36584
L-REVISION 3.7.6
 
OK
~.                // キーボードから"~."(チルダ ドット)を入力して、cuコマンドを終了します。
 
Disconnected.
root@armadillo:~#

■els31-utilsのバージョンの確認

root@armadillo:~# apt show els31-utils
Package: els31-utils
Version: 1.1.0
Priority: extra
Section: utils
Maintainer: Tetsuhisa KOSEKI <koseki@atmark-techno.com>
Installed-Size: 32.8 kB
Depends: init-system-helpers (>= 1.18~), atmark-x1-base, expect
Homepage: http://armadillo.atmark-techno.com/
Download-Size: 5022 B
APT-Manual-Installed: yes
APT-Sources: http://download.atmark-techno.com/debian stretch/main armhf Packages
Description: Utilities for Gemalto ELS31 on Armadillo board
 
root@armadillo:~# 

また、本件は以下のお問い合わせ内容と同じ環境でしょうか?
https://users.atmark-techno.com/forum/armadillo/4336

よろしくお願い致します。

akira.shimomura

2020年3月4日 8時19分

アットマークテクノ 茂垣様

いつもお世話になっております。
下記、回答いたします。

> ■ELS31-Jのファームウェアバージョン確認

root@armadillo:~# cu -l /dev/ttyACM0 -s 115200
Connected.
 
OK
ATI1
Cinterion
ELS31-J
REVISION 4.3.2.1b
A-REVISION 4.3.3.0-36584
L-REVISION 3.7.6
 
OK
~.
Disconnected.

■els31-utilsのバージョンの確認

root@armadillo:~# apt show els31-utils
Package: els31-utils
Version: 1.1.0
Maintainer: Tetsuhisa KOSEKI <koseki@atmark-techno.com>
Installed-Size: 32.8 kB
Depends: init-system-helpers (>= 1.18~), atmark-x1-base, expect
Homepage: http://armadillo.atmark-techno.com/
Priority: extra
Section: utils
Download-Size: 5022 B
APT-Manual-Installed: yes
APT-Sources: http://download.atmark-techno.com/debian/ jessie/main armhf Packages
Description: Utilities for Gemalto ELS31 on Armadillo board

> また、本件は以下のお問い合わせ内容と同じ環境でしょうか?
> https://users.atmark-techno.com/forum/armadillo/4336
いいえ、違います。
上記リンク先は、あるお客様環境において発生している問題です。

この問い合わせは、開発で使用しているG3L(3台)で確認しています。
3台ともバージョンは上記回答と同じものとなります。

at_keita.mogaki

2020年3月4日 16時18分

茂垣です。

各バージョンにつきまして、
ご確認頂き、ありがとうございました。

現在弊社でも、同様の環境で試しているのですが、
先にご紹介させて頂いた方法で不具合が解決してしまい、
再現が出来ていない状態です。

原因を調査するために以下の情報を添付して頂いてもよろしいでしょうか?

・起動してから問題が発生するまでのsyslog
・カーネルのバージョン

よろしくお願い致します。
以上です。

akira.shimomura

2020年3月5日 8時18分

アットマークテクノ 茂垣様

いつもお世話になっております。

> ・起動してから問題が発生するまでのsyslog
syslogとあわせてコンソールログを添付します。

> ・カーネルのバージョン
Linux armadillo 3.14.79-at22
です。

ご確認よろしくお願いいたします。

ファイル ファイルの説明
syslog.txt SPOW再設定から問題発生までのsyslog
console_log.txt 上記操作時のコンソールログ

at_keita.mogaki

2020年6月30日 10時31分

茂垣です。

ご連絡が遅れてしまい、大変申し訳ありません。
以下製品アップデートにて不具合を解消致しましたので、ご報告致します。

■Armadillo 製品アップデートのお知らせ (2020年6月/Armadillo-IoT G3L対象)
https://armadillo.atmark-techno.com/news/20200629/software-update-aiotg…

■不具合の原因
本件はrebootコマンド実行時に、i.MX7より先に
LTEモジュールが起動してしまう事が原因でした。

LTEモジュールがi.MX7より先に起動する事で、
ファイアーフォール設定を行なう際に使用する
"/dev/ttymxc6"が無効状態になってしまい、
ATコマンドが失敗するという事態が発生していました。

■修正内容
rebootコマンド実行時に、
LTEモジュールをcold rebootさせるソフトウェア修正を行い、
i.MX7とLTEモジュールが同時に起動するように修正しました。

何卒よろしくお願い致します。
以上です。

akira.shimomura

2020年6月30日 10時44分

アットマークテクノ 茂垣様

いつも大変お世話になっております。

ご連絡ありがとうございます。
不具合対応完了の件、承知いたしました。

近日中に動作検証をさせていただきます。

akira.shimomura

2020年7月2日 9時52分

アットマークテクノ 茂垣様

いつも大変お世話になっております。

本フォーラムの不具合について、2020年6月のアップデートではカーネル v4.9での対応をされていますが、
カーネル V3.14での対応をする予定はありますでしょうか?

at_keita.mogaki

2020年7月3日 18時01分

茂垣です。

> 本フォーラムの不具合について、2020年6月のアップデートではカーネル v4.9での対応をされていますが、
> カーネル V3.14での対応をする予定はありますでしょうか?

すみません。カーネル v3.14につきましては、現在対応中です。
今後進展がありましたら、ご連絡致します。

よろしくお願い致します。

at_keita.mogaki

2020年7月20日 18時03分

茂垣です。

ご連絡が遅れてしまい、申し訳ありません。

> 本フォーラムの不具合について、2020年6月のアップデートではカーネル v4.9での対応をされていますが、
> カーネル V3.14での対応をする予定はありますでしょうか?

本件に付きまして、以下製品アップデートにて
不具合を解消致しましたので、ご報告致します。

■Armadillo 製品アップデートのお知らせ (2020年7月/Armadillo-IoT G3L対象)
https://armadillo.atmark-techno.com/news/20200720/software-update-aiotg…

よろしくお願い致します。
以上です。