[comp.unix.ultrix] This is how to make modems work on a MicroVax/Vaxstation 2000

paul@vixie.UUCP (Paul Vixie Esq) (12/31/87)

[this is from my archives; I wrote it up while I had a 2000 here, and never
 sent it out anywhere.  please let me know if any of it is incorrect. -vix]
-----------------------------------------------------------------------------
Adding a modem to a Vaxstation 2000 running Ultrix 2.0-1
Paul Vixie, 2-October-1987

Use a Hayes or compatible modem.  Must respond to DTR from the 2000, and
provide DCD to the 2000 based on presence of carrier (note: many Hayes
compatible modems hose on one or both of these requirements).

Configure your kernel with 'flags 0x0b' on the 'ss0' line.  The default is
'0x0f'.  These flags control the 2000's insensitivity to DCD -- each bit
represents one port.  0x0f = (1 1 1 1), whereas 0x0b = (1 0 1 1).  Counting
from the rightmost bit being zero, using 0x0b instead of 0x0f makes tty02
sensitive to DCD.

tty00 is used for the keyboard; tty01 is used for the mouse.  tty02 is the
DB25 connector on the back panel, and has modem control.  tty03 is best-used
only for printers, since if BREAK is received by the 2000 on this line, the
system will halt.  You need a BCC08 cable to use tty03.

Once you've configured the kernel and rebooted with it, edit /etc/acucap.
Delete any existing 'hayes' entry and add the following instead:

	hayes|h1200|smartmodem|HAYES smartmodem 1200 Touch tone:\
		:cr:hu:ls:re:sd#250000:dd#25:da#40000000:fd#40:\
		:ss=\d+++\dATH0E0Q0\r:sr=OK\r\n:di=ATDT:dt=\r:rs=,:

(Note that this must be flush with the left margin in /etc/acucap; the tabs
I used above should be deleted if you merge this text into /etc/acucap).

Modify /etc/remote to look more or less like what's below.  Again, if you merge
text straight from this file, remove my leading tabs from each line.

	dial2400|2400 Baud attributes:\
		:dv=/dev/modem:br#2400:at=hayes:du:
	dial1200|1200 Baud DF03 attributes:\
		:dv=/dev/modem:br#1200:at=hayes:du:
	dial300|300 Baud DF03 attributes:\
		:dv=/dev/modem:br#300:at=hayes:du:

	UNIX-2400|2400 Baud dial-out to another UNIX system:\
		:el=^U^C^R^O^D^S^Q@:ie=#%$:oe=^D:tc=dial2400:
	UNIX-1200|1200 Baud dial-out to another UNIX system:\
		:el=^U^C^R^O^D^S^Q@:ie=#%$:oe=^D:tc=dial1200:
	UNIX-300|300 Baud dial-out to another UNIX system:\
		:el=^U^C^R^O^D^S^Q@:ie=#%$:oe=^D:tc=dial300:

	tip0|tip1200:tc=UNIX-1200:
	tip300:tc=UNIX-300:
	tip2400:tc=UNIX-2400:
	cu0|cu300:tc=UNIX-300:
	cu1200:tc=UNIX-1200:
	cu2400:tc=UNIX-2400

	modem-2400:dv=/dev/modem:br#2400:
	modem|modem-1200:dv=/dev/modem:br#1200:
	ucb-2400:pn=6426092:br#2400:tc=UNIX-2400:
	ucb|ucb-1200:pn=6429737:br#1200:tc=UNIX-1200:
	arpa-2400:pn=6427750:br#2400:tc=UNIX-2400:
	arpa|arpa-1200:pn=6427750:br#1200:tc=UNIX-1200:

Check to see that you have a /usr/spool/uucp directory, and that it is owned
by 'uucp'.  You need this to use 'tip', even if you don't plan to use uucp.
If you don't have this, type

	mkdir /usr/spool/uucp
	chown uucp /usr/spool/uucp
	chmod 755 /usr/spool/uucp

With these changes made, you should be able to 'tip ucb' and get connected to
the port selector.  (You will, of course, have to plug your modem in and turn
it on).  The cable to the modem should carry TX, RX, DCD, DSR, DTR, SG.  A
flat, 25-pin ribbon cable will do nicely.  Do not use a null-modem (swapped)
cable.

If all you want to do is dial out, you're done.  If you want to allow dialin
access, you have a few more steps.  First, edit /etc/ttys to have this (and
ONLY this) line describing tty02 (once again, remove my leading tab):

	tty02	"/etc/getty d1200" vt100	on modem shared	secure

This makes the line a 1200-baud dialin.  Actually, it starts up at 1200 baud
for each call, but pressing BREAK will cycle it to various speeds like 110,
150, and 300 baud.  See /etc/gettytab for details.  You can add your own
entries to /etc/gettytab if you want to allow 2400-baud dialups.

The 'modem' in the above line tells /etc/getty that the line is a modem and
that it should wait for carrier before printing the login: prompt.  The
'shared' tells getty that you want to be able to use 'tip' on the line when
no incoming call is in progress.  The 'secure' tells 'su' that the line is
a secure one and should be allowed to 'su' to root.

After editing /etc/ttys as shown above, type

	kill -1 1

This makes Ultrix re-read the /etc/ttys file and do whatever new things you've
added.

That's it.  Note that the SS driver works differently in VAXSTATION mode than
in MICROVAX mode -- i.e., since the keyboard and mouse need to be sampled
very very quickly, the SILO code is disabled for the workstation.  Therefore
when you have 1200 baud data coming into the port, Ultrix is seeing 120
interrupts per second, which bogs the machine horribly.  Someone needs to 
go into the SS driver source and hack it to use SILO on the modem port..
But then, if that were easy, DEC would have done it..