Armadilloフォーラム

3G接続切断時のModemManager再起動で、ttyACM0が割り当てられる

sanixuser

2017年1月30日 14時44分

製品:Armadillo-IoT G3
sim:soracom 3G

3G接続が不定期に切断され、通信ができなくなってしまう現象の対策として、
過去の投稿「Armadillo-IoT G3でダイヤルアップ再接続が出来ない 」でアップされておりました「3g-recover-daemon」を使って
コネクションの監視をしております。

今回、3G回線が切断されても「3g-recover-daemon」によって接続が復旧しませんでした。
nmcli device で状態を確認すると、ttyACM3ではなく、ttyACM0が表示されていました。
(「3g-recover-daemon」がModemManagerを再起動しているLOGを添付します)

ttyACM3を割り当てられなかった為、「3g-recover-daemon」の監視が止まってしまったように思われます。

3G接続が切断されてしまった場合の復旧方法について、なにか良い方法があればご教示いただけないでしょうか。

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

ファイル ファイルの説明
syslog.txt
コメント

こちらでも同じ問題が発生いたしました。
構成は、

> 製品:Armadillo-IoT G3
> sim:soracom 3G

です。

問題発生時のsyslogを添付いたします。

状況は、

nmcli deviceするとttyACM0
root@armadillo-iotg:~# nmcli dev
デバイス タイプ 状態 接続
eth0 ethernet 接続済み ethernet-eth0
ttyACM0 gsm 切断済み --
wlan0 wifi 切断済み --
gre0 gre 管理無し --
gretap0 gretap 管理無し --
ip6gre0 ip6gre 管理無し --
ip6tnl0 ip6tnl 管理無し --
tunl0 ipip 管理無し --
lo loopback 管理無し --
sit0 sit 管理無し --
ip6_vti0 vti6 管理無し --

nmcli connectionするとgsm-ttyACM3がある。
また、ppp0もある(デバイスに割り当てられていない)

root@armadillo-iotg:~# nmcli con
名前 UUID タイプ デバイス
ppp0 a7d7978c-bd75-42d6-8a02-0e3f161ba2ce generic --
ethernet-eth0 8e6ed49b-7858-41ae-8be6-6757e7e9b6da 802-3-ethernet eth0
gsm-ttyACM3 431438b0-5f93-4a0e-846a-f8fbe06304fd gsm --

Modemは見つかり、SIMも認識しており、電波もつながっていると考えられる。
(固有情報は隠しています)

root@armadillo-iotg:~# mmcli -L

Found 1 modems:
/org/freedesktop/ModemManager1/Modem/0 [Cinterion] PDS6-J

root@armadillo-iotg:~# mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id '5ec9fe3e71fabad0ab1b0b7fd7bc8d70dd9061a6')
-------------------------
Hardware | manufacturer: 'Cinterion'
| model: 'PDS6-J'
| revision: 'REVISION 03.001'
| supported: 'gsm-umts'
| current: 'gsm-umts'
| equipment id: ''
-------------------------
System | device: '/sys/devices/soc/30800000.aips-bus/30b30000.usb/ci_hdrc.1/usb2/2-1/2-1.2'
| drivers: 'cdc_acm'
| plugin: 'Cinterion PDS'
| primary port: 'ttyACM0'
| ports: 'ttyACM0 (at)'
-------------------------
Numbers | own : 'number'
-------------------------
Status | lock: 'none'
| unlock retries: 'unknown'
| state: 'registered'
| power state: 'on'
| access tech: 'hsdpa'
| signal quality: '70' (recent)
-------------------------
Modes | supported: 'allowed: any; preferred: none'
| current: 'allowed: any; preferred: none'
-------------------------
Bands | supported: 'unknown'
| current: 'unknown'
-------------------------
IP | supported: 'ipv4'
-------------------------
3GPP | imei: 'imei'
| enabled locks: 'none'
| operator id: ''
| operator name: ''
| subscription: 'unknown'
| registration: 'home'
-------------------------
SIM | path: '/org/freedesktop/ModemManager1/SIM/0'

-------------------------
Bearers | paths: 'none'

root@armadillo-iotg:~# mmcli -i 0
SIM '/org/freedesktop/ModemManager1/SIM/0'
-------------------------
Properties | imsi : ''
| id : ''
| operator id : ''
| operator name : ''

ModemManagerとNetworkManagerの両方を再起動すると、
認識はttyACM3になりますが、
やはり接続はできません。

root@armadillo-iotg:~# nmcli dev
デバイス タイプ 状態 接続
eth0 ethernet 接続済み eth0
ttyACM3 gsm 切断済み --
wlan0 wifi 切断済み --
gre0 gre 管理無し --
gretap0 gretap 管理無し --
ip6gre0 ip6gre 管理無し --
ip6tnl0 ip6tnl 管理無し --
tunl0 ipip 管理無し --
lo loopback 管理無し --
sit0 sit 管理無し --
ip6_vti0 vti6 管理無し --

製品マニュアルの方法に従って、PDS6-Jをリセットすると接続されます。
http://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_prod…

root@armadillo-iotg:~# nmcli device
デバイス タイプ 状態 接続
eth0 ethernet 接続済み eth0
ttyACM3 gsm 接続済み gsm-ttyACM3
ppp0 unknown 接続済み ppp0
wlan0 wifi 切断済み --
gre0 gre 管理無し --
gretap0 gretap 管理無し --
ip6gre0 ip6gre 管理無し --
ip6tnl0 ip6tnl 管理無し --
tunl0 ipip 管理無し --
lo loopback 管理無し --
sit0 sit 管理無し --
ip6_vti0 vti6 管理無し --

以上の状況から、
おそらくPDS6-Jがなんらかの原因で動作不良を起こしているものと思われます。
不具合が発生したらttyACM0にシリアル接続してリセットする、
がスクリプトで自動的にできれば良いのですが、
ちょっと大変そうです。

何か良い方法はあれば教えていただければと思います。

ファイル ファイルの説明
syslog.txt 不具合発生時のsyslog