diff --git a/ja/handbook/dialup.sgml b/ja/handbook/dialup.sgml index 60dead0e45..2e43b197e6 100644 --- a/ja/handbook/dialup.sgml +++ b/ja/handbook/dialup.sgml @@ -1,822 +1,822 @@ -ダイアルアップによるアクセス +ダイアルインサービス

原作: &a.ghelmer;.

訳: &a.max;.6 September 1996. このドキュメントでは, FreeBSD で外部からのモデムによるアクセスを受け付 けるための設定に関してまとめてあります. このドキュメントは筆者が FreeBSD 1.0, 1.1 および 1.1.5.1 での経験と, 他の UNIX 系 OS での経験を 基に書いたものですが, 必ずしも十分な内容でないかもしれませんし, 掲載し た実例もあなたが今お使いの環境とは一致しないかもしれません. また, 筆者 はこのドキュメントに従って行われた作業でデータが失われたりシステムが破 壊されるようなことがあっても, 一切責任をとれません. 設定を始める前に

筆者は, 読者が FreeBSD に関する基本的な知識をもっていることを仮定して このドキュメントをまとめました. まず, FreeBSD が既にインストールされ ていて, UNIX 系環境においてファイルの編集の方法やシステムに付属のマニュ アルを参照する方法を知っている必要があります. また, 以下に示すように, FreeBSD の特定のバージョンが必要となりますし, いくつかの用語に関する 知識, そしてモデムや多少の配線に関する知識も必要となります. FreeBSD のバージョン

まず, FreeBSD のバージョンは 1.1 以上を使用してください (バージョン 2.x でもかまいません. ). FreeBSD 1.0 には, 2種類のシリアル ドライバ が含まれているので, 混乱の元となり得ます. また, FreeBSD のシリアル ディバイス ドライバ (用語解説

以下, 簡単にいくつかの用語について解説しておきます. これらの用語やデータ通信一般に関して, より詳しい情報が必要な場合は, 外づけモデムと内蔵モデムについて

ダイアルアップのサービスに関していえば, 外づけのモデムの方が適している ようです. これは, 多くの外づけのモデムは設定を不揮発ラムに書き込んで半 永久的に保存することができますし, また RS-232 に関する重要な情報を知る ための点滅するライトによるインディケータが搭載されているからです. 点滅 するライトは, システムを見に来た訪問者に強い印象を与えるという効果だけ でなく, モデムが適切に動作しているかどうかを知るためにも有効です. 一方, たいていの内蔵型のモデムには不揮発性ラムが搭載されていないため, ディップ スイッチの変更以外に設定を保存する方法がありません. また, も しインディケータがついていても, おそらくコンピュータのケース カバーが 外されていなければその状態を確認するのは難しいでしょう. モデムとケーブル

以下のことに関して, 予め知っておく必要があります. コンピュータとモデムの間での通信が行えるようにするための接続方 法. (内蔵型の場合は接続の必要はありません) お使いのモデムのコマンドについての知識, あるいはコマンドの解説 の在処 (通信ソフトを使っての) モデムの不揮発ラムに保存可能な設定の変更 方法 1番目のモデムの接続はたいてい簡単に行えるはずです. ほとんどのストレー ト シリアル ケーブルが使えるでしょう. 使用すべきケーブルは, 両端に適 切なコネクタ (DB-25 または DB-9 の雄または雌) のついた, DCE-DTE 間接 続用のもので, 以下の信号線が接続されていなければなりません. Transmitted Data ( Received Data ( Request to Send ( Clear to Send ( Data Set Ready ( Data Terminal Ready ( Carrier Detect ( Signal Ground ( FreeBSD で 2400bps 以上の転送速度を利用する場合には, フロー制御のため に シリアル インタフェースについて

FreeBSD では, NS8250-, NS16450-, NS16550- および NS16550A- に基づ いた EIA RS-232C (CCITT V.24) 規格のシリアル インタフェースをサポート しています. 8250 および 16450 ベースのディバイスには1文字のキャラクタ バッファが搭載されています. また, 16550 系のディバイスには, 16文字分 のバッファが搭載されていて, はるかによいパフォーマンスを得られます. (ただし, 無印の 16550 では, バグがあって 16 文字バッファが利用できませ んので, 可能であれば 16550A 系のディバイスを利用してください. ) 1文字 のバッファの物は, 16550 系のものと比べて OS にかける負荷が大きいので, 16550A 系ディバイスの利用を強く推奨します. 多数のシリアル ポートを利 用する場合や, 負荷の高いシステムにおいては, 16550A 系ディバイスを使う ことで, エラー発生率を低く押さえることができます. 概要

FreeBSD は以下の手順でモデムからのログインを受付ます. /dev/ttyd0) がオープンされるのを辛抱強く待ちます. 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0 ユーザがモデムに電話をかけ, モデム同士が接続されると, モデムの /usr/bin/login を起動して, パスワードの入力を要求し, その 後ユーザのシェルを起動します. それでは, 続いて設定についての解説です. Kernel の設定

通常, FreeBSD の kernel は, PC-DOS の世界で /sbin/dmesg コマンドを使って, ブート時の出力メッセージ を確認してください. 特に, /sbin/dmesg | grep 'sio' たとえば, シリアル ポートを四つ持つシステムの場合は, 以下のようなシリ アル ポートに関するメッセージが kernel によって表示されます. sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A sio2 at 0x3e8-0x3ef irq 5 on isa sio2: type 16550A sio3 at 0x2e8-0x2ef irq 9 on isa sio3: type 16550A もし, kernel に正常に認識されないポートがある場合は, おそらくカスタマ イズした kernel を構築する必要があるでしょう. kernel 構築と構築のための設定に関しては, BSD System Manager's Manual の ``Building Berkeley Kernels with Config (config コマンドによる BSD kernel の構築) '' [ソース ファイルは /usr/src/share/doc/smm にあります]と ``FreeBSD Configuration Options'' [ /sys/conf/options および /sys/arch/conf/options.archarchの部分をたとえばi386としたファイル ] を参照 してください. kernel の設定と構築をするためには, kernel のソース (FreeBSD 1.1 では srcdist/srcsys.??, FreeBSD 1.1.5.1 では srcdist/sys.??, またFreeBSD 2.0 では総てのソース)を展開 する必要があります. まだ自分のシステムの kernel 用のコンフィギュレーション ファイルを作っ ていない場合は, /sys/i386/conf device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr システムに搭載されていないディバイスに関する記述は, コメントアウトまた は削除してしまってかまいません. Boca の BB2016 のようなマルチポートの シリアル ボードをお持ちの場合は, できませんので注意が必要です. (マルチポートのシリアル ボードの 場合は, 複数の 16550A ベースのポートで一つまたは二つの IRQ を共有する ための機構を備えています. ) コンフィギュレーション ファイルの編集が終わったら, ``Building Berkeley Kernels with Config (config コマンドによる BSD kernel の構築)'' および ディバイス スペシャル ファイル

kernel に組み込まれているほとんどのディバイスは, /dev ディレ クトリにある, 「ディバイス スペシャル ファイル」を介してアクセスされ ます. /dev/ttyd? およ び, 発信用の /dev/cua0? が利用されます. さらに, FreeBSD の 1.1.5 以降では, 初期化ディバイス (/dev/ttyi?/dev/cuai0?)およびロッキング ディバイス (/dev/ttyld?/dev/cual0?) も合わせて利用されます. 初期化ディバイスは, 通信 ポートがオープンされる度に, そのポートの初期設定を行うために使われます. たとえば, CTS/RTS によるフロー制御を行うモデムが接続されてい る場合の ディバイス スペシャル ファイルの作成

ディバイス スペシャル ファイルの管理は, ディレクトリ /dev にあるシェル スクリプト /dev/dev/ttyd? のディバイス ファイルだけでなく, /dev/cua0? (および FreeBSD 1.1.5 以降では総ての初期化ディバイ スとロッキング ディバイスのスペシャル ファイル) も作成します. さらに, もしシリアル端末用のスペシャル ファイル/dev/tty0? が存在すれ ば, それらの削除も行います. ディバイス スペシャル ファイルの作成後, これらのファイルのパーミション が適切に設定されていて, これらのディバイスを利用してもよいユーザのみが 読み書きできるようになっていることを確認してください. (特に /dev/cua* のパーミションには注意を払ってください. ) この確認 を怠ると, 一般のユーザがあなたのモデムを使うことができるようなことにな りかねません. デフォルトの /dev/cua* のパーミションは, 以下の ようになっていて, たいていの場合適切なものだと思います. crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cua01 crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuai01 crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cual01 上の設定では, ユーザ 設定ファイル

FreeBSD のシステムへのダイアル アップによるアクセスを実現するために編 集が必要と思われる設定ファイルが, /etc ディレクトリに三つあ ります. まず, /etc/gettytab には, /usr/libexec/getty デーモンの設定を記述します. つぎに, /etc/ttys に保存されている情報から, /sbin/init はど の /etc/rc.serial スクリプトに, それ以前のものならば /etc/rc.local スクリプトにシリアル ポートの初期化のためのコマ ンドを記述することができます. UNIX にダイアル アップ モデムを接続する方法には, 二つの考え方がありま す. 一つの方法は, ダイアル インしてくるユーザの接続速度に関係なく, 常 にモデムとローカルのコンピュータの RS-232 インタフェースの接続速度を一 定に保つように設定する方法です. この設定の長所は, ユーザがダイアル イ ンして接続されると, 即座にシステムからのログイン プロンプトが送信され るということです. 短所は, システムが実際のモデム間の速度を知ることがで きないために, Emacs のようなフル スクリーンのプログラムが, 端末との接 続速度が遅い場合でも, そのような場合に効果的な方法で画面出力を行わない 点です. もう一つは, モデムの RS-232 インタフェースとコンピュータの接続速度を, モデム間の接続速度に応じて変化させるような設定です. たとえば, モデム間 の接続が V.32bis (14.4 Kbps) ならば, モデムとコンピュータの間の接続を 19.2 Kbps とし, モデム間の接続が 2400 bps の時には, モデムとコンピュー タ間も 2400 bps で接続するような設定をします. この場合, <Enter> キーを繰り返し押さなければならない ということを知っていると仮定しています. もし接続速度が間違っている場合, /etc/gettytab

/etc/gettytab は, 固定速度の設定

モデムとコンピュータ間の通信速度を固定して使う場合, おそらく /etc/gettytab に特に変更を加える必要はないはずです. 可変速度の設定

/etc/gettytab に記述する必要があります. もし, 2400 bps のモ デムをお使いになるのであれば, 既存の # # Fast dialup terminals, 2400/1200/300 rotary (can start either way) # D2400|d2400|Fast-Dial-2400:\ :nx=D1200:tc=2400-baud: 3|D1200|Fast-Dial-1200:\ :nx=D300:tc=1200-baud: 5|D300|Fast-Dial-300:\ :nx=D2400:tc=300-baud: 高速モデムをお使いの場合は, おそらく /etc/gettytab に新たなエ ントリを追加する必要があります. 以下の例は, 14.4 Kbps のモデムを, 最 大インタフェース速度を 19.2 Kbps として利用するためのエントリです. # # Additions for a V.32bis Modem # um|V300|High Speed Modem at 300,8-bit:\ :nx=V19200:tc=std.300: un|V1200|High Speed Modem at 1200,8-bit:\ :nx=V300:tc=std.1200: uo|V2400|High Speed Modem at 2400,8-bit:\ :nx=V1200:tc=std.2400: up|V9600|High Speed Modem at 9600,8-bit:\ :nx=V2400:tc=std.9600: uq|V19200|High Speed Modem at 19200,8-bit:\ :nx=V9600:tc=std.19200: 上記の例を利用した場合, FreeBSD 1.1.5 以降ではパリティなし, 8ビットの 接続が行われます. FreeBSD 1.1 では, のエントリに追加することで, パリティなし, 8ビットの接続が行われますが, このパラメータを追加しなければ接続は偶数 パリティ, 7ビットになります. 上記の例では, まず 19.2 Kbps (V.32bis) によるモデムとコンピュータ間の 接続を試み, 続いて 9600 bps (V.32), 2400 bps, 1200 bps, 300 bpsと順に 試み, 再び 19.2 Kbps による接続を試みるという循環に入ります. この接続 速度の循環は, # # Additions for a V.32bis or V.34 Modem # Starting at 57.6 Kbps # vm|VH300|Very High Speed Modem at 300,8-bit:\ :nx=VH57600:tc=std.300: vn|VH1200|Very High Speed Modem at 1200,8-bit:\ :nx=VH300:tc=std.1200: vo|VH2400|Very High Speed Modem at 2400,8-bit:\ :nx=VH1200:tc=std.2400: vp|VH9600|Very High Speed Modem at 9600,8-bit:\ :nx=VH2400:tc=std.9600: vq|VH57600|Very High Speed Modem at 57600,8-bit:\ :nx=VH9600:tc=std.57600: もし, お使いの CPU が低速のものであったり, CPU に対する負荷が高い場合 で, 16650A 系のシリアル ポートをお使いでない場合, 57.6 Kbps の接続に おいて, sio の ``slio'' エラーが発生するかもしれません. /etc/ttys

/etc/ttys には, /etc/ttys は, /etc/ttys の既存の行を変更するか, あるいは新しい行を追加して, ttyd0 "/usr/libexec/getty xxx" dialup on 1番目の項目は, このエントリで対象とするディバイス スペシャル ファイル です. 上の例では /dev/ttyd0"/usr/libexec/getty (/etc/ttys の修正がすんだら, 以下のようなコマンドを使って /etc/ttys を 読み込み直させてください. kill -1 1 ただ, もし初めてシステムを設定しているのであれば, モデムが適切に設定さ れて接続されるまでは, 固定速度の設定

速度を固定する設定では, /etc/ttys の中で, ttyd0 "/usr/libexec/getty std.19200" dialup on 別の速度でモデムのポートのスピードを固定したい場合は, /etc/gettytab から適切なエントリを選んで, 上の例の std. として, 適切な速度のも のに置き換えてください. 可変速度の設定

可変速度の設定では, /etc/gettytab の中の適切な「自動速度調整」の初期設定のエントリを参照していなければな りません. たとえば, もし前述の 19.2 Kbps から接続を試みる可変速度の設 定例 ( ttyd0 "/usr/libexec/getty V19200" dialup on /etc/rc.serial または /etc/rc.local

V.32, V.32bis または V.34 モデムのような高速モデムを利用する場合, ハー ドウェア (RTS/CTS) フロー制御を行う必要があります. FreeBSD kernel のモデム ポートにハードウェア フロー制御のフラグを設定するため の /etc/rc.serial に, FreeBSD 1.1 では /etc/rc.local に 記述できます. たとえば, FreeBSD 1.1.5.1 の /etc/rc.serial のサンプルは以下 のとおりです. #!/bin/sh # # Serial port initial configuration stty -f /dev/ttyid1 crtscts stty -f /dev/cuai01 crtscts この例では, /etc/rc.local に追加されていました. # Set serial ports to use RTS/CTS flow control stty -f /dev/ttyd0 crtscts stty -f /dev/ttyd1 crtscts stty -f /dev/ttyd2 crtscts stty -f /dev/ttyd3 crtscts FreeBSD 1.1 には初期化のためのディバイス スペシャル ファイルがないので, ディバイス ファイルそのものにフラグを設定して, その後はフラグをクリア してしまうような極悪人が現れないことを願うしかありません. モデムの設定

もし, あなたのモデムがパラメータを不揮発ラムに保存できるタイプならば, PC-DOS 上の Telix や FreeBSD 上の 接続時に 接続時に 送信時フロー制御には XON/XOFF によるフロー制御を行わない. 受信時のフロー制御は Quiet mode (リザルト コードを返さない) コマンド エコーを返さない. これらを実現するためのコマンドやディップ スイッチの設定に関しては, モ デムのマニュアルを参照してください. 以下に, USRobotics Sportster の 14,400 bps の外づけモデムの設定例を示 しておきます. ATZ AT&C1&D2&H1&I0&R2&W ことのついでに, たとえば, V42.bis や MNP5 のデータ圧縮を使用するかど うかなどのモデムの他の設定について確認, 調整しておくのもよいかもしれま せん. さらに, USRobotics Sportster の 14,400 bps の外づけモデムでは, 以下の ようなディップ スイッチの設定も必要です. 他のモデムをお使いの方も, 以 下の例を設定の参考にしてください. スイッチ1: UP - DTR 標準 スイッチ2: 無視 (リザルト コードを単語形式にするか数値形式にす るか) スイッチ3: UP - リザルト コードを返さない スイッチ4: DOWN - コマンド エコーを返さない スイッチ5: UP - 自動着信 スイッチ6: UP - CD 標準 スイッチ7: UP - 不揮発ラムからデフォルト値をロードする スイッチ8: 無視 (Smart Mode/Dumb Mode) リザルト コードを返さないように設定しておかないと, 固定速度の設定

固定速度の設定では, モデムとコンピュータ間の通信速度をモデムとモデム間 の接続速度に関係なく, 常に一定に保つように, モデムを設定する必要があり ます. USRobotics Sportster の 14,400 bps 外づけモデムの場合, 以下のコ マンドで, モデムとコンピュータ間の速度が, コマンド送信時の速度に固定さ れます. ATZ AT&B1&W 可変速度の設定

可変速度の設定では, シリアル ポートの速度が, 着信速度に応じて変化する ように設定しなければいけません. USRobotics Sporster の 14,400 bps 外 づけモデムの場合, 以下のコマンドで, エラー訂正機能を利用した通信の場合 は, コマンドを送信した時の通信速度にシリアル ポートの速度を固定し, エ ラー訂正機能を利用しない接続では, シリアル ポートの速度が変化するよう に設定されます. ATZ AT&B2&W モデムの設定の確認

ほとんどの高速モデムには, 現在の設定をある程度人間にも理解できる形式に して表示させるコマンドがあります. USRobotics Sporster の 14,400 bps 外づけモデムの場合は, トラブルシューティング

以下の手順でダイアル アップ モデムの動作を確認することができます. FreeBSD システムの動作確認

モデムを FreeBSD システムに接続し, システムをブートします. あなたのモ デムにモデムの状態を確認するためのインジケータがあれば, 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1 モデムにまだ着信がない状態の時に, 以下のように上とは異なる出力があった 場合, 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0 ^^ /etc/ttys の内容を確認し, 書式などに誤りがないか 調べてみてください. また, ログ ファイル /var/log/messages/etc/ttys , /etc/gettytab の二つの設定ファイルと, ディバイス スペシャル ファイル /dev/ttyd? を確認し, 記述に誤りがないか, 足りないエ ントリがないか, 足りないディバイス スペシャルファイルがないかといった 点について調べてみてください. モデムで接続してみる

実際にモデムを使って別のコンピュータから接続してみてください. この時, 8ビット, パリティなし, 1ストップ ビットで接続するようにしてください. 接続後すぐにプロンプトが返ってこない場合や, 無意味な文字列が表示される 場合は, 1秒に1回くらいの割合で <Enter> キーを押してみて ください. しばらくたって, なおも BREAK 信号を送信してみてください. この時, 端末側で使って いるモデムが高速モデムならば, このモデムのインタフェースの接続速度を固 定してから, 再度ダイアル インしてみてください. (たとえば, USRobotics Sportster の場合は, AT&B1) それでもまだ /etc/gettytab の以下の点について再度確認してみてください. /etc/ttys の対応する行の 2番目の項目で, /etc/gettytab の中で定義されているエントリが指定されているか /etc/gettytab の中で定義されているもの が指定されているか /etc/gettytab の中で定義されているもの が指定されているか もしダイアル インしても, FreeBSD システム側のモデムが応答しない場合は, FreeBSD 側のモデムが 謝辞

以下の方々から, 多くのコメントやアドバイスをいただきました. ここに謝意 を表します. diff --git a/ja_JP.EUC/handbook/dialup.sgml b/ja_JP.EUC/handbook/dialup.sgml index 60dead0e45..2e43b197e6 100644 --- a/ja_JP.EUC/handbook/dialup.sgml +++ b/ja_JP.EUC/handbook/dialup.sgml @@ -1,822 +1,822 @@ -ダイアルアップによるアクセス +ダイアルインサービス

原作: &a.ghelmer;.

訳: &a.max;.6 September 1996. このドキュメントでは, FreeBSD で外部からのモデムによるアクセスを受け付 けるための設定に関してまとめてあります. このドキュメントは筆者が FreeBSD 1.0, 1.1 および 1.1.5.1 での経験と, 他の UNIX 系 OS での経験を 基に書いたものですが, 必ずしも十分な内容でないかもしれませんし, 掲載し た実例もあなたが今お使いの環境とは一致しないかもしれません. また, 筆者 はこのドキュメントに従って行われた作業でデータが失われたりシステムが破 壊されるようなことがあっても, 一切責任をとれません. 設定を始める前に

筆者は, 読者が FreeBSD に関する基本的な知識をもっていることを仮定して このドキュメントをまとめました. まず, FreeBSD が既にインストールされ ていて, UNIX 系環境においてファイルの編集の方法やシステムに付属のマニュ アルを参照する方法を知っている必要があります. また, 以下に示すように, FreeBSD の特定のバージョンが必要となりますし, いくつかの用語に関する 知識, そしてモデムや多少の配線に関する知識も必要となります. FreeBSD のバージョン

まず, FreeBSD のバージョンは 1.1 以上を使用してください (バージョン 2.x でもかまいません. ). FreeBSD 1.0 には, 2種類のシリアル ドライバ が含まれているので, 混乱の元となり得ます. また, FreeBSD のシリアル ディバイス ドライバ (用語解説

以下, 簡単にいくつかの用語について解説しておきます. これらの用語やデータ通信一般に関して, より詳しい情報が必要な場合は, 外づけモデムと内蔵モデムについて

ダイアルアップのサービスに関していえば, 外づけのモデムの方が適している ようです. これは, 多くの外づけのモデムは設定を不揮発ラムに書き込んで半 永久的に保存することができますし, また RS-232 に関する重要な情報を知る ための点滅するライトによるインディケータが搭載されているからです. 点滅 するライトは, システムを見に来た訪問者に強い印象を与えるという効果だけ でなく, モデムが適切に動作しているかどうかを知るためにも有効です. 一方, たいていの内蔵型のモデムには不揮発性ラムが搭載されていないため, ディップ スイッチの変更以外に設定を保存する方法がありません. また, も しインディケータがついていても, おそらくコンピュータのケース カバーが 外されていなければその状態を確認するのは難しいでしょう. モデムとケーブル

以下のことに関して, 予め知っておく必要があります. コンピュータとモデムの間での通信が行えるようにするための接続方 法. (内蔵型の場合は接続の必要はありません) お使いのモデムのコマンドについての知識, あるいはコマンドの解説 の在処 (通信ソフトを使っての) モデムの不揮発ラムに保存可能な設定の変更 方法 1番目のモデムの接続はたいてい簡単に行えるはずです. ほとんどのストレー ト シリアル ケーブルが使えるでしょう. 使用すべきケーブルは, 両端に適 切なコネクタ (DB-25 または DB-9 の雄または雌) のついた, DCE-DTE 間接 続用のもので, 以下の信号線が接続されていなければなりません. Transmitted Data ( Received Data ( Request to Send ( Clear to Send ( Data Set Ready ( Data Terminal Ready ( Carrier Detect ( Signal Ground ( FreeBSD で 2400bps 以上の転送速度を利用する場合には, フロー制御のため に シリアル インタフェースについて

FreeBSD では, NS8250-, NS16450-, NS16550- および NS16550A- に基づ いた EIA RS-232C (CCITT V.24) 規格のシリアル インタフェースをサポート しています. 8250 および 16450 ベースのディバイスには1文字のキャラクタ バッファが搭載されています. また, 16550 系のディバイスには, 16文字分 のバッファが搭載されていて, はるかによいパフォーマンスを得られます. (ただし, 無印の 16550 では, バグがあって 16 文字バッファが利用できませ んので, 可能であれば 16550A 系のディバイスを利用してください. ) 1文字 のバッファの物は, 16550 系のものと比べて OS にかける負荷が大きいので, 16550A 系ディバイスの利用を強く推奨します. 多数のシリアル ポートを利 用する場合や, 負荷の高いシステムにおいては, 16550A 系ディバイスを使う ことで, エラー発生率を低く押さえることができます. 概要

FreeBSD は以下の手順でモデムからのログインを受付ます. /dev/ttyd0) がオープンされるのを辛抱強く待ちます. 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0 ユーザがモデムに電話をかけ, モデム同士が接続されると, モデムの /usr/bin/login を起動して, パスワードの入力を要求し, その 後ユーザのシェルを起動します. それでは, 続いて設定についての解説です. Kernel の設定

通常, FreeBSD の kernel は, PC-DOS の世界で /sbin/dmesg コマンドを使って, ブート時の出力メッセージ を確認してください. 特に, /sbin/dmesg | grep 'sio' たとえば, シリアル ポートを四つ持つシステムの場合は, 以下のようなシリ アル ポートに関するメッセージが kernel によって表示されます. sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A sio2 at 0x3e8-0x3ef irq 5 on isa sio2: type 16550A sio3 at 0x2e8-0x2ef irq 9 on isa sio3: type 16550A もし, kernel に正常に認識されないポートがある場合は, おそらくカスタマ イズした kernel を構築する必要があるでしょう. kernel 構築と構築のための設定に関しては, BSD System Manager's Manual の ``Building Berkeley Kernels with Config (config コマンドによる BSD kernel の構築) '' [ソース ファイルは /usr/src/share/doc/smm にあります]と ``FreeBSD Configuration Options'' [ /sys/conf/options および /sys/arch/conf/options.archarchの部分をたとえばi386としたファイル ] を参照 してください. kernel の設定と構築をするためには, kernel のソース (FreeBSD 1.1 では srcdist/srcsys.??, FreeBSD 1.1.5.1 では srcdist/sys.??, またFreeBSD 2.0 では総てのソース)を展開 する必要があります. まだ自分のシステムの kernel 用のコンフィギュレーション ファイルを作っ ていない場合は, /sys/i386/conf device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr システムに搭載されていないディバイスに関する記述は, コメントアウトまた は削除してしまってかまいません. Boca の BB2016 のようなマルチポートの シリアル ボードをお持ちの場合は, できませんので注意が必要です. (マルチポートのシリアル ボードの 場合は, 複数の 16550A ベースのポートで一つまたは二つの IRQ を共有する ための機構を備えています. ) コンフィギュレーション ファイルの編集が終わったら, ``Building Berkeley Kernels with Config (config コマンドによる BSD kernel の構築)'' および ディバイス スペシャル ファイル

kernel に組み込まれているほとんどのディバイスは, /dev ディレ クトリにある, 「ディバイス スペシャル ファイル」を介してアクセスされ ます. /dev/ttyd? およ び, 発信用の /dev/cua0? が利用されます. さらに, FreeBSD の 1.1.5 以降では, 初期化ディバイス (/dev/ttyi?/dev/cuai0?)およびロッキング ディバイス (/dev/ttyld?/dev/cual0?) も合わせて利用されます. 初期化ディバイスは, 通信 ポートがオープンされる度に, そのポートの初期設定を行うために使われます. たとえば, CTS/RTS によるフロー制御を行うモデムが接続されてい る場合の ディバイス スペシャル ファイルの作成

ディバイス スペシャル ファイルの管理は, ディレクトリ /dev にあるシェル スクリプト /dev/dev/ttyd? のディバイス ファイルだけでなく, /dev/cua0? (および FreeBSD 1.1.5 以降では総ての初期化ディバイ スとロッキング ディバイスのスペシャル ファイル) も作成します. さらに, もしシリアル端末用のスペシャル ファイル/dev/tty0? が存在すれ ば, それらの削除も行います. ディバイス スペシャル ファイルの作成後, これらのファイルのパーミション が適切に設定されていて, これらのディバイスを利用してもよいユーザのみが 読み書きできるようになっていることを確認してください. (特に /dev/cua* のパーミションには注意を払ってください. ) この確認 を怠ると, 一般のユーザがあなたのモデムを使うことができるようなことにな りかねません. デフォルトの /dev/cua* のパーミションは, 以下の ようになっていて, たいていの場合適切なものだと思います. crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cua01 crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuai01 crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cual01 上の設定では, ユーザ 設定ファイル

FreeBSD のシステムへのダイアル アップによるアクセスを実現するために編 集が必要と思われる設定ファイルが, /etc ディレクトリに三つあ ります. まず, /etc/gettytab には, /usr/libexec/getty デーモンの設定を記述します. つぎに, /etc/ttys に保存されている情報から, /sbin/init はど の /etc/rc.serial スクリプトに, それ以前のものならば /etc/rc.local スクリプトにシリアル ポートの初期化のためのコマ ンドを記述することができます. UNIX にダイアル アップ モデムを接続する方法には, 二つの考え方がありま す. 一つの方法は, ダイアル インしてくるユーザの接続速度に関係なく, 常 にモデムとローカルのコンピュータの RS-232 インタフェースの接続速度を一 定に保つように設定する方法です. この設定の長所は, ユーザがダイアル イ ンして接続されると, 即座にシステムからのログイン プロンプトが送信され るということです. 短所は, システムが実際のモデム間の速度を知ることがで きないために, Emacs のようなフル スクリーンのプログラムが, 端末との接 続速度が遅い場合でも, そのような場合に効果的な方法で画面出力を行わない 点です. もう一つは, モデムの RS-232 インタフェースとコンピュータの接続速度を, モデム間の接続速度に応じて変化させるような設定です. たとえば, モデム間 の接続が V.32bis (14.4 Kbps) ならば, モデムとコンピュータの間の接続を 19.2 Kbps とし, モデム間の接続が 2400 bps の時には, モデムとコンピュー タ間も 2400 bps で接続するような設定をします. この場合, <Enter> キーを繰り返し押さなければならない ということを知っていると仮定しています. もし接続速度が間違っている場合, /etc/gettytab

/etc/gettytab は, 固定速度の設定

モデムとコンピュータ間の通信速度を固定して使う場合, おそらく /etc/gettytab に特に変更を加える必要はないはずです. 可変速度の設定

/etc/gettytab に記述する必要があります. もし, 2400 bps のモ デムをお使いになるのであれば, 既存の # # Fast dialup terminals, 2400/1200/300 rotary (can start either way) # D2400|d2400|Fast-Dial-2400:\ :nx=D1200:tc=2400-baud: 3|D1200|Fast-Dial-1200:\ :nx=D300:tc=1200-baud: 5|D300|Fast-Dial-300:\ :nx=D2400:tc=300-baud: 高速モデムをお使いの場合は, おそらく /etc/gettytab に新たなエ ントリを追加する必要があります. 以下の例は, 14.4 Kbps のモデムを, 最 大インタフェース速度を 19.2 Kbps として利用するためのエントリです. # # Additions for a V.32bis Modem # um|V300|High Speed Modem at 300,8-bit:\ :nx=V19200:tc=std.300: un|V1200|High Speed Modem at 1200,8-bit:\ :nx=V300:tc=std.1200: uo|V2400|High Speed Modem at 2400,8-bit:\ :nx=V1200:tc=std.2400: up|V9600|High Speed Modem at 9600,8-bit:\ :nx=V2400:tc=std.9600: uq|V19200|High Speed Modem at 19200,8-bit:\ :nx=V9600:tc=std.19200: 上記の例を利用した場合, FreeBSD 1.1.5 以降ではパリティなし, 8ビットの 接続が行われます. FreeBSD 1.1 では, のエントリに追加することで, パリティなし, 8ビットの接続が行われますが, このパラメータを追加しなければ接続は偶数 パリティ, 7ビットになります. 上記の例では, まず 19.2 Kbps (V.32bis) によるモデムとコンピュータ間の 接続を試み, 続いて 9600 bps (V.32), 2400 bps, 1200 bps, 300 bpsと順に 試み, 再び 19.2 Kbps による接続を試みるという循環に入ります. この接続 速度の循環は, # # Additions for a V.32bis or V.34 Modem # Starting at 57.6 Kbps # vm|VH300|Very High Speed Modem at 300,8-bit:\ :nx=VH57600:tc=std.300: vn|VH1200|Very High Speed Modem at 1200,8-bit:\ :nx=VH300:tc=std.1200: vo|VH2400|Very High Speed Modem at 2400,8-bit:\ :nx=VH1200:tc=std.2400: vp|VH9600|Very High Speed Modem at 9600,8-bit:\ :nx=VH2400:tc=std.9600: vq|VH57600|Very High Speed Modem at 57600,8-bit:\ :nx=VH9600:tc=std.57600: もし, お使いの CPU が低速のものであったり, CPU に対する負荷が高い場合 で, 16650A 系のシリアル ポートをお使いでない場合, 57.6 Kbps の接続に おいて, sio の ``slio'' エラーが発生するかもしれません. /etc/ttys

/etc/ttys には, /etc/ttys は, /etc/ttys の既存の行を変更するか, あるいは新しい行を追加して, ttyd0 "/usr/libexec/getty xxx" dialup on 1番目の項目は, このエントリで対象とするディバイス スペシャル ファイル です. 上の例では /dev/ttyd0"/usr/libexec/getty (/etc/ttys の修正がすんだら, 以下のようなコマンドを使って /etc/ttys を 読み込み直させてください. kill -1 1 ただ, もし初めてシステムを設定しているのであれば, モデムが適切に設定さ れて接続されるまでは, 固定速度の設定

速度を固定する設定では, /etc/ttys の中で, ttyd0 "/usr/libexec/getty std.19200" dialup on 別の速度でモデムのポートのスピードを固定したい場合は, /etc/gettytab から適切なエントリを選んで, 上の例の std. として, 適切な速度のも のに置き換えてください. 可変速度の設定

可変速度の設定では, /etc/gettytab の中の適切な「自動速度調整」の初期設定のエントリを参照していなければな りません. たとえば, もし前述の 19.2 Kbps から接続を試みる可変速度の設 定例 ( ttyd0 "/usr/libexec/getty V19200" dialup on /etc/rc.serial または /etc/rc.local

V.32, V.32bis または V.34 モデムのような高速モデムを利用する場合, ハー ドウェア (RTS/CTS) フロー制御を行う必要があります. FreeBSD kernel のモデム ポートにハードウェア フロー制御のフラグを設定するため の /etc/rc.serial に, FreeBSD 1.1 では /etc/rc.local に 記述できます. たとえば, FreeBSD 1.1.5.1 の /etc/rc.serial のサンプルは以下 のとおりです. #!/bin/sh # # Serial port initial configuration stty -f /dev/ttyid1 crtscts stty -f /dev/cuai01 crtscts この例では, /etc/rc.local に追加されていました. # Set serial ports to use RTS/CTS flow control stty -f /dev/ttyd0 crtscts stty -f /dev/ttyd1 crtscts stty -f /dev/ttyd2 crtscts stty -f /dev/ttyd3 crtscts FreeBSD 1.1 には初期化のためのディバイス スペシャル ファイルがないので, ディバイス ファイルそのものにフラグを設定して, その後はフラグをクリア してしまうような極悪人が現れないことを願うしかありません. モデムの設定

もし, あなたのモデムがパラメータを不揮発ラムに保存できるタイプならば, PC-DOS 上の Telix や FreeBSD 上の 接続時に 接続時に 送信時フロー制御には XON/XOFF によるフロー制御を行わない. 受信時のフロー制御は Quiet mode (リザルト コードを返さない) コマンド エコーを返さない. これらを実現するためのコマンドやディップ スイッチの設定に関しては, モ デムのマニュアルを参照してください. 以下に, USRobotics Sportster の 14,400 bps の外づけモデムの設定例を示 しておきます. ATZ AT&C1&D2&H1&I0&R2&W ことのついでに, たとえば, V42.bis や MNP5 のデータ圧縮を使用するかど うかなどのモデムの他の設定について確認, 調整しておくのもよいかもしれま せん. さらに, USRobotics Sportster の 14,400 bps の外づけモデムでは, 以下の ようなディップ スイッチの設定も必要です. 他のモデムをお使いの方も, 以 下の例を設定の参考にしてください. スイッチ1: UP - DTR 標準 スイッチ2: 無視 (リザルト コードを単語形式にするか数値形式にす るか) スイッチ3: UP - リザルト コードを返さない スイッチ4: DOWN - コマンド エコーを返さない スイッチ5: UP - 自動着信 スイッチ6: UP - CD 標準 スイッチ7: UP - 不揮発ラムからデフォルト値をロードする スイッチ8: 無視 (Smart Mode/Dumb Mode) リザルト コードを返さないように設定しておかないと, 固定速度の設定

固定速度の設定では, モデムとコンピュータ間の通信速度をモデムとモデム間 の接続速度に関係なく, 常に一定に保つように, モデムを設定する必要があり ます. USRobotics Sportster の 14,400 bps 外づけモデムの場合, 以下のコ マンドで, モデムとコンピュータ間の速度が, コマンド送信時の速度に固定さ れます. ATZ AT&B1&W 可変速度の設定

可変速度の設定では, シリアル ポートの速度が, 着信速度に応じて変化する ように設定しなければいけません. USRobotics Sporster の 14,400 bps 外 づけモデムの場合, 以下のコマンドで, エラー訂正機能を利用した通信の場合 は, コマンドを送信した時の通信速度にシリアル ポートの速度を固定し, エ ラー訂正機能を利用しない接続では, シリアル ポートの速度が変化するよう に設定されます. ATZ AT&B2&W モデムの設定の確認

ほとんどの高速モデムには, 現在の設定をある程度人間にも理解できる形式に して表示させるコマンドがあります. USRobotics Sporster の 14,400 bps 外づけモデムの場合は, トラブルシューティング

以下の手順でダイアル アップ モデムの動作を確認することができます. FreeBSD システムの動作確認

モデムを FreeBSD システムに接続し, システムをブートします. あなたのモ デムにモデムの状態を確認するためのインジケータがあれば, 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1 モデムにまだ着信がない状態の時に, 以下のように上とは異なる出力があった 場合, 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0 ^^ /etc/ttys の内容を確認し, 書式などに誤りがないか 調べてみてください. また, ログ ファイル /var/log/messages/etc/ttys , /etc/gettytab の二つの設定ファイルと, ディバイス スペシャル ファイル /dev/ttyd? を確認し, 記述に誤りがないか, 足りないエ ントリがないか, 足りないディバイス スペシャルファイルがないかといった 点について調べてみてください. モデムで接続してみる

実際にモデムを使って別のコンピュータから接続してみてください. この時, 8ビット, パリティなし, 1ストップ ビットで接続するようにしてください. 接続後すぐにプロンプトが返ってこない場合や, 無意味な文字列が表示される 場合は, 1秒に1回くらいの割合で <Enter> キーを押してみて ください. しばらくたって, なおも BREAK 信号を送信してみてください. この時, 端末側で使って いるモデムが高速モデムならば, このモデムのインタフェースの接続速度を固 定してから, 再度ダイアル インしてみてください. (たとえば, USRobotics Sportster の場合は, AT&B1) それでもまだ /etc/gettytab の以下の点について再度確認してみてください. /etc/ttys の対応する行の 2番目の項目で, /etc/gettytab の中で定義されているエントリが指定されているか /etc/gettytab の中で定義されているもの が指定されているか /etc/gettytab の中で定義されているもの が指定されているか もしダイアル インしても, FreeBSD システム側のモデムが応答しない場合は, FreeBSD 側のモデムが 謝辞

以下の方々から, 多くのコメントやアドバイスをいただきました. ここに謝意 を表します.