HOME / コンピュータTips / Solaris / pppの設定 / E-MOBILEを利用する

Date: 2008/10/14 |  このエントリーをはてなブックマークに追加  |  Tags: Solaris express opensolaris E-mobile D02HW EM-ONE S01SH

Solaris/opensolarisで認識できたE-MOBILE

私が認識できたデバイスは下記の通り

  • EM ONE
    • 何の問題もないが、たまにモデムがハングアップする
  • D02HW
    • 色々じゃじゃ馬であるが、猪突猛進さんのパッチを当てると、じゃじゃ馬っぷりはかなり緩和する(snv_98リリース現在)
      • パッチをパッケージ化しました(2009.01.08)
      • http://dist.justplayer.com/JPCPKGLABO/i386/5.11/

その他の、SolarisのシリアルデバイスにはDualCore上で起きる問題がある。この場合、ppp接続の最中に通信が突然詰まった感覚になるので注意が必要。

E-MOBILEの認識方法

D02HWを中心に記載します。

em oneについては、必要なところのサブタイトルにemone(S01SH)と書いてあるので、適当に読み替えてください。

D01HWや、D02HW、H11TなどのUSBモデムになる他のタイプも恐らく使えると思います。

先にWindowsマシンなどに接続しておく。(D02HW)

どういう理由なのかわからないのですが、Windowsマシンに一度接続しなければ、Solarisで使えない・・・という実験結果?が出てきました。((どうやらLinuxでもそう言うことが起きた人がいたようです))

このとき、chatスクリプトのログを出力すると、次のようなエラーが出てきます。

ATZ
OKCalling E-MOBILE

AT&C1&D2
OK
ATDT*99***1#
NO CARRIER
Connect script failed

NO CARRIERと出てきますが、もちろん、圏内(青ランプ)です。

私の場合、お店で一度Windowsマシンに接続してテストし、接続試験をして貰いました。以後、何の設定も変わらずに接続が可能だったので、同じ問題が出る人がいたらそれでいけるかもしれません。

また、ごく希に何かのトリガで初期出荷と同じ状態になるようです。こういうときは、一度Windowsパソコンに接続してもらうと直ります。このときのUSBに対して送るメッセージがわかれば良いのですが・・・。

ドライバーインストール(D02HW,em one)

D02HWを差し込み、ドライバのインストール

update_drv -a -i usb12d1,1003 usbsacm

再起動する。

D02HWの接続は起動時から行っておく(D02HW)

D02HWは刺しっぱなしで起動する時に限りmodemとして認識するが、一度抜いて刺し治すとMass Storage Deviceとなる。従って利用時には必ずD02HWを入れたまま起動しなくてはならない。

この問題はsnv_98までで確認しています。

  • /etc/systemのdrv/〜を記述して、USB mass storageドライバを無効にしても、この挙動を変えることは出来ません。
  • 猪突猛進さんのパッチをあてることで、ホットプラグが出来るようになります。一度、一通りテストしてからパッチをインストールしてみましょう。

起動時のterm

lrwxrwxrwx   1 root     root          50  6月  5日  21:57 0 ->
 ../../devices/pci@0,0/pci17aa,20aa@1a,1/device@1:0
lrwxrwxrwx   1 root     root          50  6月  5日  21:57 1 ->
 ../../devices/pci@0,0/pci17aa,20aa@1a,1/device@1:1
lrwxrwxrwx   1 root     root          50  6月  5日  21:57 5 ->
 ../../devices/pci@0,0/pci17aa,20aa@1a,1/device@1:2

このとき、/dev/term/0が使える。

ホットプラグ(起動後の接続)の時のterm

lrwxrwxrwx   1 root     root          51  6月  9日  16:18 0 ->
 ../../devices/pci@0,0/pci17aa,20aa@1a,1/storage@1:0

このときは何も利用できない。※なお、storageデバイスは、起動時もいる場合がある。

termを選ぶときについて(D02HW)

3つ出てくるが、tipで接続((tipの終わりは、ENTER直後に、~.))したとき、

tip /dev/term/?
  1. atコマンドなどが、通常に動作する。
  2. atコマンドなどが、通常に動作するが、たまに^BOOT:11640533,0,0,0,38というメッセージがでる。
  3. 何の反応もない。

1のものを利用すること。2を試すとき、atコマンドを連射しても良いし、atz、atiなどを入力してもいい。

なお、何かの拍子に1と2が入れ替わることがあったが、トリガ不明。

接続の設定(D02HW,em one)

結局のところ、ここから先は容易。上記にあった仕様を回避するため、色々もがいたが無理だったため。

/etc/ppp/peers/emobile

/dev/term/0
460800
updetach
noipdefault
usepeerdns
defaultroute
passive
noccp
novj
crtscts
idle 120
noauth
lock
name em
connect "/usr/bin/chat -f /etc/ppp/emobile-chat"

/etc/ppp/emobile-chat

ABORT   BUSY
ABORT   'NO CARRIER'
REPORT  CONNECT
TIMEOUT 10
"" ATZ
OK      "AT&C1&D2"
SAY     "Calling E-MOBILE\n"
TIMEOUT 60
OK "ATDT*99***1#"
CONNECT \c

/etc/ppp/pap-secretsに、追加。

em emobile em

結論

以上のようにすると利用することが出来るが、文中であるとおり、様々な箇所に回避がある程度可能であるものの、障害がある。

障害をまとめると次の通り

  • 最初にWindowsに接続しないとならない。
    • 1度やって貰えばいいので、何とか回避可能
    • 何かのトリガで再発生する(私の利用頻度では数ヶ月に一度)ので注意が必要。症状は何度やってもNO CARRIER
  • OS起動時からD02HWの接続をしておかなければならない。
    • 上に記載したとおり、猪突猛進さんのパッチを当てると解決する。
  • termの数がわかりづらい
    • これは他のデバイスも絡むと色々面倒なのだが、私はdialerのラッパーを作ることで解決している。
  • DualCoreの時に、パケットが詰まるという問題が起きる。
    • 猪突猛進さんのシリアルパッチを当てると解決する。
    • パッチを当てない場合、ppp前に/usr/sbin/psradm -f 1 2 3・・・・と、0番以外のコアをdisable(ユニプロセッサ状態)にし、ppp接続が終わったら、/usr/sbin/psradm -a -nで戻す。私はdialerのラッパで回避していた。
  • シリアルの速度(DCE)が遅い
    • termの接続については、SolarisではDCEが460800bps以上の設定ができないので、約450kbps以上の速度はだせない。
    • 実質7.2Mのe-mobile出なくても良いのかも知れない :'(

という感じです。

SolarisとD02HWについて

猪突さんのパッチを当てないのならば、上記のことを考えると、7.2M対応デバイスじゃなくても良いのかな〜とか、考えられます。

このストレージに見えると言う件ですが、E-MOBILEではゼロインストール対応というWindowsには何かよさげな機能みたいです。D01HWに関しては、その言葉がついていないので、もしかしたらD01HWをアウトレットで購入するというパスもあると思います。

つまり、

  • 現時点、DCEの絡みで、7.2Mでないの?
  • 7.2M出エリアは都内の一部みたいですよ?
  • D01HWはゼロインストールじゃないからホットプラグも行けるかも?

ってことになると、SolarisモバイラーはD01HWをアウトレットで買うか、どこからか譲ってもらうのがいいかもしれません。