I’m using mgetty on SCO 3.2v4(.2) (in fact, developing it there), so be assured: it works.
I consider the way that hardware flow control is handled on SCO to be
broken, so I strongly recommend using the FAS
serial driver
(version 2.11 or higher, earlier versions may crash the system), to be
found on your nearest comp.sources.unix archive. With fas
, use the
devices with a minor number of ‘80+port number’ for best results. Make
sure that your modem enables the ‘DSR’ line, because otherwise,
FAS
won’t do hardware handshake.
If you don’t use fas
, I’ve been told that you have to use the
‘modem control’ lines, that is, the “uppercase” lines, e.g.
/dev/tty1A, because SCO’s serial driver won’t do any hardware flow
control at all on the “lowercase” lines. Be warned, the driver will also
disable hardware flow control if you use Xon/Xoff flow control (no way to
use both). Since I do not have a SCO system without fas
, I’d like to
hear very much about results on one.
Also, you’ve to define LOCKS_LOWERCASE
, since that’s the convention
on SCO Unix and most other programs expect it.
If mgetty works only partially, but hangs the moment /etc/issue is printed, before the ‘system!login:’ prompt is output, you may have to change the following line of mgetty.c (around line 780):
/* honor carrier now: terminate if modem hangs up prematurely */ tio_carrier( &tio, TRUE );
to:
tio_carrier( &tio, FALSE );
But before you do this, make sure that your modem enables the CD line
while a carrier is present (Hayes modems: ‘AT&C1’) and also enables
the DSR line (otherwise the port will block once CLOCAL
is
removed).
This could have been a problem specific to Uwe’s dumb AST-compatible fourport card, but I do not think so.
Compilation issues:
Ignore warnings about ‘struct utimbuf’ and ‘struct timeb’, they are caused by improper include files. On SCO 3.2v4.2, ignore the warnings about the getopt() prototype, or change prototype or include files.
Installation:
SCO provides two utilities to manipulate /etc/inittab,
enable
and disable
. Those tools work only if you have
specified a gettydefs tag on the mgetty
command line, otherwise
they will complain about “not a valid tty”. So, either append the
gettydefs tag (mgetty
will ignore it if not compiled with
USE_GETTYDEFS
) or change /etc/inittab manually.