shasegawa
2015年3月24日 20時03分
長谷川です。
お世話になっております。
Armadillo-IoTにて起動時に自動的に3Gインタフェースを有効化しようとしているのですが、エラーが発生してしまっています。
Starting basic firewall: done Setting hostname: done Configuring network interfaces: fec: PHY @ 0x0, ID 0x0007c0f1 -- LAN8720 eth0: link down The system has no more ptys. Ask your system administrator to create more. while executing "spawn tip -s 115200 -l /dev/ttyUSB3 -c -f" (procedure "serial_connect" line 4) invoked from within "serial_connect 30" (file "/usr/share/3g/3g-connect.exp" line 13) failed Starting inetd: done
/etc/config/interfaces は以下のように設定しています。
[root@armadillo-iotg (ttymxc1) ~]# cat /etc/config/interfaces # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) auto lo eth0 usb0 iface lo inet loopback #iface eth0 inet dhcp iface eth0 inet static address 192.168.10.30 netmask 255.255.255.0 iface usb0 inet dhcp pre-up 3g-connect post-down 3g-disconnect
また、起動後に有効化すると問題なく接続できます。
[root@armadillo-iotg (ttymxc1) ~]# ifup usb0 3G connect success ADDRCONF(NETDEV_UP): usb0: link is not ready ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready udhcpc (v1.20.2) started Sending discover... Sending select for 153.140.224.252... Lease of 153.140.224.252 obtained, lease time 268435455
どのような原因が考えられますでしょうか?
よろしくお願いします。
コメント
shasegawa
> ・Atmark Distのバージョン
v1.38.0です。
atmark-dist v1.38.0 (AtmarkTechno/Armadillo-IoTG-SSEGW)
> ・再現頻度(5回に1回再現するなど)
100%です。
> ・シリアルケーブル、アンテナ、ACアダプター以外を接続せずに起動した場合、再現するか
再現しました。
> ・標準のユーザーランド及びLinuxカーネルイメージで起動させ、
> 「6.2.5.5. 自動で3Gインターフェースを有効化する」の手順だけ実施した場
> 合に再現するか
linux-aiotg-std-v1.02.bin.gz と romfs-aiotg-std-v1.02.img.gz のイメージで再現しました。
/etc/config/interfaces の設定によって再現の有無が変わるようです。
eth0 を有効化して DHCP 設定にする → 再現しない
Configuring network interfaces: fec: PHY @ 0x0, ID 0x0007c0f1 -- LAN8720 eth0: link down udhcpc (v1.20.2) started Sending discover... Sending discover... Sending discover... No lease, failing 3G connect success ADDRCONF(NETDEV_UP): usb0: link is not ready ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready udhcpc (v1.20.2) started Sending discover... Sending select for 153.140.65.151... Lease of 153.140.65.151 obtained, lease time 268435455 failed Starting inetd: done
※ 有線ネットワーク上にDHCPサーバーがいないので、eth0 はタイムアウトで IP の取得失敗しています。
eth0 を有効化して固定IP設定にする → 再現する
eth0 を有効化しない → 再現する
Starting basic firewall: done Setting hostname: done Configuring network interfaces: The system has no more ptys. Ask your system administrator to create more. while executing "spawn tip -s 115200 -l /dev/ttyUSB3 -c -f" (procedure "serial_connect" line 4) invoked from within "serial_connect 30" (file "/usr/share/3g/3g-connect.exp" line 13) failed Starting inetd: done
3Gモジュールを初期化するタイミングが早いと発生するような感じです。
その他、確認すべきポイントがあればお知らせください。
以上、よろしくお願いします。
at_kojiro.yamada
eth0 でDHCPを使わず、3G接続のタイミングが早まったことで、
3G接続の処理でうまくいかない箇所がありました。
修正パッチを添付しますので試してみてください。
ユーザーランドのビルド方法については、以下のマニュアルを参照してください。
Armadillo-IoT ゲートウェイ スタンダードモデル製品マニュアル
第11章 ビルド手順
http://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produc…
■パッチのあて方
[ATDE]$ cd atmark-dist-[VERSION] [ATDE]$ patch -p1 < 0001-iotg-3g-connect-waiting-for-dev-ptmx-creation.patch
■原因とパッチの内容
具体的には、
/dev/ptmx が作られる前に/usr/bin/3g-connectが実行され、
expectでtipコマンドをspawnさせて実行する箇所で
擬似端末を作成できずに失敗していました。
そのため、修正パッチでは、
/usr/bin/3g-connectに
/dev/ptmx が作成されるまで待つ処理を
追加しています。
ファイル | ファイルの説明 |
---|---|
0001-iotg-3g-connect-waiting-for-dev-ptmx-creation.patch | 3g-connect 修正パッチ |
shasegawa
at_kojiro.yamada
at_kojiro.yamada
2015年3月25日 20時07分
お手数おかけしますが、
以下、4点を確認していただけないでしょうか?
・Atmark Distのバージョン
・再現頻度(5回に1回再現するなど)
・シリアルケーブル、アンテナ、ACアダプター以外を接続せずに起動した場合、再現するか
・標準のユーザーランド及びLinuxカーネルイメージで起動させ、
「6.2.5.5. 自動で3Gインターフェースを有効化する」の手順だけ実施した場
合に再現するか
■Atmark Distのバージョン確認方法
以下のコマンドで確認できます。
■リンク
ダウンロードサイト
http://armadillo.atmark-techno.com/armadillo-iot/downloads
Armadillo-IoT ゲートウェイ スタンダードモデル製品マニュアル
「8.3.5. 3G」
http://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produc…