- 1.) Are the required packages installed?
- Be sure the PPP and UUCP software (part of Solaris) is
installed. Install if necessary using either pkgadd or swmtool.
The following command should return: pppk, apppr, apppu, bnuu, and bnur.
- # pkginfo | egrep "PPP|UUCP"
- 2.) Are your EEPROM settings correct?
- Make sure the EEPROM settings are correct. The ignore-cd parameter
setting must be "true" for bi-directional modem connections
(although it seems incorrect, I verified it with Sun tech support).
- # eeprom | grep ttya
- # eeprom ttya-mode=38400,8,n,1,h
- # eeprom ttya-ignore-cd=true
- # eeprom ttya-rts-dtr-off=false
- 3.) Reboot the system to enact the EEPROM changes (if they changed).
- 4.) Clear existing configuration entries.
- Remove the following entries to make room for the new values.
This assumes the modem will be on port "a".
- # sacadm -r -p zsmon0 2> /dev/null
- # sttydefs -r conttyH8hi 2> /dev/null
- # pmadm -r -p zsmon -s ttya 2> /dev/null
- # pmadm -r -p zsmon0 -s ttya 2> /dev/null
- 5.) Attach your modem to your workstation's serial port
- Hook up the modem (I use a Hayes Optima 28.8K). Use a 25-wire
straight-through RS-232 cable. Don't attempt to use a cable with
only a few wires... Turn on the modem. You should see the following
LEDs lit: "TR", "MR" and "HS".
- 6.) Create a new port monitor. Verify it.
- # sacadm -a -p zsmon0 -t ttymon -c /usr/lib/saf/ttymon
-v `ttyadm -V` -y "Dial in/out on serial port a"
- # sacadm -l
- 7.) Create a new modem entry. Verify it.
- This creates an 8-bit clean, HW flow control, 38400 locked, modem entry.
- # echo "conttyH8hi:38400 -parenb cs8 ignpar opost onlcr:38400 hupcl
-clocal -parenb ignpar cs8 -istrip -ixon ixany
crtscts::conttyH8hi" >> /etc/ttydefs
- # sttydefs -l conttyH8hi
- 8.) Create a port listener. Verify it.
- # pmadm -a -p zsmon0 -s ttya -i root -f u -v `ttyadm -V`
-m "`ttyadm -b -S n -d /dev/term/a -l conttyH8hi -s /usr/bin/login
-m ldterm,ttcompat -T vt100 -i 'Terminal Disabled.'
-p 'modem login: '`" -y " Modem port ttya"
- # pmadm -l
- 9.) Add a line to /etc/remote to support "tip".
- # echo "cuaa:dv=/dev/cua/a:br#38400" >> /etc/remote
- 10.) Configure devices. Verify them.
- # chown uucp /devices/obio/zs*:a*
- # chgrp sys /devices/obio/zs*:a*
- # chmod 666 /devices/obio/zs*:a*
- # ls -las /devices/obio/zs*:a*
- 11.) Unlock serial port.
-
Remove any processes (and lock files) attached to term/a. These
cause the dreaded "All ports busy" message.
- # ps -elf | grep "term/a" | awk '{ print $4 }' | xargs -i -t kill -9 {}
- # rm /var/spool/locks/LK*
- 12.) Configure Modem.
-
Talk to the modem and set it up (modify as necessary for your
particular modem). Note the two at&w steps which help if the
at&c1 command kicks you out of tip. If it does, get back in and
issue the remaining commands.
- # tip cuaa
- [connected]
- at&f reset active to factory defaults for a clean slate
- ate1 echo characters in command state
- atq2 do not return result codes when answering
- atw1 return negotiation progress messages
- ats0=1 auto answer after 1 rings.
- ats37=15 set max modulation speed to 28.8K.
- ats11=60 speed up dialing by shortening inter-DTMF delays
- ats70=32 increase max # frame retransmissions (default is 10)
- at&k3 use hardware flow control instead of XON/XOFF
- at&q5 Error control mode
- at&d3 Monitor DTR signal, hangup & reset if on->off.
- at&s0 assert DSR always
- at&w save these custom settings in the user profile
- at&c1 track presence of carrier detect signal.
- at&w save these custom settings in the user profile
- ~. exit out of tip
- 13.) Determine IP addresses.
-
Find TWO free IP addresses on the SAME (sub)net as the Sun
workstation. One will be used for the serial port "network
interface" and the other will be assigned to the remote PC.
You can do this by asking your network folks, or by using
ping (to detect non-registered devices) AND nslookup (to detect
registered but unavailable devices). Here is a quick little
sh script to find open slots on a "class C" or 8-bit subnetted
Class B net. This works for Solaris. Modify the ping and
nslookup statements as necessary for your OS.
#!/bin/sh
# Dave Brillhart - (c) 1995
net=132.158.62
ip=0
while [ $ip -lt 256 ]
do
ping $net.$ip 2 > /dev/null
if [ $? -eq 1 ]
then
nslookup $net.$ip | grep -i find
fi
ip=`expr $ip + 1`
done
- 14.) Determine host names.
-
Once you find two free IP addresses - come up with unique names
and ask your DNS folks to register the addresses. Be sure to
request both forward ("A" or name-to-IP) and reverse ("PTR" or
IP-to-name) mappings. The reverse mappings are required to
satisfy some services which employee domain filtering.
For example, my addresses are:
132.158.62.200 unix_ppp.mis.semi.harris.com
132.158.62.205 pc_ppp.mis.semi.harris.com
- 15.) Update your host file.
-
Now enter the two new addresses in your /etc/hosts file. Do this
even if you use DNS - since PPP starts up prior to the name
service.
132.158.62.200 unix_ppp
132.158.62.205 pc_ppp
- 16.) Create a passwd and shadow entry.
-
Create the "PPP" user account by editing the /etc/passwd and
/etc/shadow files. Here are my entries. Change the password for
the ppp_user account using the "passwd" command.
/etc/passwd -> ppp_user:x:1115:10:PPP User:/:/usr/sbin/aspppls
/etc/shadow -> ppp_user:e465dfvf2sqwi:9119::::::
- 17.) Create an asppp.cf file.
-
Add the following to the bottom of the /etc/asppp.cf file. Modify
the names of your two IP addresses.
ifconfig ipdptp0 plumb unix_ppp pc_ppp up netmask +
path
ipcp_async_map 0
inactivity_timeout 90000
interface ipdptp0
peer_system_name ppp_user
- 18.) Add an ARP entry.
-
Add a published "arp" entry for the new interface. First find the
Physical address (ethernet address) of the network adapter attached
to the ethernet (mine is le0). Substitute your ethernet address and
the DNS name of your remote PC.
- # ifconfig -a | grep ether
- # /usr/sbin/arp -s pc_ppp 8:0:20:11:e4:2d pub
- # /usr/sbin/arp -a
- 19.) Create a boot time initialization file.
-
Create a file so that the arp entry is added at boot time. I called
the file "/etc/rc3.d/S99arp_ppp". Owner: root. Perm: 755. It
contains the following line.
- # echo "/usr/sbin/arp -s pc_ppp 8:0:20:11:e4:2d pub" > /etc/rc3.d/S99arp_ppp
- # chown root /etc/rc3.d/S99arp_ppp
- # chmod 755 /etc/rc3.d/S99arp_ppp
- 20.) Keep RIP packets off serial interface.
-
Create (or append to) the file /etc/gateways and add the following
line. Kill and restart in.routed.
- # echo "norip ipdptp0" >> /etc/gateways
- # ps -elf | grep "routed" | grep -v grep | awk '{ print $4 }' | xargs -i -t kill -HUP {}
- 21.) Create a defaultrouter entry.
-
Create a defaultrouter entry in the file /etc/defaultreouter. This
will eliminate the possibility of RIP packets and IP forwarding
down the PPP pipe. This also disables Solaris' dynamic routing.
Determine which router to put in by running "netstat -r" and
using the most common "gateway" entry. The file should contain
a single line such as the following (use the IP address for your
router). I had to reboot for this to take effect. HUPing
in.routed did not do the trick.
132.158.62.254
- 22.) Start the PPP process.
-
Manually start the PPP process. This is not normally needed since
it will start at boot time.
- # /etc/init.d/asppp start (replace start with stop to stop it)
- 23.) FINALLY - Verify that things are working.