お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-05-28 21:37:21

Sunatomo
メンバ
登録日: 2007-07-04

JauntyでのNetworkManager経由モデム接続対策について

こんにちわ
Jaunty(9.04)のNetworkManager経由でemobileのUSBモデムが認識しない問題について
皆さんにご協力いただければと思い投稿しました。

わたしはD02HW(Huawei E220のOEMと思われる製品)を使っており、
動作させるには以下の3点に対して対策が必要でした。

1. udevによるデバイス初期化不良
 通常インストールされるudevルール(nm-modem-probeの使用が前提)だと、ttyUSB0が
シリアルデバイスとして正常に動作しないことがあった。

https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/346835/comments/11
こちらのudevルールに書き換えすると常時モデムを認識・初期化するようになった
(ただし当該モデムはGSMモデムとして認識される)

2.provider-infoの書き換え
 Gnomeのprovider-infoはemobileについてはCDMAとして登録されているため、
使えるようにするためにはGSMとして登録しなおす
/usr/share/mobile-broadband-provider-info/serviceproviders.xml
の2297行目にあるemobileの設定を
    <provider>
        <name>e-mobile</name>
        <cdma />
        <username>em</username>
        <password>em</password>
    </provider>

から

    <provider>
        <name>e-mobile</name>
        <gsm>
            <apn>emb.ne.jp</apn>
        </gsm>
        <username>em</username>
        <password>em</password>
    </provider>

に直す

3.HSDPA(GPRS)ネットワーク検知のの修正
D02HWはどうやらGSM・CDMAのデュアル機のため、GSMのSIMカードを挿入してGSM圏に
いる場合は現状のソースでは問題なく動作すると思われるが、
日本のようにHSDPAの圏内で3Gの設定で動作させるためには
nm-gsm-device.cのネットワーク検知部分を書き換えする必要がある。
具体的には"AT+CGMM"コマンドでこのモデムはD02HWであると返させ、
その後ネットワークの検知には"AT+CGREG?"を使用するように逃した。

$diff nm-gsm-device.c.old nm-gsm-device.c
489a490
> case 4: /* Huawei E220 (Known as D02HW) */
507c508
< const char *responses[] = { "E160G", "F3507g", "D5530", "MD300", NULL };
---
> const char *responses[] = { "E160G", "F3507g", "D5530", "MD300", "D02HW", NULL };

そこで、皆さんにご協力をお願いしたいことは以下の3点です。

5/10に対策方法(3)についてとりあえずLaunchpadに提示したのですが、
未だにリアクションがありません。
このままだと放置される可能性があるので
野良でも良いから個別のdebパッケージを作成し公開できる準備をしようと思います。

debianのヘルプでdeb-srcからパッケージを作る方法は何となく分かったのですが、
繰り返し開発を続ける際の再パッケージ作成方法がわからず
ソースに手を加えるとエラーを吐きました。
何かよいヒントをご存知の方がおられたら教えていただけませんか?

次はD02HW以外にもemobileでHuawei製やネットインデックス製端末は
同じようにAT+CGREGでネットワークパケットの死活を検知するようです。
その辺のリストを拡充したいので皆さんのお手持ちモデムのATコマンドを
確認いただけると幸いです。
転送するATコマンドは
AT+CGMM (モデムの型番を表示する)
AT&V(モデムのサポートするATコマンド一覧を表示する)
AT+CGREG?(現在地のネットワーク死活確認結果を返す)
です。

また、ATコマンドを事前に送る前に以下のコマンドを入力して
モデムがNetworkManagerで正常に動作するかを
確認するかをチェックしたほうがいいかとおもいます。
$export NM_SERIAL_DEBUG=1
$sudo NetworkManager --no-daemon
この後、NetworkManagerアプレットでemobileの接続情報を入れて
正常につながればあなたのモデムについては
ソースコードに追加しなくてもOKです。
つながらない場合、/var/log/syslogで
nm_serial_debug(): Sending: 'AT+CREG? '
nm_serial_debug(): Got: '  +CREG: 0,0
がたくさん出ていて、
cutecomなどのターミナルで"AT+CGREG?"の返事が"+CGREG: 0,1"ならば、
当該モデムでは登録の必要があると思います。

3つ目は直したパッケージの公開方法です
出来れば野良のAPTラインでも作れれば良いのでしょうが、あいにく経験が無いので
どうしたら良いか分かりません。
お知恵をお貸しいただけると幸いです。

オフライン

 

#2 2009-05-28 23:08:57

kaorin
メンバ
From: 仙台近郊
登録日: 2008-09-07

Re: JauntyでのNetworkManager経由モデム接続対策について

D12HWを使用しておりますが、開示いただいている手順にて、ネットワークマネージャにて、接続が可能となりました。
ありがとうございます。
ソース上、変更しているのはモデル名のD02HW→D12HWのみです。

最初接続できずに途方に暮れたのですが、ログを見ていたら、電話がつながらないとのログが出ていたため、電話番号を見直し、最初から入力されている、*99#にて接続できました。
#GOME-PPPで設定していた*99***1#が正しいのかと思って、そちらを設定しておりました。

ついては、ATコマンドによる情報開示に協力させていただきたいと思うのですが、ATコマンド送付の手順が解りません。
手順を開示いただければ、助かります。

また、野良APTラインなら、PPAに登録するのがよいような気がしますが、ワタクシも経験がないため、どのようにすればよいのかは解りません。
識者にご登場願えれば。

オフライン

 

#3 2009-05-28 23:51:42

Sunatomo
メンバ
登録日: 2007-07-04

Re: JauntyでのNetworkManager経由モデム接続対策について

kaorinさん、早速のレスありがとうございます。
わたしの環境では*99***1#でつながったのですが
なぜでしょうねぇ

さて、モデムに対してATコマンドを入力する方法
わたしがやってみて一番簡単だった方法です。

1) cutecomパッケージをインストールする
cutecomはGUIでのシリアルターミナルプログラムです。
CUIがご所望ならminicomがコンパクトです

$sudo apt-get install cutecom

2)cutecomを起動する
なぜかgnomeのメニューにcutecomは追加されないようなので、
「端末」上で

$cutecom &

と入力してください

3)cutecomからモデムにATコマンドを送信する
cutecom立ち上げ前後にモデムを接続し、認識されたら
画面中央のDeviceで「/dev/ttyUSB0」と入力します。

あとは左上の「OpenDevice」ボタンを押して最下行のInput:入力欄に

AT+CGMM
AT&V
AT+CGREG?

の3つのコマンドを入れてください。
中央部の大きなフィールド部分にそれぞれのコマンドのエコーと
モデムから返された結果が表示されます。

多分
AT+CGMMの結果としては
D12HWとかかれているとおもいます。

AT&Vの結果後半にある
+CSCA: はSIMカードに登録された電話番号なので消してください

終了後、「Close Device」ボタンを押して切断し、
「Quit」ボタンでcutecomを終了します。


あと、udevルールのハックなしで動作を確認する場合、
一旦/dev/ttyUSB1に何らかのATコマンドを送ってから
/dev/ttyUSB0を開くと良いとおもいます。

GnomePPPで接続する際も、
D02HWではこの儀式
=(setupダイアログに一旦入り、modemdeviceの「detect」ボタン押し
→deviceを/dev/ttyUSB0に手で修正してから「connect」)
が必要でした。

念のためcutecomでのシリアル設定書いておきます
Device: /dev/ttyUSB0
Baud rate: 115200
Data bits: 8
Stop bits: 1
Parity: none
Handshake: Hardware(チェックあり)
Open for: Reading, Writing(チェックあり)

オフライン

 

#4 2009-05-29 00:08:31

ikuya
モデレータ
From: Osaka
登録日: 2006-10-20

Re: JauntyでのNetworkManager経由モデム接続対策について

パッケージに関しては、ある程度情報がまとまったところで、こちらでやります。

オフライン

 

#5 2009-05-29 22:50:37

kaorin
メンバ
From: 仙台近郊
登録日: 2008-09-07

Re: JauntyでのNetworkManager経由モデム接続対策について

ご指定のコマンドをインストールして、ATコマンドを入力してみましたが、何もエコーバックされません。
なんか設定が必要なんですかね。
システムログを見ると、ttyUSB0で認識されてますし、現在はネットワークマネージャからの接続も問題なく出来ております。

オフライン

 

#6 2009-05-29 23:13:03

Sunatomo
メンバ
登録日: 2007-07-04

Re: JauntyでのNetworkManager経由モデム接続対策について

ikuyaさん、
パッケージ作成の件はよろしくお願いいたします。

ちなみに今の対策方法だと、GSM系の地域でSIMカード入れ替えで接続しようとしてもNG
になるのが問題と言えば問題なのですが
肝心の日本で使えないのは意味が無いのでこの方法しかないのかなぁと思っています。
(emobileにSIMロックが掛かっているかとか他に+CGREGを使っているモデムは無いかと
問い合わせしましたが剣もほろろでした....)

kaorinさんへ

cutecomでATコマンドを送信した際、最後にEnterキーを入れましたか?
AT(Enter)でOKと表示されませんか?

あとNetworkManagerで接続した後ですと、ATで送信するコマンドがエコーされないようです
一度ATZ(Enter)と入れてからもう一度チャレンジしてください

それでは以下の方法をお試しください

一時的にNetworkManagerからのデバッグログ出力を有効にする方法です

1)NetworkManagerのデーモンを一時停止する
$sudo /etc/init.d/NetworkManager stop

2)デバッグ用の環境変数を有功にする
$export NM_SERIAL_DEBUG=1

3)NetworkManagerをデーモンではなく端末で起動する
$sudo NetworkManager --no-daemon

この状態でモデムを認識させ、NetworkManagerアプレットから接続すると
/var/log/syslogに"nm_serial_debug()"と書かれてログが出力されます

Sending: 'AT+CGMM '
Got: '  D02HW    OK  '

と言う文言が出ればAT+CGMMが取れているはずです

オフライン

 

#7 2009-05-29 23:42:14

kaorin
メンバ
From: 仙台近郊
登録日: 2008-09-07

Re: JauntyでのNetworkManager経由モデム接続対策について

差し直して、試して見たところ、エコーバックされました。
以下、出力結果で、+CSCAのところのみ、xで塗りつぶしています。

コード:

AT+CGMM
D12HW

OK
AT&V
&C: 2; &D: 2; &E: 0; &F: 0; &S: 0; &W: 0; E: 1; L: 0; M: 0; Q: 0; V: 1;
X: 0; Z: 0; \Q: 3; \S: 0; \V: 0; S0: 0; S2: 43; S3: 13; S4: 10; S5: 8;
S6: 2; S7: 50; S8: 2; S9: 6; S10: 14; S11: 95; S30: 0; S103: 1; S104: 1;
+FCLASS: 0; +ICF: 3,3; +IFC: 2,2; +IPR: 115200; +DR: 0; +DS: 0,0,2048,6;
+WS46: 12; +CBST: 0,0,1;
+CRLP: (61,61,48,6,0),(61,61,48,6,1),(240,240,52,6,2);
+CV120: 1,1,1,0,0,0; +CHSN: 0,0,0,0; +CSSN: 0,0; +CREG: 0; +CGREG: 0;
+CFUN:; +CSCS: "IRA"; +CSTA: 129; +CR: 0; +CRC: 0; +CMEE: 2; +CGDCONT: (1,"IP","emb.ne.jp","0.0.0.0",0,0)
; +CGDSCONT: ; +CGTFT: ; +CGEQREQ: (1,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(2,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(3,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(4,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(5,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(6,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(7,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(8,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(9,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(10,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(11,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(12,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(13,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(14,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(15,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(16,2,0,0,0,0,2,0,"0E0","0E0",3,0,0)
; +CGEQMIN: ; +CGQREQ: ; +CGQMIN: ; ; +CGEREP: 0,0; +CGCLASS: "B";
+CGSMS: 3; +CSMS: 0; +CMGF: 0; +CSAS: 0; +CRES: 0;
+CSCA: "+xxxxxxxxxxxx",145; +CSMP: ,,0,0; +CSDH: 0; +CSCB: 0,"","";
+FDD: 0; +FAR: 0; +FCL: 0; +FIT: 0,0; +ES: ,,; +ESA: 0,,,,0,0,255,;
+CMOD: 0; +CVHU: 1; ; +CPIN: \0xff\0xff\0xff\0xff\0xff\0xff\0xff\0xff,\0xff\0xff\0xff\0xff\0xff\0xff\0xff\0xff; +CMEC: 0,0,0; +CKPD: 1,1;
+CGATT: 1; +CGACT: 0; +CPBS: "SM";  +CPMS: "SM","SM","SM";
+CNMI: 0,0,0,0,0; +CMMS: 2; +FTS: 0; +FRS: 0; +FTH: 3; +FRH: 3; +FTM: 96;
+FRM: 96; +CCUG: 0,0,0; +COPS: 0,0,""; +CUSD: 0; +CAOC: 1; +CCWA: 0;
+CCLK: ""; +CLVL: 2; +CMUT: 0; +CPOL: 0,2,"",0,0,0; +CPLS: 0; +CTZR: 0;
+CTZU: 0; +CLIP: 0; +COLP: 0; +CDIP: 0; +CLIR: 0; ^PORTSEL: 0;
^CPIN: \0xff\0xff\0xff\0xff\0xff\0xff\0xff\0xff,\0xff\0xff\0xff\0xff\0xff\0xff\0xff\0xff; ^ATRECORD: 0; ^FREQLOCK: 13459312,13786400;
^CVOICE: 0; ^DDSETEX: 0\0x00 

OK
AT+CGREG?
+CGREG: 0,1

OK

オフライン

 

#8 2009-05-29 23:50:28

Sunatomo
メンバ
登録日: 2007-07-04

Re: JauntyでのNetworkManager経由モデム接続対策について

協力をお願いしながら自分の例を載せてないので投稿します

コード:

AT+CGMM
D02HW

AT&V
&C: 2; &D: 2; &F: 0; E: 1; L: 0; M: 0; Q: 0; V: 1; X: 0; Z: 0; S0: 0;
S3: 13; S4: 10; S5: 8; S6: 2; S7: 50; S8: 2; S9: 6; S10: 14; S11: 95;
+FCLASS: 0; +ICF: 3,3; +IFC: 2,2; +IPR: 115200; +DR: 0; +DS: 0,0,2048,6;
+WS46: 12; +CBST: 0,0,1;
+CRLP: (61,61,48,6,0),(61,61,48,6,1),(240,240,52,6,2);
+CV120: 1,1,1,0,0,0; +CHSN: 0,0,0,0; +CSSN: 0,0; +CREG: 0; +CGREG: 0;
+CFUN:; +CSCS: "IRA"; +CSTA: 129; +CR: 0; +CRC: 0; +CMEE: 2; +CGDCONT: (1,"IP","emb.ne.jp","0.0.0.0",0,0)
; +CGDSCONT: ; +CGTFT: ; +CGEQREQ: (1,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(2,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(3,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(4,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(5,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(6,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(7,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(8,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(9,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(10,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(11,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(12,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(13,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(14,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(15,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(16,2,0,0,0,0,2,0,"0E0","0E0",3,0,0)
; +CGEQMIN: ; +CGQREQ: ; +CGQMIN: ; ; +CGEREP: 0,0; +CGCLASS: "A";
+CGSMS: 3; +CSMS: 0; +CMGF: 0; +CSMP: ,,0,0;
+CSDH: 0; +CSCB: 0,"",""; +FDD: 0; +FAR: 0; +FCL: 0; +FIT: 0,0; +ES: ,,;
+ESA: 0,,,,0,0,255,; +CMOD: 0; +CVHU: 1; ; +CPIN: \0xff\0xff\0xff\0xff\0xff\0xff\0xff\0xff,\0xff\0xff\0xff\0xff\0xff\0xff\0xff\0xff;
+CMEC: 0,0,0; +CKPD: 1,1; +CGATT: 1; +CGACT: 0; +CPBS: "SM";
+CPMS: "SM","SM","SM";  +CNMI: 0,0,0,0,0; +CMMS: 2; +FTS: 0; +FRS: 0;
+FTH: 3; +FRH: 3; +FTM: 96; +FRM: 96; +CCUG: 0,0,0; +COPS: 0,2,"";
+CUSD: 0; +CAOC: 1; +CCWA: 0; +CLVL: 2; +CMUT: 0; +CPOL: 0,2,"",0,0,0;
+CPLS: 0; +CTZR: 0; +CLIP: 0; +COLP: 0; +CLIR: 0; ^PORTSEL: 0;
^CPIN: \0xff\0xff\0xff\0xff\0xff\0xff\0xff\0xff,\0xff\0xff\0xff\0xff\0xff\0xff\0xff\0xff; ^ATRECORD: 0; ^FREQLOCK: 11010860,12481268\0x00

 AT+CGREG?
+CGREG: 0,1

オフライン

 

#9 2010-08-30 13:23:28

sherwood
新しいメンバ
登録日: 2009-08-14

Re: JauntyでのNetworkManager経由モデム接続対策について

Ubuntu 10.04 LTS での結果です。

============================================================
ATZ

OK
AT+CGMM

D12HW

OK
AT&V

&C: 2; &D: 2; &E: 0; &F: 0; &S: 0; &W: 0; E: 1; L: 0; M: 0; Q: 0; V: 1;
X: 0; Z: 0; \Q: 3; \S: 0; \V: 0; S0: 0; S2: 43; S3: 13; S4: 10; S5: 8;
S6: 2; S7: 50; S8: 2; S9: 6; S10: 14; S11: 95; S30: 0; S103: 1; S104: 1;
+FCLASS: 0; +ICF: 3,3; +IFC: 2,2; +IPR: 115200; +DR: 0; +DS: 0,0,2048,6;
+WS46: 12; +CBST: 0,0,1;
+CRLP: (61,61,48,6,0),(61,61,48,6,1),(240,240,52,6,2);
+CV120: 1,1,1,0,0,0; +CHSN: 0,0,0,0; +CSSN: 0,0; +CREG: 0; +CGREG: 0;
+CFUN:; +CSCS: "IRA"; +CSTA: 129; +CR: 0; +CRC: 0; +CMEE: 0; +CGDCONT: (1,"IP","emb.ne.jp","0.0.0.0",0,0)
; +CGDSCONT: ; +CGTFT: ; +CGEQREQ: (1,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(2,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(3,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(4,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(5,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(6,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(7,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(8,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(9,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(10,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(11,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(12,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(13,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(14,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(15,2,0,0,0,0,2,0,"0E0","0E0",3,0,0),(16,2,0,0,0,0,2,0,"0E0","0E0",3,0,0)
; +CGEQMIN: ; +CGQREQ: ; +CGQMIN: ; ; +CGEREP: 0,0; +CGCLASS: "B";
+CGSMS: 3; +CSMS: 0; +CMGF: 0; +CSAS: 0; +CRES: 0;
+CSCA: "+xxxxxxxxxxxx",145; +CSMP: ,,0,0; +CSDH: 0; +CSCB: 0,"","";
+FDD: 0; +FAR: 0; +FCL: 0; +FIT: 0,0; +ES: ,,; +ESA: 0,,,,0,0,255,;
+CMOD: 0; +CVHU: 1; ; +CPIN: ,; +CMEC: 0,0,0; +CKPD: 1,1; +CGATT: 1;
+CGACT: 0; +CPBS: "SM"; +CPMS: "SM","SM","SM";  +CNMI: 0,0,0,0,0;
+CMMS: 2; +FTS: 0; +FRS: 0; +FTH: 3; +FRH: 3; +FTM: 96; +FRM: 96;
+CCUG: 0,0,0; +COPS: 0,0,""; +CUSD: 0; +CAOC: 1; +CCWA: 0; +CCLK: "";
+CLVL: 2; +CMUT: 0; +CPOL: 0,2,"",0,0,0; +CPLS: 0; +CTZR: 0; +CTZU: 0;
+CLIP: 0; +COLP: 0; +CDIP: 0; +CLIR: 0; ^PORTSEL: 0; ^CPIN: ,;
^ATRECORD: 0; ^FREQLOCK: 13459312,13786400; ^CVOICE: 0; ^DDSETEX: 0 

OK
AT+CGREG?

+CGREG: 0,1

OK

オフライン

 

Board footer

Powered by FluxBB