FOMA端末接続用ACMドライバの作成
とりあえず動いたのでページを作成します。
catsinが書いています。
カーネルバージョン2.4.20のソースファイル一式に含まれるUSB-ISDNモデムドライバ「acm.c version0.21」を元に、v0.22への差分と京セラAirH"Phone接続用パッチを導入し、更にFOMA独自の設定処理を追加したものです。
※ただしFOMA特有のコマンド処理が含まれるため、AirH"Phoneとの接続にこのドライバを使用することはできません。
Webを散々探したが、使えないの記述ばかりでそれ以上がなかったので作ってみました。
ついでに調査用に大量のトレースログを埋め込んであります、しかし通常は非表示です。
一度ttyACM1も対応するように作成したが、結局使わないのと過去の処理とできれば同じにしておいた方が良いだろう。 と、言うことでttyACM0のみ有効になるようにしてあります。
このドライバが有効になることで、FOMAとの先頭の接続パイプが以下のノードに接続されます。
| ノード | タイプ | メジャー番号 | マイナー番号 |
| /dev/ttyACM0 | char | 166 | 0 |
たぶんコンパイルすれば、そのままLinuxPCでも動くでしょう。 しかし手持ち環境がcoLinuxなので未確認です。
→x86-LinuxPC環境で動作しているようです。Googleで検索
進めていけば、OBEXデータの交換も夢じゃありませんが、とりあえずそれは放置。
動作確認をしたザウルスは以下のとおり。 確認情報がありましたらお知らせください。
| 機種 | ROMバージョン | 備考 |
| SL-C3000 | 1.11JP | |
| SL-C1000 | 1.01JP | ぴんさんの確認、ありがとうございます。 |
| SL-C3100 | mwさんの確認、ありがとうございます。 | |
| SL-C3200 | ノグタンさんがSpecialKernel?で確認されています。通常のROMではどうでしょう? |
対応したつもり、の機種をリストに入れます。 確認情報がありましたらお知らせください。
リストにない機種はソースコード内にVenderID、ProductIDの記述がないので使用できません。 逆に言えばそれを追加すれば使用可能と思います。
| メーカ | 機種 | 384kパケット通信 | 64k同期通信 | 備考 |
| Panasonic | P2102 | 未確認 | 未確認 | |
| Panasonic | P900i | ○ | ○ | |
| Panasonic | P900iV | ○ | ○ | |
| Panasonic | P901i | ○ | ○ | 切断後の再接続は、一度USBケーブルを抜き差ししないと接続に失敗する。 |
| Panasonic | P700i | ○ | ○ | 切断後の再接続は、一度USBケーブルを抜き差ししないと接続に失敗する。 |
| Panasonic | P901iS | ○ | ○ | 切断後の再接続は、一度USBケーブルを抜き差ししないと接続に失敗する。ITAさんの確認、ありがとうございます。 |
| Panasonic | P701iD | 未確認 | 未確認 | |
| Panasonic | P901iTV | 未確認 | 未確認 | |
| Panasonic | P851i(Prosolid2) | 未確認 | 未確認 | |
| Panasonic | P902i | ○ | ○ | 切断後の再接続は、一度USBケーブルを抜き差ししないと接続に失敗する。しげげさんの確認、ありがとうございます。 |
| Panasonic | P702iD | 未確認 | 未確認 | |
| Panasonic | P902iS | ○ | ○ | 切断後の再接続は、一度USBケーブルを抜き差ししないと接続に失敗する。Nobuさんの確認、ありがとうございます。 |
| Panasonic | P903i | ○ | ○ | 切断後の再接続は、一度USBケーブルを抜き差ししないと接続に失敗する。 |
| メーカ | 機種 | 384kパケット通信 | 64k同期通信 | 備考 |
| NEC | N2001 | × | 未確認 | alteonさんの確認、ありがとうございます。 |
| NEC | N2002 | ○ | 未確認 | alteonさんの確認、ありがとうございます。 |
| NEC | N2051 | 未確認 | 未確認 | |
| NEC | N2102 | ○ | 未確認 | alteonさんの確認、ありがとうございます。 |
| NEC | N2701 | ○ | 未確認 | 匿名君・さんの確認、ありがとうございます。 |
| NEC | N900i | ○ | ○ | zauzaurusrusさんの確認、ありがとうございます |
| NEC | N900iS | ○ | 未確認 | mwさんの確認、ありがとうございます |
| NEC | N900iG | ○ | ○ | 国内での使用で確認。切断後の再接続は、一度USBケーブルを抜き差ししないと接続に失敗することがあるようです。たかさんの確認、ありがとうございます。「N900iG + SL-C3000の構成でオーストラリアで使えました。zaurusだけだったので、cidの設定は事前に2と3をmopera.netにしておきました。」とのこと。xabreさんの確認、ありがとうございます。 |
| NEC | N700iL | 未確認 | 未確認 | |
| NEC | N901iC | ○ | 未確認 | 切断後の再接続は、一度USBケーブルを抜き差ししないと接続に失敗する。八百万の民さんの確認、ありがとうございます。 |
| NEC | N600i(SIMPURE N) | ○ | − | 64K同期は端末が非対応だそうです。Benさんの確認、ありがとうございます。 |
| NEC | N700i | ○ | ○ | 切断後の再接続は、一度USBケーブルを抜き差ししないと接続に失敗する。たかさんの確認、ありがとうございます |
| NEC | N901iS | ○ | ○ | まささんの確認、ありがとうございます |
| NEC | N701i | 未確認 | ○ | おいくらちんさんの確認、ありがとうございます。 |
| NEC | N902i | 未確認 | 未確認 | |
| NEC | N702iD | 未確認 | 未確認 | |
| NEC | N902iS | 未確認 | 未確認 | |
| NEC | N902iX | × | 未確認 | alteonさんの確認、ありがとうございます。 |
| NEC | N903i | 未確認 | 未確認 |
| メーカ | 機種 | 384kパケット通信 | 64k同期通信 | 備考 |
| Motorola | M1000 | → | → | 王 那乃さんが別途C3000のデフォルトのacm.oで接続を確認されているようです。>某 那乃の日記 |
| メーカ | 機種 | 384kパケット通信 | 64k同期通信 | 備考 |
| Mitsubishi | D900i | 未確認 | 未確認 | |
| Mitsubishi | D901i | 未確認 | 未確認 | |
| Mitsubishi | D901iS | 未確認 | 未確認 | |
| Mitsubishi | D701i | 未確認 | 未確認 | |
| Mitsubishi | D701iWM(MusicPORTER2) | ○ | 未確認 | alteonさんの確認、ありがとうございます。 |
| Mitsubishi | D851iWM(MusicPORTERX) | 未確認 | 未確認 | |
| Mitsubishi | D902i | ○ | ○ | THOMAS君さんの確認、ありがとうございます。 |
| Mitsubishi | D702i | 未確認 | 未確認 | |
| Mitsubishi | D902iS | 未確認 | 未確認 | |
| Mitsubishi | D702iBCL | 未確認 | 未確認 | |
| Mitsubishi | D903i | 未確認 | 未確認 |
| メーカ | 機種 | 384kパケット通信 | 64k同期通信 | 備考 |
| Fujitsu | F2051 | 未確認 | 未確認 | |
| Fujitsu | F2102V | 未確認 | 未確認 | |
| Fujitsu | F900i | 未確認 | 未確認 | |
| Fujitsu | F900iT | ○ | ○ | lilacさん・匿名希望さんの確認、ありがとうございます |
| Fujitsu | F900iC | ○ | ○ | ぴんさんの確認、ありがとうございます |
| Fujitsu | F880iES(らくらくホン) | 未確認 | 未確認 | |
| Fujitsu | F901iC2 | 未確認 | 未確認 | F901iCとF901iC2の二種類存在する・・? |
| Fujitsu | F901iC | ○ | ○ | ぴんさんの確認、ありがとうございます |
| Fujitsu | F700i | ○? | ○? | kwさんの確認、ありがとうございます |
| Fujitsu | F901iS | 未確認 | 未確認 | |
| Fujitsu | F700iS | 未確認 | 未確認 | |
| Fujitsu | F881iES(らくらくホン2) | 未確認 | 未確認 | |
| Fujitsu | F902i | ○ | ○ | 貴ちゃんさんの確認、ありがとうございます。 |
| Fujitsu | F882iES(らくらくホン3) | 未確認 | 未確認 |
| メーカ | 機種 | 384kパケット通信 | 64k同期通信 | 備考 |
| SHARP | SH900i | ? | ? | 接続するも極端に速度が遅い。zauzaurusrusさんの確認、ありがとうございます |
| SHARP | SH901iC | × | × | 認証中から先進まず。→「解決していない問題-接続に失敗する・接続しても極端に遅い」を参照してください。 |
| SHARP | SH700i | 未確認 | 未確認 | →「解決していない問題-接続に失敗する・接続しても極端に遅い」を参照してください。 |
| SHARP | SH901iS | ○ | × | 64K同期通信で認証中まで進んで失敗しました。→「解決していない問題-接続に失敗する・接続しても極端に遅い」を参照してください。 |
| SHARP | SH700iS | 未確認 | 未確認 | →「解決していない問題-接続に失敗する・接続しても極端に遅い」を参照してください。 |
| SHARP | SH851i(DOLCE) | 未確認 | 未確認 | →「解決していない問題-接続に失敗する・接続しても極端に遅い」を参照してください。 |
| SHARP | SH902i | 未確認 | 未確認 | →「解決していない問題-接続に失敗する・接続しても極端に遅い」を参照してください。 |
| SHARP | SH702iD | 未確認 | 未確認 | →「解決していない問題-接続に失敗する・接続しても極端に遅い」を参照してください。 |
| SHARP | SH902iS | 未確認 | 未確認 | |
| SHARP | SH902iSL(DOLCE SL) | 未確認 | 未確認 | |
| SHARP | SH903i | 未確認 | 未確認 |
| メーカ | 機種 | 384kパケット通信 | 64k同期通信 | 備考 |
| SANYO | SA700iS | ○ | × | 64K同期は認証で失敗。zauzaurusrusさんの確認、ありがとうございます |
| SANYO | SA800i(キッズケータイ) | 未確認 | 未確認 |
USBケーブルで接続します。 ただし、世の中探しても「FOMA-miniUSBAオス」と言う組み合わせはまずなさそうなので、通常のFOMAケーブルとUSBホストケーブル(USB Aメス ⇔ miniAオス)を繋いで使用します。
| メーカ | 商品名 | 型番/URL | 備考 |
| arvel | ミニUSBケーブル 2.0対応 Mini-A(オス)⇔Type-A(メス) | AUM20MA02 |
→Linuxザウルス/ハードウェア/USBホストケーブル も参照のこと。
| メーカ | 商品名 | 型番/URL | 備考 |
| NTTドコモ | FOMA USB接続ケーブル | http://www.nttdocomo.co.jp/product/relate/usb_cable/index.html |
基本的にドライバが違うだけで、AirH"Phoneでの作業と同じです。
ここでは最低限の情報を記述します。
また各設定でのコマンドラインでの入力はスーパーユーザ権限で行います。(ま、そゆことで。)
初期状態でザウルスにUSBケーブルでFOMAケーブルを接続すると、 ザウルスの接続情報・デバイスタブのUSB項目に「P901i(端末名)」等USBデバイスとして認識されている旨が表示されます。
しかしデフォルトで導入されているドライバではFOMA端末に対応することができないため、Device欄には「(none)」と表示されます。
このページから「acm-FOMA.20050725.tar.gz」をダウンロードしザウルス上で展開します。
(とりあえず)ファイル名の中の「20050725」はファイルの作成日付なので、違う数字になっている可能性がありますので、その場合は読み替えて作業します。
SDカード上にファイルがある場合、以下のようになります。
> cd /mnt/card > gzip -d acm-FOMA.20050725.tar.gz
(あれ・・デフォルトでgzip入ってる?)
ファイルを展開すると、「acm-FOMA.o」と言うファイルが出てくるので、 ザウルスの「/lib/modules/2.4.20/kernel/drivers/usb」というディレクトリに格納します。
SDカード上にファイルがある場合、以下のようになります。
> cp /mnt/card/acm-FOMA.o /lib/modules/2.4.20/kernel/drivers/usb
この状態でモジュールを起動します。
> depmod -a > modprobe acm-FOMA
ここまでやると、ザウルスの接続情報・デバイスタブのUSB項目で、Device欄には「acm」と表示されます。
キャラクタ型、メジャー番号166、マイナー番号0のデバイスノードを作成する。
> mknod /dev/ttyACM0 c 166 0
リブートすると消えてしまうので、その場合は再度作成します。
ザウルスのネットワーク接続で設定の追加を行います。
ダイヤルアップ接続を指定し追加ボタンを押します。
ダイヤルアップ接続の種類はPPPダイヤルアップ接続[赤外線]を指定します。
この後接続先を指定しますが、moperaに接続する場合は、以下の内容とします。
| 項目 | パケット通信 | 64K同期通信 |
| ユーザ名 | 何かしらの文字列(空白でないように) | 何かしらの文字列(空白でないように) |
| パスワード | 何かしらの文字列(空白でないように) | 何かしらの文字列(空白でないように) |
| 電話番号 | *99***1# | *9601 |
ユーザ名・パスワード名は特に何にも使われないので何でもいいです。 空白にしておくと認証で失敗します。
次にモデムタブを開き初期化コマンドを「ATZ」のみとします。
これでOKボタンを押し設定を保存します。
これでディレクトリ「/etc/ppp/peers」にIRDA**********(*は数字)のファイルができているので、ファイルをエディタで開いて以下のように修正します。 (「/etc/ppp/peer」→「/etc/ppp/peers」に修正しました。)
「115200」 → 「/dev/ttyACM0 115200」
このファイルはネットワーク接続で設定を行うと、もとに戻されてしまうのでその都度修正します。
端末の情報を追加しました。:SH902iSL(DOLCE SL)、N902ix(HIGH-SPEED)、F882iES(FOMAらくらくホンIII)
端末の情報を追加しました。:F902iS、F702iD、SO902iWP+、SO702i、P901iTV、D702iBCL、D702i、D851iWM(MUSIC PORTER X)、N702iD、N600i(SIMPURE N)、SA800i(キッズケータイ)
端末の情報を追加しました。:D902iS、P902iS、N902iS、SH902iS、SO902i
端末の情報を追加しました。:N900iL、D701iWM(MusicPORTER2)、SH702i、P702iD、SH902i
端末の情報を追加しました。:P851i(Prosolid2)、F902i、D902i、N902i、P902i
端末の情報を追加しました。:F700iS、SH700iS、SH851i(DOLCE)、F881iES(らくらくホン2)、N701i、D701i、SA701iS、P701iD
端末の情報を追加しました。:P900iV
端末の情報を追加しました。
同じような内容であちこちにあります。全体は把握してません。 元を辿ると2ch発祥のようですが、こちらもちゃんとは把握してません。 が、参考にさせてもらっているのは確かです。皆様ありがとうございます。
下の資料がまだ見つけられなかった時期に参照できたベンダ特有情報を含む唯一の情報源でした。 だいぶ雰囲気が違うんで戸惑いましたが。
初期の立ち上げ時、各端末のVenterID、ProductIDをもらってきました。
これって一般閲覧可能な公開資料なんでしょうか? 確かに無いとつらいんですけど。
→だめだったみたいですね。リンク先なくなっちゃいました。 →公開されてました。URL変わっただけみたいです。>りんねさんの指摘、ありがとうございます。
基にしたソースはこのページのlinux-c3000-20041116-rom1_01.tar.bz2に含まれるものを使用しています。
切断後でも一度USBケーブルを抜き、挿しなおすことで接続可能となります。
どうやらcloseしたときのActivattionMode?のDeactivationを入れたのがきっかけのようだ・・・。
かといってただ抜くだけだと、次の接続に失敗し、更にその次で成功する。 はて、なんでやろ?
改善しなかった。 切断後、二回目の接続にしてしまっているSetLink?をはずしたらよくなるかな?
改善なし。なのでLinkの状態不一致の線は消えたということか。 無条件にSetLink?しないようにしたら初回接続もしないので、ちゃんとP901i側にはリクエストが届いているはず。 じゃぁドライバで2回目の処理に失敗してるんじゃないの?と言ってもちゃんと動作する端末の組み合わせもあるので、単純にそうは言えない。 とは言え、こういう時ってたいてい後処理の不足だったりするんだけども。 USBアナライザ欲しいですね。
→10/14現在、調査継続中
発信動作・接続の動作は行っている。ドライバとしては素通しの状態に遷移しているので、PPPのパラメータで改善するかも?
→2005/10/12現在、調査すすんでません。
・2006-04-18 (Tue) 21:38:24 DAN : オリジナルの組み込みLinux(2.4.19-test9)でも、pppd+SH902i+so-netアクセスポイントの組み合わせで動作しました。ただし、ソースは一部修正しました。USBの構造体名及びメンバーをこのカーネル向けに修正しただけです。快適です!! ・2006-05-10 (Wed) 20:04:20 ノグタン : SH端末で通信が遅い問題ですが、SL-C3200+special kernel(v18g)だとサクサク通信できてます!どうやら、ppp_async対応が効いているようです。
とのことです。
→2006/06/19
PPP側の動作が原因と考えられます。 この欄と備考にメモを残してこの件は終了とします。動作結果についてのコメントの記入ありがとうございました。>DANさん、ノグタンさん
FOMA端末をPCやZaurusに接続しての通信は、パケ・ホーダイの対象外です。 (パケ・ホーダイの対象は「iモードだけ」です。)
この記事のようなことが無い様ご注意ください。>http://blog.livedoor.jp/nemoto6/archives/9609858.html
匿名さんの書き込みがありましたので念のため書いときます。
SHARP Linux Zaurus NTT DoCoMo? FOMA USB Driver acm.c acm.o
シャープ ザウルス
ttyACM0 mopera ppp ダイヤルアップ接続 384Kパケット通信 64k同期通信
この場合はUSB-MassStrage?として認識されるため、ここでのacm-FOMA.oドライバは関係しません。
miniSDモードにしたP901iを接続すると、特にZaurus側の設定を変更しなくても/dev/sda1に接続されます。
この状態で以下の操作を行うことで外部ドライブとして認識します。(スーパーユーザで)
一度作れば繰り返し使えます。
> mkdir /mnt/usbstrage
接続後に実行することで外部ドライブとして認識させます。
> mount /dev/sda1 /mnt/usbstrage
取り外す際に実行します。
> umount /mnt/usbstrage
上記対応機種の項でも書いていますが、基本的なI/Fが変わらない限り接続する機種のVenderID/ProductIDをドライバ内に追記することで対応できる可能性が高いです。
以下の方法でIDを取得してドライバをビルドしていただくか、このページにメーカ名・機種名とあわせてコメントで書いてもらえれば作業が可能なタイミングで盛り込んだものをリリースします。