FreeBSD 2.X についての FAQ (よくある質問とその答え) : シリアル接続 : どのようにしたら モデム経由でダイヤルアップログインができるのでしょうか?
Previous: ポートにデフォルトのパラメータを設定する事は出来ますか?
Next: ダムターミナルを FreeBSD マシンに接続するにはどうしたらよいのでしょうか?

11.8. どのようにしたら モデム経由でダイヤルアップログインができるのでしょうか?

つまり, インターネットサービスプロバイダーになりたいのですね. それにはまず, 1 台ないし複数の自動応答モデムが必要です. モデムには, キャリアーを検出した時には CD信号を出力し, そうでない場合には出力しないことが必要とされます. また DTR 信号が on から off になった時には, 電話回線を切断し, モデム自身をリセットしなければなりません. おそらく, RTS/CTS フロー制御を使うか, ローカルフロー制御をまったく使わないかのどちらかでしょう. 最後に, コンピュータとモデムの間は固定速度でなければなりません. ただ, (ダイヤルアップの発呼者に対して親切であるためには) こちらのモデムと相手側のモデムの間の速度を, モデム間で自動調整できるようにすべきでしょう.

多くあるヘイズコマンド互換モデムに対して, 次のコマンドはこれらの設定をおこない, その設定を不揮発性メモリーに保存します.

        AT &C1 &D3 &K3 &Q6 S0=1 &W
      

MS-DOS のターミナルプログラムに頼らずに AT コマンドを送出するには, これらの AT コマンドを入力するには のセクション以下を参照してください.

次に, モデム用のエントリを /etc/ttys に作成しましょう. このファイルには, オペレーティングシステムがログインを待っているすべてのポートが記述されています. 以下のような行を追加してください.

        ttyd1 "/usr/libexec/getty std.57600" dialup on insecure
      

この行は, 2 番目のシリアルポート (/dev/ttyd1) には, 57600 bps の通信速度でノンパリティ (std.57600 : これは /etc/gettytabに記述されています.) のモデムが接続されていることを示しています. このポートの端末タイプは ``dialup'' です. またこのポートは, ``on'' すなわちログイン可能であり, ``insecure'' これは root がこのポートから直接ログインするのは, 許可されていないということを意味します. このようなダイヤルインポートに対しては, ttydX のエントリを使用してください.

これが一般的な, ターミナルタイプとして ``dialup'' を使う方法です. 多くのユーザーは, .profile や .login で, login 時の端末タイプが dialup であった場合には, 実際の端末タイプをユーザーに問い合わせるように設定しています. この例は, ポートが ``insecure'' でした. このポートで root になるには, 一般ユーザーとしてログインし, それから ``su'' を使って root になってください. もし, ``secure'' を指定したならば, 直接 root がそのポートからログインできます.

/etc/ttys に変更を加えた後は, hungup もしくはHUP シグナルを init プロセスに送る必要があります.

        kill -HUP 1
      

この操作は init プロセスに /etc/ttys を再読み込みさせます. これにより, init プロセスは getty プロセスを すべての ``on'' となっているポートに起動させます. 次のようにして, ポートがログイン可能かを知ることができます.

        ps -ax | grep '[t]tyd1'
      

ログイン可能であれば, 次のような出力が得られるはずです.

        747 ??  I      0:00.04 /usr/libexec/getty std.57600 ttyd1
      


FreeBSD 2.X についての FAQ (よくある質問とその答え) : シリアル接続 : どのようにしたら モデム経由でダイヤルアップログインができるのでしょうか?
Previous: ポートにデフォルトのパラメータを設定する事は出来ますか?
Next: ダムターミナルを FreeBSD マシンに接続するにはどうしたらよいのでしょうか?