FreeBSD パソコン通信設定概論第1

Copyright(c) 1996 George(小浜 純). All rights reserved.
Last Update 97/09/24 06:30:35

[ホームページ] [日記] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

FreeBSDでパソコン通信するための準備

ここでは、FreeBSDを使ってパソコン通信するための環境を整える。 まずは、通信ソフトの C-Kermit とBBS-accessの中にあるstk(チャット支援ソフト)を準備しよう。 オンラインソフト紹介 で紹介されているC-Kermit と、BBS-accessをゲットしよう。
kermitの設定方法や利用方法については、 kermit 5A(190) 設定概論第1 か、 kermit 6.0.192 設定概論第1 を見て欲しい。

FreeBSDページの目次に戻る


stkの利用

スーパー待機君---略してSTKは、muleのlispで書かれており、muleのバッファの内部からパソコン通信を行う事ができる。 mule内部で動作しているので、日本語表示や日本語入力もmuleの機能を利用する事ができ、チャットもmuleのバッファを2つ利用することで実現されている。 stkの入手方法は、 パソコン通信関連ソフト紹介 を参照して欲しい。 インストール方法や使用方法などは、添付のドキュメントに日本語で書いてあるので、比較的簡単にインストールできるだろう。 なお、以下に私の.emacsで指定しているstk関連の設定を紹介する。
;
;	stk settings
;
(load-library "stk")  ; これは必須
(setq kermit-command-escape "\177") ; kermit の escape 文字の設定
(setq logdir "~/log/stk-") ; ログを記録するディレクトリと、
                           ; ログファイルの先頭の文字(stk-)の指定
(setq handle-window-visible nil) ; ハンドルウィンドウは表示しない
                ; ハンドルウィンドウが表示されていると、
                ; 80文字を越えるチャット画面を自動で折り返してくれないため
;   FreeBSD 2.1.5R + jp-cmule-2.3 だと、attribute-off-region という
;   関数は定義されていないというエラーが出るので、以下で対処
(defun attribute-off-region(a b c)) ; エラーが出るのでダミー関数を作成
(defun attribute-on-region(a b c)) ; エラーが出るのでダミー関数を作成
stk には、Niftyserveにオートログインするための設定もあるが、私はkermitの機能を利用してNiftyserveにオートログインしているので、ここでは設定していない。

以下では、実際にパソコン通信する時の操作を紹介する。

  1. stkのインストール終了後に、muleから M-x kermitとすると、muleの内部でkermitとkermit用lispマクロとstkマクロが動作する。 stkは自動的にバッファの内部で使われる漢字コードをShift-JISに設定してくれるので便利だ。
  2. ホストに接続する。 kermitで設定したaccessマクロを利用するのも良いし、M-x connect-to-nifty として、stkの機能を利用して接続するのも良い。
  3. 接続後は、通常のkermitを操作しているように操作する。
  4. 既に用意されているテキストを送信する場合には、以下のように操作する。
    1. muleに該当テキストファイルを読み込む。
    2. 送信する先頭部分でマークセットを行う。
    3. 送信する最後の部分にカーソルを移動する。
    4. M-x stk-send-region とすると、指定された範囲のテキストが送信される。 多少動作に時間がかかるので、しばらく待つ必要があるだろう。
  5. チャット(RTC)を行う場合には、M-x chat とタイプする。 muleのバッファが3分割されて、通信画面と、チャット用文字列入力バッファとハンドル表示バッファが表示され、チャットモードになる。 チャットモードから抜けるには、M-x chat-quit とする。
  6. 通信を終了する場合には、パソコン通信のホストに対して、ログアウトの操作を行う。 Niftyserveなら、byeの後にoffとタイプすれば良いだろう。
  7. ^C ^C h と入力して、kermitにhangup処理をさせる。
  8. kermitにquitと入力する。

FreeBSDページの目次に戻る


seyonの設定

(Under Constructing)
ここでは、X Window System上で動作する通信ソフト seyon の設定方法について述べる。 seyonは、最低でも以下の二つを指定しなければ起動しない。 指定方法はいくつかある。 ひとつは、seyonのコマンドラインオプションで指定する方法。 もうひとつは、.Xresourcesに指定を記述する方法である。
ここではseyonの通信に使うデバイスのオプションを .Xresources に記述し、seyon-emuはコマンドラインオプションで指定する方法を説明する。
~/.Xresourcesファイルにエディタで以下の行を追加する。
Seyon*modems: /dev/cuaa0
Seyon*exitConfirm: off
Seyon*dialPrefix: ATDT
Seyon*dialSuffix: ^M
Seyon*ignoreModemDCD: on
modemsは、モデムが接続されているデバイスを指定する。FreeBSDで、COM1にモデムが接続されている場合は /dev/cuaa0 となる。 ちなみに、COM2にモデムを接続している場合には、/dev/cuaa1を指定する。
dialPrefixは、ダイヤル回線の場合は ATDP と指定する。
私の場合はプッシュ回線なので ATDT と指定してある。
ignoreModemDCD は、on にしないとダイヤルできなかったので付け加えた。

続いて、表示に使うプログラムをコマンドラインで指定する。 seyonを起動する時には、以下のように入力する。

seyon -emulator kterm -- -km sjis
seyonでは、-- というオプションの後ろはターミナルエミュレータ(この場合はkterm)に渡されるようになっている。 日本国内のパソコン通信のホストはShift JISしか使えない場合が多いので、'-km sjis'というオプションで、ktermをShift JISモードで起動しているわけだ。

毎回上記のようにタイプするのが面倒になったら、以下のシェルスクリプトをjseyonとして保存し、chmod +x jseyonしてから /usr/local/bin にコピーして、 jseyon とタイプしてseyonを起動するという手もある。 jseyon

#!/bin/sh
kterm -km sjis -e seyon -noemulator

seyonの設定を行なうファイルなどは、デフォルトでは~/.seyon/というディレクトリから検索されるので、このseyon設定ディレクトリを作成しておこう。

mkdir ~/.seyon
seyonの初期設定を行なうスクリプト startup を記述してみる。 このファイルは、先程作成した~/.seyonディレクトリの内部に作成する。 ここでは、ボーレートの指定や、フロー制御などの基本的なものしか指定していない。
#
# startup
#
echo "setting parameters..."
set baud 38400
set bits 8
set parity 0
set stopBits 1
set rtscts on
set xoff off
set autozm off
tty on
echo "Initializing modem..."
transmit "ATZ^M"
echo "end of settting parameters..."
#
# end of startup
#
さらに続いて、~/.seyon/phonelistを記述する。 phonelistファイルは、電話番号とホスト名の対応を取るためのファイルで、以下のようなものをスペースで区切って順番に記述する。 この部分に関しては、man seyonで表示されるマニュアルは一切あてにしてはならない。 まるで書いてあることが異なるからだ。 FreeBSD 2.1.5Rならば、2枚目のCD-ROMの/cdrom/ports/distfiles/Seyon-2.14b-tar.Zにseyonのオリジナルアーカイブが入っているので、このアーカイブを展開してサンプルのphonelistとドキュメントを入手し、それを見ながら設定しよう。 seyonのアーカイブに含まれているphonelistのサンプルを踏まえて、phonelistファイルを~/.seyon/以下に作成すると、次のようになるだろう。
#
# phonelist
#
366-1591        nifty(road2)     BITS=8 BPS=19200 SCRIPT=script.nifty2
379-6711        nifty(road4)     BITS=8 BPS=19200 SCRIPT=script.nifty4
320-4525        nifty(road7)     BITS=8 BPS=19200 SCRIPT=script.nifty7
03-5966-1054    inside-BBS       BITS=8 BPS=19200
03-3985-6227    msx              BITS=8 BPS=19200
380-4504        dennou           BITS=8 BPS=19200
03-5467-5910    SUNDAY Net       BITS=8 BPS=19200
#
# end of phonelist
#

最初に電話番号、次にネットの名前を記述し、その後にはオプション指定を記述する。 (オプション指定は無くてもかまわない。)
上の例で指定したオプション指定には下記のような意味がある。

次に、マクロを使ったオートログインに挑戦してみる。 上記のphonelistファイルには、すでに SCRIPT の指定をしてあるので、これからオートログインするためのスクリプトファイル script.nifty2(ROAD2専用) を作成する。 ~/.seyon ディレクトリの中に、 script.nifty2ファイルを作成して以下のような内容を記述する。

# Niftyserve auto login script (ROAD2 only) 'script.nifty'

echo "Starting Niftyserve auto login ..."

transmit "@P^M"

waitfor "HOST NAME?"
transmit "C NIF^M"

waitfor " Enter Connection-ID  --->"
transmit "SVC^M"

waitfor " Enter User-ID  --->"
transmit "yourid^M"

waitfor " Enter Password --->"
transmit "yourpassword^M"
スクリプトファイル中の waitfor は、右側の文字列が送られてくるまで待つ命令で、tramsmit は、右側の文字列を送信する命令だ。 自分で使う場合には、transmit 命令の yourid と yourpassword を自分のIDとパスワードに変更して使って欲しい。 tramsmit命令に与えられている文字列の最後に ``^M'' があるが、これは改行コードを表している。 たとえば、
tramsmit "hoge^M"
は、hoge とタイプしてからリターンキーを押したのと同じ効果があるわけだ。

waitforを使う場合の注意点は、待つ文字列の指定は、送られて来る行の先頭から記述する必要があることだ。 たとえば、Niftyserveにログインするときには

 Enter User-ID  --->
という文字列が送られて来る。 他の多くの通信ソフトでは、送られて来る文字列の一部分(たとえば``User-ID''という部分)の文字列を待って自分のIDを送信するようにスクリプトを組んでも良い。 しかし、seyonの場合は行の先頭から文字列比較をしている様子なので、行の先頭から`` Enter User-ID''という文字列をwaitforに指定しないといけないのだ。

続けて、Niftyserve Road4用のオートログインファイル script.nifty4 を示す。

# Niftyserve auto login script (ROAD4 only) 'script.nifty'

echo "Starting Niftyserve auto login ..."

waitfor "HOST NAME?"
transmit "C NIF^M"

waitfor " Enter Connection-ID  --->"
transmit "SVC^M"

waitfor " Enter User-ID  --->"
transmit "yourid^M"

waitfor " Enter Password --->"
transmit "yourpassword^M"
さらに続けて、Niftyserve Road7用のオートログインファイル script.nifty7を示す。
# Niftyserve auto login script (ROAD7 only) 'script.nifty'

echo "Starting Niftyserve Road7 auto login ..."

waitfor "Login:"
transmit "NIFTY^M"

waitfor "Password:"
transmit "^M"

waitfor " Enter Connection-ID  --->"
transmit "SVC^M"

waitfor " Enter User-ID  --->"
transmit "yourid^M"

waitfor " Enter Password --->"
transmit "yourpassword^M"

オートログインには成功したので、次は自動でログファイルにログを記録する方法を検討した。 しかし、、マニュアルを見た限りではサポートされていない模様だ。 (Seyon-2.14b)
このままではあまりにも悲しいので、Seyonの新しいバージョンを探してみたものの、Seyon-2.14が最新版であることが判明。
どうもSeyonはここまでのようだ。

FreeBSDページの目次に戻る


[ホームページ] [日記] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]
home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>