Armadilloフォーラム

3Gモデムの/dev/ttyACMxが生成されない

y.nakamura

2016年7月20日 20時23分

お世話になります。
中村です。

Armadillo-IoT(G2)で、3Gモデム通信用デバイス
/dev/ttyACM0などが生成されなくなってしまいました。

故障なのか、何か間違っている(足りない)ことがあるのか、
判断ができません。
少し長くなりますが状況を書きますので、どなたか、
ご助言をいただけますでしょうか?

正常であれば、

# ls -l /dev/ttyA*
crw-rw----    1 root     dialout   166,   0 Jul 19 18:58 /dev/ttyACM0
crw-rw----    1 root     dialout   166,   1 Jul 19 18:58 /dev/ttyACM1
crw-rw----    1 root     dialout   166,   2 Jul 19 18:58 /dev/ttyACM2
lrwxrwxrwx    1 root     root             7 Jul 19 18:58 /dev/ttyATCMD -> ttyACM0

のようになるはずなのですが、/dev/ttyACMxが存在せず、
lsすると次のようになります。

# ls /dev/ttyA*
ls: /dev/ttyA*: No such file or directory

起動時のメッセージ(ブート処理の最後のあたり)には
次のエラーが表示されています。

...
Loading kernel module: awl13_sdio
awl13: Version 3.0.2 Load.
Starting basic firewall:                                        done
Setting hostname:                                               done
Configuring network interfaces: IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
stty: can't open '/dev/ttyATCMD': No such file or directory
stty: can't open '/dev/ttyATCMD': No such file or directory
couldn't open "/dev/ttyATCMD": no such file or directory
stty: can't open '/dev/ttyATCMD': No such file or directory
                                                                failed
Starting 3g-recover: libphy: imx25-fec-1:00 - Link is Up - 100/Full
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
3g-recover: Please set 3g-set-ap setting in /etc/config/interfaces
                                                                failed
Starting inetd:                                                 done
...

(ブート時の全メッセージも保存してありますが、とりあえず、
上のところだけを書いておきます。必要ならアップします)

このブートメッセージは後に書くatmark-dist-20160527で
起動したときのもので、3g-recoverが3g-set-apの設定をしろ!と
言っていますが、これはトラブルの原因とは関係ないと思います。

状況は次のとおりです。

3G通信ができることを確認した機体/ファームウェアで
3Gとは別の試験のために1週間くらい連続運転をしました。
LANのみで、3Gは使っていません。

このときのカーネルとユーザランドは3.14.36-at3。
たぶん工場出荷時のもので、
#1 PREEMPT Wed Aug 26 21:42:04 JST 2015
となっています。
ユーザランドはatmark-dist-20160126を元にして、
多少のカスタマイズや独自プログラムを入れたものです。
このユーザランドイメージはフラッシュに書き込んであります。

この試験が終わった後、atmark-dist-20160527で追加された
3g-recover-daemonを試すために、atmark-dist-20160527を
使ってビルドし(このときのカーネルはlinux-3.14-at7)、
tftpbootで起動したところ、上に書いたエラーとなりました。

atmark-dist-20160527を使ったことが原因とは考えにくいですが、
ならば「いつ?」「何をしたとき?」というと、よくわかりません。
連続試験の間にすでにおかしくなっていたのか、
atmark-dist-20160527を試すときに何かやってしまったのか・・・・

このエラーの後、試したことは次の通りです。
- 元のatmark-dist-20160126と3.14.36-at3
- 電源OFF/ON
- SIMの抜き差し
- /etc/configの完全クリア
- Armadillo-IoT(G1/G2)のサイトにある最新イメージ
(atmark-dist-20160527とlinux-3.14-at7のバイナリ)

いずれもダメでした。同じ症状です。

また、GPIOを使った3Gモジュールのリセットを試したところ、
次のような表示になりました。

# echo 1 > /sys/class/gpio/RESET_N_3G/value
ここで少し待つ
# echo 0 > /sys/class/gpio/RESET_N_3G/value
usb 2-1: new full-speed USB device number 4 using ci_hdrc
cdc_acm 2-1:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 2-1:1.0: ttyACM0: USB ACM device
usb 2-1: USB disconnect, device number 4
usb 2-1: new full-speed USB device number 5 using ci_hdrc
usb 2-1: not running at top speed; connect to a high speed hub
usb 2-1: unable to read config index 0 descriptor/all
usb 2-1: can't read configurations, error -110
usb 2-1: new full-speed USB device number 6 using ci_hdrc
usb 2-1: device descriptor read/64, error -110
usb 2-1: device descriptor read/64, error -110
usb 2-1: new full-speed USB device number 7 using ci_hdrc
usb 2-1: device not accepting address 7, error -110
usb 2-1: new full-speed USB device number 8 using ci_hdrc
usb 2-1: device not accepting address 8, error -110
usb usb2-port1: unable to enumerate USB device
 
# ls -la /dev//ttyA*
ls: /dev//ttyA*: No such file or directory

正常動作する機体で同じことをすると、次のようになります。

# echo 1 > /sys/class/gpio/RESET_N_3G/value
少し待つ
# echo 0 > /sys/class/gpio/RESET_N_3G/value
usb 2-1: new full-speed USB device number 14 using ci_hdrc
cdc_acm 2-1:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 2-1:1.0: ttyACM0: USB ACM device
usb 2-1: USB disconnect, device number 14
usb 2-1: new full-speed USB device number 15 using ci_hdrc
usb 2-1: not running at top speed; connect to a high speed hub
cdc_acm 2-1:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 2-1:1.0: ttyACM0: USB ACM device
cdc_acm 2-1:1.2: This device cannot do calls on its own. It is not a modem.
cdc_acm 2-1:1.2: ttyACM1: USB ACM device
cdc_acm 2-1:1.4: This device cannot do calls on its own. It is not a modem.
cdc_acm 2-1:1.4: ttyACM2: USB ACM device
cdc_ether 2-1:1.6 eth1: register 'cdc_ether' at usb-ci_hdrc.1-1, CDC Ethernet Device, 00:00:11:12:13:14
cdc_ether 2-1:1.8 eth2: register 'cdc_ether' at usb-ci_hdrc.1-1, CDC Ethernet Device, 00:00:11:12:13:16
cdc_ether 2-1:1.10 eth3: register 'cdc_ether' at usb-ci_hdrc.1-1, CDC Ethernet Device, 00:00:11:12:13:18

それから、5月に公開された3Gモジュールの新しいファームウェアの
書き換えを試みましたが、書き換えができませんでした。
(モデムが反応しない?)

なお、この問題のあるArmadillo-IoT(G2)は私の手元にはなく、
遠方のメンバーが作業に使っているもので、トラブルの知らせを受けて、
いろいろと試してもらった結果です。

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

--
なかむら

コメント

at_daisuke.sasaki

2016年7月20日 20時58分

佐々木大輔です。

大変お手数なのですが、
この現象が発生しているArmadillo-IoTでlsusbコマンドを実行すると
どのように見えるか教えて頂けますか?

正常な機体で実行すると以下のようになります。

Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0002
Bus 001 Device 003: ID 1519:0302

ID 1519:0302が別のVendorID/ProductIDで見えるという事はあるでしょうか?
もしくは、i.MXのUSBホスト(ID 1d6b:0002)しか見えないという事はありますか?

このIDが正しく見えない場合、
3Gモジュールが故障している可能性があると考えています。

以上、よろしくお願いいたします。

中村です。
佐々木さん、ご対応いただき、ありがとうございます。

lsusbは次のようになりました。

[root@armadillo-iotg (ttymxc1) ~]# lsusb
Bus 002 Device 004: ID 8087:07ed
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0002

1519:0302はなく、VIDが8087というのがあります。
Armadillo-IoTにUSB機器は何もつないでいないとのことです。

--
なかむら

中村です。

本件、故障の可能性が大きいということで、
保証の窓口と直接やりとりをすることになりました。
これにてクローズとします。

佐々木様、
どうもありがとうございました。

--
なかむら