Be aware that you could use mgetty as a (better?) alternative to
uugetty. mgetty is newer and more popular than uugetty.
See
Getty for a brief comparison of these 2
gettys.
Since uugetty is part of getty_ps you'll first have to install
getty_ps. If you don't have it, get the latest version from metalab.unc.edu:/pub/Linux/system/serial. In particular,
if you want to use high speeds (57600 and 115200 bps), you must get
version 2.0.7j or later. You must also have libc 5.x or greater.
By default, getty_ps will be configured to be Linux FSSTND
(File System Standard) compliant, which means
that the binaries will be in /sbin, and the config files
will be named /etc/conf.{uu}getty.ttySN. This is not
apparent from the documentation! It will also expect lock files to go
in /var/lock. Make sure you have the /var/lock
directory.
If you don't want FSSTND compliance, binaries will go
in /etc, config files will go in
/etc/default/{uu}getty.ttySN, and lock files will go in
/usr/spool/uucp. I recommend doing things this way if you
are using UUCP, because UUCP will have problems if you move
the lock files to where it isn't looking for them.
getty_ps can also use syslogd to log messages. See the man
pages for syslogd(1) and syslog.conf(5) for setting up
syslogd, if you don't have it running already. Messages
are logged with priority LOG_AUTH, errors use LOG_ERR, and debugging
uses LOG_DEBUG. If you don't want to use syslogd you
can edit tune.h in the getty_ps source files to use a log
file for messages instead, namely /var/adm/getty.log by
default.
Decide on if you want FSSTND compliance and syslog capability.
You can also choose a combination of the two. Edit the Makefile,
tune.h and config.h to reflect your decisions. Then
compile and install according to the instructions included with the
package.
With uugetty you may dial out with your modem while uugetty
is watching the port for logins. uugetty does important lock
file checking. Update /etc/gettydefs to include an entry for
your modem. For help with the meaning of the entries that you put
into /etc/gettydefs, see the "serial_suite" collected by Vern
Hoxie. How to get it is in section See
About getty_em. When you are done editing /etc/gettydefs, you
can verify that the syntax is correct by doing:
linux# getty -c /etc/gettydefs
Modern Modems
If you have a 9600 bps or faster modem with data compression,
you can lock your serial port to one speed. For example:
If you have a slow modem (under 9600 bps) Then, instead of one
line for a single speed, your need several lines to try a number of
speeds. Note the these lines are linked to each other by the last
"word" in the line such as #4800. Blank lines are needed between
each entry. Are the higher modem-to-serial_port speeds in this
example really needed for a slow modem ?? The uugetty documentation
shows them so I'm not yet deleting them.
If you want, you can make uugetty print interesting things in
the login banner. In Greg's examples, he has the system name, the
serial line, and the current bps rate. You can add other things:
@B The current (evaluated at the time the @B is seen) bps rate.
@D The current date, in MM/DD/YY.
@L The serial line to which uugetty is attached.
@S The system name.
@T The current time, in HH:MM:SS (24-hour).
@U The number of currently signed-on users. This is a
count of the number of entries in the /etc/utmp file
that have a non-null ut_name field.
@V The value of VERSION, as given in the defaults file.
To display a single '@' character, use either '\@' or '@@'.
There are lots of parameters you can tweak for each port you have.
These are implemented in separate config files for each port.
The file /etc/conf.uugetty will be used by all
instances of uugetty, and /etc/conf.uugetty.ttySN
will only be used by that one port. Sample default config files can
be found with the getty_ps source files, which come with most
Linux distributions. Due to space concerns,
they are not listed here. Note that if you are using older versions
of uugetty (older than 2.0.7e), or aren't using FSSTND, then the
default file will be /etc/default/uugetty.ttySN. Greg's
/etc/conf.uugetty.ttyS3 looked like this:
# sample uugetty configuration file for a Hayes compatible modem to allow
# incoming modem connections
#
# line to initialize
INITLINE=ttyS3
# 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
Add the following line to your /etc/inittab, so that
uugetty is run on your serial port, substituting in the correct
information for your environment - run-levels (2345 or 345, etc.)
config file location, port, speed, and default terminal type:
For the speed parameter in your /etc/inittab, you want to use
the highest bps rate that your modem supports.
Now Linux will be watching your serial port for connections.
Dial in from another machine and login to you Linux system.
uugetty has a lot more options, see the man
page for uugetty) (often just called getty) for a full
description. Among other things there is a scheduling feature, and a
ringback feature.