mgetty を uugetty
の(より良い?)代わりとして使えることを知って
ください。mgetty
は uugetty よりも新しく、評判が良いです。2 つの
getty の簡単な比較については
getty とは? をご
覧ください。
uugetty は getty_ps の一部なので、まず最初に getty_ps をインストー
ルしなければなりません。手元になければ、
ftp://metalab.unc.edu:/pub/Linux/system/serial
から最新バー
ジョンを手に入れてください。特に、(57600 あるいは 115200 bps の)高速通
信をしたいなら、バージョン 2.0.7j 以降が必要です。また、libc 5.x 以降
も必要です。
デフォルトでは、getty_ps
は FSSTND (File System Standard) に
従って設定されており、バイナリが /sbin
に入っていて、設定ファ
イルは /etc/conf.{uu}getty.ttyS
N という名前になっていま
す。このことは文書にはっきりと書いてはありません! そして、ロックファ
イルを /var/lock
に作ります。ディレクトリ /var/lock
があることを確認してください。
FSSTND に従いたくないなら、バイナリは /etc
に、設定ファイ
ルは /etc/default/{uu}getty.ttyS
N になり、ロックファ
イルは、/usr/spool/uucp
に入ります。もし UUCP を使うなら、こ
の方法を勧めます。なぜなら、UUCP は自分の知らないところへロックファイ
ルを移すと問題を起こすことがあるからです。
更に、getty_ps
は syslogd
を使ってメッセージの記
録を取ります。もし、まだ syslogd
を動かしていないのなら、
syslogd(1)
と syslogd.conf(5)
の man ページを見て設
定して下さい。メッセージは優先度付きで LOG_AUTH
、エラーは
LOG_ERR
、デバッグは LOG_DEBUG
へ記録されます。
syslogd
を使いたくなければ、getty_ps
のソースファイ
ルの中にある tune.h
を編集してメッセージ出力やデバッグにはロ
グファイルを使用するように変更しましょう。省略時のログファイル名は
/var/adm/getty.log
になります。
FSSTND 基準と syslogd の機能を採用するか決めてください。もちろん 2
つを組み合わせることも出来ます。Makefile
, tune.h
お
よび config.h
を、決定通りに編集します。パッケージに含まれる
説明に従ってコンパイルし、インストールします。
uugetty
がログインに使うポートを監視している間に、
uugetty
を用いてモデムから電話をかけてもさしつかえありません。こ
の HOWTO の原著者は /dev/cuaN
を電話をかけるために使うと述べ
ています (uugetty は /dev/ttyN
で動いています)。しかし、他の
人はダイヤルインとダイヤルアウトの両方で /dev/ttyN
を使わなけ
ればならないと言います。どちらが正しいのでしょう???
[訳注 : /dev/cuaN
と /dev/ttyN
に関する議論は
cua デバイス にあります。]
uugetty
は重要なロックファイルの監視を行います。
/etc/gettydefs
にモデムのエントリを追加します。
/etc/gettydefs
の編集が終ったら、以下のようにして記述が正しい
か確認できます :
linux# getty -c /etc/gettydefs
データ圧縮機能を持つ 9600 bps 以上のモデムでは、シリアルポートをひ とつの速度へ固定できます。例えば :
# 115200 fixed speed
F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200
RTS/CTS ハードウェアフロー制御を行うよう設定するなら、
CRTSCTS
を追加します :
# 115200 fixed speed with hardware flow control
F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200
(9600 bps 以下の)低速モデムでは、特定の速度用に 1 行記述する代わり
に、いくつかの速度を試すために複数の行が必要です。#38400
といった
各行の最後の「単語」により、モデムのエントリはお互いにリンクしているこ
とを注意して下さい。また、各行の間には空白行が1行必要になることにも注
意して下さい。
# Modem entries
115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #57600
57600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #38400
38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200
19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600
9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #2400
2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #115200
お望みなら、uugetty
に、ログイン時に面白そうなバナーを表示さ
せることもできます。Greg さんの例では、システムネームとシリアルライン
名、そして通信速度です。他にも以下のようなものがあります :
@B 現在の通信速度 (bps, @B を変換するときに調べる)
@D MM/DD/YYであらわされる年月日
@L uugetty が属するシリアルライン (ttySN)
@S システム名
@T HH:MM:SS で表される時分秒 (24時間制).
@U 現在の接続ユーザー数
これは、 /etc/utmp ファイル内の ut_name フィールド
のうち有効なレコードの数です。
@V バージョン デフォルトファイルで指定した OS バージョン
'@' そのものを表示したければ、 '\@' か '@@' を使ってください。
各ポートを自在に制御できる数多くのパラメーターが揃っています。それ
ぞれのポートを個別に設定できるようポート単位の設定ファイルが用意されて
います。/etc/conf.uugetty
は uugetty
共通の
設定ファイルで、/etc/conf.uugetty.ttyS
N がそのポート
だけの設定ファイルです。たいていの linux ディストリビューションに付属
している getty_ps
のソースファイルの中に、これらのサンプルファ
イルが含まれています。スペースの関係で、ここには掲載しません。(2.0.7e
以前の)古いバージョンの uugetty
を使っているか、FSSTND 互換に
しなかった場合は、設定ファイルは
/etc/default/uugetty.ttyS
N になっていることに注意し
て下さい。著者の /etc/conf.uugetty.ttyS3
は、次のようなもので
す。
# sample uugetty configuration file for a Hayes compatible modem to allow
# incoming modem connections
#
# alternate lock file to check... if this lock file exists, then uugetty is
# restarted so that the modem is re-initialized
ALTLOCK=cua3
ALTLINE=cua3
# line to initialize
INITLINE=cua3
# timeout to disconnect if idle...
TIMEOUT=60
# modem initialization string...
# format: <expect> <send> ... (chat sequence)
INIT="" AT\r OK\r\n
WAITFOR=RING
CONNECT="" ATA\r CONNECT\s\A
# this line sets the time to delay before sending the login banner
DELAY=1
#DEBUG=010
次に、/etc/inittab
へ以下に示す行を追加します。シリアルポート
に対して uugetty
が動くよう、(2345 あるいは 345 といった)ラン
レベル、設定ファイルの場所、ポート、速度、そしてデフォルトの端末タイプ
などの環境に合わせて正しく設定してください。
S3:2345:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100
init
を再起動します :
linux# init q
/etc/inittab
において、速度パラメータとしてモデムがサポートす
る最高速度を使いたいでしょう。
これで、シリアルポートへの接続を Linux が監視します。別のマシンから 電話をかけ、Linux へログインしてください。
uugetty
は更に多くのオプションがあります。完全な説明は (しば
しば uugetty
と呼ばれる) getty(1m)
のマニュアルを見
てください。この他にもスケジューリング機能やコールバック機能があります。
[訳注 : マニュアルの管理コマンドセクション 1m
は、現在は セ
クション 8
になっています。]