FreeBSD ハンドブック
前のページ | 第 19章シリアル通信 | 次のページ

# 19.5. ダイアルアウトサービス

訳: 丸山 剛司 `<tmaruya@nnc.or.jp>`. 31 December 1996.

以下はモデムを利用して他のコンピュータと 接続する方法を説明しています。 これはリモートホストとターミナル接続を確立するための 適切な方法です。

これは BBS に接続するときによく使います。

この種の接続は PPP 接続に問題がある場合、Internet 上にあるファイルを 転送するのに非常に役に立ちます。FTP で何らかのファイルを転送したいのに PPP 接続を確立できない場合は、ファイルを FTP 転送するためにターミナルセッション を利用します。そして ZMODEM を利用してファイルを転送します。

## 19.5.1. 私の Hayes モデムはサポートされていません、 どうすればよいでしょう?

実際、`tip` の マニュアルページは古くなっています。既に Hayes ダイアラが組み込まれています。`/etc/remote` ファイル中で `at=hayes` を使ってください。

Hayes ドライバは、最近のモデムの新しい機能である `BUSY`、`NO DIALTONE`、 `CONNECT 115200`などのメッセージを 認識できるほど賢くはなく、単に混乱を起こすだけです。 `tip`を使う場合には、 (`ATX0&W` とするなどして) これらの メッセージを表示させないようにしなくてはいけません。

また、`tip` のダイアルのタイムアウトは 60秒です。モデムの タイムアウト設定はそれより短くすべきであり、 そうしないと `tip` は通信に問題があると判断するでしょう。 `ATS7=45&W` を実行してください。

> 注意: デフォルトの `tip` は、 Hayes モデムに完全に対応しているわけではありません。解決方法は `/usr/src/usr.bin/tip/tip` の下の `tipconf.h` を変更することです。 もちろんこれにはソース配布ファイルが必要です。

> `#define HAYES 0` と記述されている行を `#define HAYES 1` と変更し、そして `make`, `make install` を実行します。これでうまく動作するでしょう。

## 19.5.2. これらの AT コマンドを入力するには?

`/etc/remote` ファイルの中で “direct” エントリを作ります。たとえばモデムが 1番目のシリアルポートである `/dev/cuaa0` に接続されている場合、次のようにします:

    cuaa0:dv=/dev/cuaa0:br#19200:pa=none

モデムがサポートする最大の bps レートを br フィールドに使います。そして `tip cuaa0` を実行すると、モデムが利用できるようになります。

`/dev/cuaa0` がシステムに存在しない場合は、次のようにします:

    # cd /dev
    # sh MAKEDEV cuaa0

または `root` になって以下のように `cu` コマンドを実行します:

    # cu -lline -sspeed

`line` にはシリアルポートを指定します (例えば `/dev/cuaa0`)。そして `speed` には接続する速度を指定します (例えば `57600`)。その後 AT コマンドを実行したら、~. と入力すれば終了します。

## 19.5.3. pn 機能の `@` 記号が使えません!

電話番号 (pn) 機能の中での `@` 記号は、 tip に `/etc/phone` にある電話番号を参照するように伝えます。しかし `@` の文字は `/etc/remote` のような 設定ファイルの中では特殊文字となります。 バックスラッシュを使ってエスケープをおこないます:

    pn=\@

## 19.5.4. コマンドラインから電話番号を指定するには?

“generic” エントリと呼ばれるものを `/etc/remote` に追加します。 例えば次のようにします:

    tip115200|Dial any phone number at 115200 bps:\
    	    :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
    tip57600|Dial any phone number at 57600bps:\
    	    :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:

そして

    # tip -115200 5551234

のように利用できます。 `tip` より `cu` を使いたい場合、 `cu` の generic エントリを使います。

    cu115200|Use cu to dial any number at 115200bps:\
    	:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:

そして

    # cu 5551234 -s 115200

と実行します。

## 19.5.5. 毎回 bps レートを入力しなければいけませんか?

`tip1200` や `cu1200` 用のエントリを記述し、適切な通信速度を br フィールドに設定します。`tip` は 1200 bps が正しいデフォルト値であるとみなすので、 `tip1200` エントリを参照します。もちろん 1200 bps を使わなければならないわけではありません。

## 19.5.6. ターミナルサーバを経由して複数のホストへアクセスしたいです

毎回接続されるのを待って `CONNECT <host>` と入力する かわりに、tip の `cm` 機能を使います。 例えば、`/etc/remote` に次のようなエントリを追加します:

    pain|pain.deep13.com|Forrester's machine:\
    	:cm=CONNECT pain\n:tc=deep13:
    muffin|muffin.deep13.com|Frank's machine:\
    	:cm=CONNECT muffin\n:tc=deep13:
    deep13:Gizmonics Institute terminal server:\
    	:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:

これで、`tip pain` や `tip muffin` と実行すると pain や muffin のホストに接続することができ、 `tip deep13` を実行するとターミナルサーバに接続します。

## 19.5.7. tip を使ってそれぞれのサイトの 複数の回線に接続できますか?

これは大学に電話回線がいくつかあって 数千人の学生が接続しようとする 場合によくある問題です。

あなたの大学のエントリを `/etc/remote` ファイルに作成して、`pn` のフィールドには `@` を使います:

    big-university:\
    	:pn=\@:tc=dialout
    dialout:\
    	:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:

そして `/etc/phone` ファイルに大学の電話番号の一覧を書きます:

    big-university 5551111
    big-university 5551112
    big-university 5551113
    big-university 5551114

`tip` は一連の電話番号を試みて、 最終的に接続できなければあきらめます。 リトライを続けさせたい場合は、`tip` を while ループに入れて 実行します。

## 19.5.8. Ctrl+P を 1 回送るために Ctrl+P を 2 度押す必要があるのはなぜ?

Ctrl+P はデフォルトの “force (強制)” 文字であり、 `tip` に次の文字が リテラルデータであることを伝えます。force 文字は “変数の設定” を意味する `~s` エスケープによって他の文字にすることができます。

`~sforce=`single-char`` と入力して改行します。`single-char` は、任意の 1 バイト文字です。 `single-char` を省略すると NUL 文字になり、これは Ctrl+2 や Ctrl+Space を押しても入力できます。また、 `single-char` に Shift+Ctrl+6 を割り当てる方法を使っているターミナルサーバもあります。

`$HOME/.tiprc` に次のように定義することで、任意の文字を force 文字として利用できます:

    force=<single-char>

## 19.5.9. 打ち込んだ文字が突然すべて大文字になりました??

Ctrl+A を押してしまい、caps-lock キーが壊れている場合のために設計された `tip` の “raise character” モードに入ったのでしょう。 既に述べたように `~s` を使って、 `raisechar` をより適切な値に 変更してください。もしこれら両方の機能を使用しないのであれば、 force 文字と同じ設定にすることもできます。

以下は Ctrl+2 や Ctrl+A などを頻繁に使う必要のある Emacs ユーザにうってつけの .tiprc ファイルのサンプルです。

    force=^^
    raisechar=^^

^^ は Shift+Ctrl+6 です。

## 19.5.10. `tip` でファイルを転送するには?

もし他の Unix のシステムと接続しているなら、 `~p`(put) や `~t`(take) でファイルの送受信ができます。これらのコマンドは 相手のシステムの上で `cat` や `echo` を実行することで 送受信をします。 書式は以下のようになります:

`~p` ローカルのファイル名 [リモートのファイル名]

`~t` リモートのファイル名 [ローカルのファイル名]

この方法ではエラーチェックをおこないませんので、zmodem などの他のプロトコルを使った方がよいでしょう。

## 19.5.11. `tip` から zmodem を実行するには?

ファイルを受信するには、 リモート側で送信プログラムを起動します。そして `~C rz` と入力すると、ローカル側へのファイルの受信が 始まります。

ファイルを送信するには、 リモート側で受信プログラムを起動します。そして `~C sz `files`` と入力すると、 リモート側への ファイルの送信が始まります。

前のページ | ホーム | 次のページ
ダイアルインサービス | 上に戻る | シリアルコンソールの設定

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。