Last modified: Nov 1th, 2001
Table of Contents
手持ちのモデムが認識できるかどうかですが, 基本的に Winmodem であれば簡単には認識できません. Winmodem の判別方法は後述しますが, モデム名に
"Win" や "Winmodem" という名前が付いているかどうか Windows の「コントロールパネル」>「デバイスマネージャー」でモデム名を確認してみましょう. これら
Winmodem については後述します. また TA は初期化コマンドが必要なので TA のマニュアルなどを参照して下さい.
そもそも内蔵モデムの認識が出来ているかどうかすらわからない場合は, マシンが実際にモデムを認識しているかどうか確認してみましょう. 先ず, 事前に BIOS の設定で Plug and Play OS を NO (無効)にしておきます. その後, Linux を起動し, 以下のコマンドを実行して下さい.
これで ttyS0 以外に以下のように表示されていますでしょうか?あればとりあえず内蔵モデムの存在は認識されています.
ttyS03 at 0x02e8 (irq = 3) is a 16550A
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ここでの I/O ポートと IRQ は以下のようになります.
| I/OポートとIRQ | ||||
| COMポート | Kernel2.2.xの場合 | Kernel2.0.xの場合 | I/O | IRQ |
| COM1 | /dev/ttyS0 | /dev/cua0 | 0x3f8 | 4 |
| COM2 | /dev/ttyS1 | /dev/cua1 | 0x2f8 | 3 |
| COM3 | /dev/ttyS2 | /dev/cua2 | 0x3e8 | 4 |
| COM4 | /dev/ttyS3 | /dev/cua3 | 0x2e8 | 3 |
* Kernel2.0.x の場合は /dev/ttyS* ではなく /dev/cua0, /dev/cua1 などとなります.
認識の設定をしてみましょう.
モデムが COM4 に接続されている場合はシリアルポートは /dev/ttyS3 になります. その場合は以下のようにします. もしわからなければ Windows
がインストールされているのであれば「デバイスマネージャー」で確認しておきましょう.
と入力し, その後に
と入力します. ここで以下のように表示されたら次に進みます.
もしも以下のように [unknown] と表示されたら残念ながらそのモデムは利用できない可能性が高いと言えます.
次に認識の確認をします.
その前に /dev/modem へのリンクを張っておきます.
認識を確認します.
として, AT コマンドを受け付けるかどうか確認してみてください.
ということです.
OK が出たら実際にプロバイダのアクセスポイントに掛けてコールするか確認します.
ATDT072-876-5432
(ATDT はプッシュ回線, ATDP がダイヤル回線)
cu を終了させるには ~. とします.
もしも以下のエラーが発生したりフリーズした場合はシンボリックリンクがちゃんと出来ているか確認して下さい.
このようなエラーの場合, いくつか原因が考えられますが, 例えば上記のデバイスファイル (/dev/ttyS*) が間違っているか, アクセス権限がないなどです. アクセス権限が無い場合は以下のように
/etc/group を編集してみます.
これを以下のように使用するユーザー名を追加します. 例えば,
これでうまく認識できれば ダイヤルアップ接続の設定を行います. その時に念のためもう一度 /dev/modem へリンクを必ず張るようにしてください. 尚, ダイヤルアップ接続には
PPxP を使うことをおすすめします. 特に TA (ターミナルアダプタ) を使用する場合は PPxP ならばいくつかの機種の初期化コマンドの設定などがありますのでおすすめします.
WinModem とは, Windows でしか動作しないモデムのことです. また, Linux で動作しないと言われるものに PCI バス接続のボードなどがあります.
ISA バス接続のモデムボードはかなりの確率で動作するようです. 外付けモデムとなれば動作する可能性が非常に高く, PCMCIA カードモデムはほとんど動作しているそうです.
Winmodem は最近, 特に多くのノートパソコンに搭載されるようになりました. 代表的なものに MWave や Lucent LT WinModem などがあります. この
WinModem とは簡単に言えば Windows の機能を利用して動作するものです. このような UART をエミュレートするタイプのモデムは Linux
上では動作しない可能性大です. 例えば, setserial コマンドで認識状態を確認した場合, UART が" Unknown "であれば
Winmodem の可能性大です.
と入力してどのようなメッセージが出るか確認してみましょう. 他の識別方法としては, Windows を起動して, 「システムのプロパティ」から Modem
の「ドライバ」を見て, 拡張子が .vxd の仮想デバイスドライバがあれば Winmodem である可能性大です. 「モデムのプロパティ」や, パソコン添付のマニュアルを確認して”
Winmodem ”という名前が入っていないか, チェックしてみた方がいいでしょう. ただ, 最近は Winmodem を Linux で動かそうという動きが活発なようで, こちらでは
Lucent Modem が認識できるバイナリが公開されていますし, IBM からは MWave のドライバも公開されているそうです. Lucent Modem
用のドライバについては私自身の環境でも試してみましたが, 動作させることは出来ませんでした. しかし, 実際に動作報告もあることから試してみる価値はあると言えるのではないでしょうか.
TLJBBS で以下のようなご質問を受けました.
「私のモデム (OMRONのME5614ISA) はドライバに ".vxd" ファイルを使っているようです. これは Winmodem と判断して良いのでしょうか?」
実際に modem を認識していないのなら状況から考えて WINMODEM の可能性がかなり高いでしょう. ただし, ".vxd" を使っていればすべてそうだと言い切れるものではありません. この件に関して, TLJBBS で以下の回答をされた方がいらっしゃいました.
--------------------
■ TLJBBS より
Re: OMRON ME5614ISA 使ってます.
OMRON の ME5614 ISA 問題なく使えてます.
OS は TLJ 4.0 です.
まずモデム本体のジャンパー SW を以下のように設定
しました.
JP16 OFF
JP17 1-2 ON
これで Non-PNP にしておいて, IRQ3, COM2
を使うように設定しました.
JP1のみON, (JP1, 2)
JP3 ON, (JP3 - 11)
これですんなりと使えました.
IRQ と COM ポートの設定は自分の環境に合わせて設定
してくださいね.
isapnp に頼るより最初から Non-PNP で使ったから上手
くいったのかも知れず.
-------------------------
今まで Linux で使えていたモデムを認識してくれなくなった, これは起動時のログを見て確認しなければなりませんが, IRQ が衝突してる可能性があります. 以下のコマンドを実行してみて下さい.
# setserial /dev/ttyS1 irq 3 autoconfig
PC カードモデムの場合は,
# /etc/rc.d/init.d/pcmcia restart
また, /etc/pcmcia/config.opts で IRQ について設定することができます.
また, 起動デーモンを止めることによりうまく認識することがあります.
Linux をモバイルで利用するとなるとリアルタイムなデータ通信は必要不可欠です. そうなると PHS 回線での 64K/32K データ通信をということになります. 例えば私が使っている
PHS(NTT Docomo P-in Comp@ct) もPC カードソケットに挿入すれば何の問題もなく自動認識されますので出先に居てもすぐにデータのダウンロードやメールの送受信など高速なデータ通信が可能です.