Web template
updated by
Christopher Spry

Guide to setting up 'PPP' under IRIX 6.2

This page was written by Christopher Spry. It is guide to setting up 'PPP' under IRIX 6.2. It explains how I used a Hayes Smartmodem 'Optima' 28800 V.34/V.FC + FAX' modem and IRIX's PPP, to connect PCs, running Windows 95 and NT v 4, to an SGI Indy running IRIX 6.2. Unfortunately, IRIX only provides outline tools to set up a PPP dial-in resource. These are unable to recognize what modem is attached to the computer, or even what serial port it is on. All this, and more, has to be setup by hand. It may take you 'some time', as Titus Oates might have said. 

There is a useful page by Jonathan Mortimer on how to setup a modem and modem cable to connect an Indy to internet service providers. It includes details of how to make your own modem cable. 

I had bought, several years ago, a Hayes Smartmodem 'Optima' 28800 V.34/V.FC+FAX and this guide will describe how I installed it on the Indy. I had also purchased a high quality serial cable that would fit into the serial port 1 on the back of the Indy. Note (a) time spent in getting a good serial cable and ensuring that is it properly plugged in, is seldom wasted and (b) there are 'better and faster' modems now, than the one I used here., but the Indy's serial port can only support a speed of up to 28,800 bps. Although specific entries in the configuration files will differ from modem to modem, the general approach is the same.

Ensure that you do not have one of the Indys which SGI sold with defective serial ports. To do this, I attached the Hayes modem to serial port 1 of the Indy and turned the modem on.  The check is to see whether you can 'talk' to the modem attached to the Indy, by entering modem commands at the keyboard using the 'cu' program.  First, as 'root',  I edited /etc/inittab so that the line starting: 't1:23:respawn...' was changed to 't1:23:off...'. This turned 'off' uugetty to serial port 1. I typed in a shell: 'cu -s38400 -lttym1'. The modem answered with 'connected'. I typed 'at' and it answered 'OK'. Now I could see if the modem would answered calls fully. I typed 'cu -s38400 -lttyf1'. As before, this said 'connected'. However, when I typed 'at' again there was no answering 'OK'. This indicated that the serial port was probably defective. (I had to close the shell itself, to end this 'cu' interactive session, which is normally closed with the '~.' command). I then had the system board replaced by SGI with one that had good serial ports.

The 'ppp' software  is not installed in IRIX by default. I installed it using 'swmgr' from the IRIX 6.2 CD distribution software.

Configuration files for PPP

This is where all the hard work has to be done. The files are best edited after backups of the default files have been made. They have to be edited by 'root'. I recommend that you try out entries in new lines and leaving the old line in place, but with a hash at the start of the line, so that they can be used later, if the file has to be edited again. Note that entries in one file often refer to, and are used, by entries in another. It should be reasonably obvious where this occurs. For example, note the 'hayes28' term reappearing in the files below. These clearly are different, when you are setting up a different modem from the Hayes28800 modem that I used for this guide. You may want to print out the 'man' entries for each of the files listed below, to be sure that you are doing the right thing to them, when you edit them. These configuration files tell the modem how to handle a call.

I set the line dealing with 't1' to be:

t1:23:respawn:/usr/lib/uucp/uugetty -Nt20 -ihayes28in,conn ttyf1 dx_38400 # port 1 Hayes Optima 28800 (this should be a single line)

This sets 'uugetty' to use serial port 1 and the other settings on this line. Information on the setting is present after the '#'.

Direct ttyd1 - Any direct
Direct ttym1 - Any direct
Direct ttyf1 - Any direct
ACUslip ttyf1 null 38400 212 x hayes28

Later on, you can use 'cu -l ttyf1' followed by 'at' commands to interrogate the modem for debugging purposes. However, if you are happy that the modem is responding at 28.8 KBPS and you do not want to interrogate it with 'cu' commands and you want to ensure that no one else on the network can dial out through this modem, hash out the three 'Direct' lines in /etc/Devices.

#incoming chatting for uugetty.

On my Indy, it contained the line

hayes28in =W-, "" \pATs37=15s0=1\r\c OK\r~2-ATs37=15s0=1\r\c-OK\r~2

The commands along this line are delivered to the modem when there is an incoming call, so you can see that it is important to get them right. There are some example lines in the 'default' /etc/uucp/Dialers file to help you. The 'ATs37=15' is the command to the modem to set the modem transmission maximum speed to 28.8 KBPS. 's37' here refers to the s37 'register' in the modem, that is set to this speed. The other 's' settings are for other registers. The other settings are more complex. I suggest that you should get out your modem manual and find these 's' register entries, as they are different for different makes and types of modem. You will probably spend most of your time pouring over these 's' commands and the other 'commands' for your modem. They should all be listed somewhere in the modem's manual. You can not use entries from one modem, to run another modem, unfortunately.

SGI have kindly provided a set of scripts in /etc/uucp to do this. Unfortunately there are only a few, and you may well have to make your own script based on the one that seems closest to the one you need.

I found the section of the script with:

    var1cmd='&Y0 &S0 &K3 &D3 &C1 X4 W1 Q0'
    var2cmd='S38=2 S95=62 S36=3 S37=11'
    infocmd='I1 &V'

You may well have to make entries of your own, like those in ACCURA, to match your own modem. The '&' and 's' entries are the ones mentioned above, that will set the modem modes and registries, once the script is run. The 'var1cmd' line will put the modes and registry entries given there, into the modem when the script is run. You can look up what they mean in your modem manual.

I had to put a '#' at the start of the line /etc/renice -20 $$ > /dev/null. Otherwise, when the script was run, it produced an error message that prevented the last and important part of the script from running.

I opened a UNIX shell as 'root' and in '/etc/uucp', I typed:

./fix-hayes -io -m ACCURA -s 38400 1

This returned half a screen of responses from the modem including OK several times, the 'ACTIVE PROFILE' and the ''STORED PROFILE'. This showed that the modem had received the commands to set it up for use with PPP. If there is a problem here, go back and read the modem manual about what the settings and registry entries should be. You may need help here from someone who has worked in this arcane area before, if you continue to have difficulties.

In 'user manager' add a user called 'ppp-user'. Do not bother, at this stage, with other entries for this user. They will be entered by hand in the /etc/passwrd file later. In my setup, I made a user called 'ppp-user', with computer name 'sprypc4.sghms.ac.uk'. When connected this user will automatically invoke the script 'usr/etc/ppp'.

First give 'ppp-user' a password by typing in a shell: 'passwd ppp-user' and providing one.

Edit the /etc/passwd file, Without altering the line anywhere in front of  '0:0:', change the 'ppp-user' line to look like the following:

ppp-user:WqL7N426a9hyM:0:0:Irix PPP login sprypc4.sghms.ac.uk,,:/:/usr/etc/ppp (This is one long line).

Now you should let the computer know what name and IP address to give to the connection, once 'ppp-user' has started ppp:

Add entries like the following: sprypc4.sghms.ac.uk sprypc4 sprysgi.sghms.ac.uk sprysgi

The first of these lines provides the name and IP address for 'ppp-user', who has now become the 'ppp client'. The second is the IP of the Indy 'ppp host'.

This will contain information on the name of the client login, and the IP number for the client 'sprypc4.sghms.ac.uk'. The line in this file is:

ppp-user in remotehost=

I typed '/etc/telinit q' at a UNIX command prompt. This turned on the Indy's connection to serial port 1. The modem HS, AA, TR and MR lights came on, to show that it was ready to accept incoming calls. I checked this by dialing its number using a phone and received a confirmatory warble.

I then typed at the prompt:

arp -s sprypc4 08:00:69:07:68:f9 pub

This added to the ARP address resolution table, that when 'sprypc4' connected, it would send and receive packets as though it was sprysgi (08:00:69:07:68:f9). 08:00:69:07:68:f9 is the binary code for the IP address of the Indy. I got this number by typing in a shell on the Indy:

'netstat -ian'.

(k) I checked that this was successful by typing:

arp -a

This replied:

sun1.sghms.ac.uk ( at 8:0:20:10:f6:d6
route1.sghms.ac.uk ( at 0:0:c:19:6c:a2
sprypc4.sghms.ac.uk ( at 8:0:69:7:68:f9 permanent published
infoserv.sghms.ac.uk ( at 8:0:69:2:63:cb
sprynt.sghms.ac.uk ( at 0:60:8c:cc:ed:93
sprypc1.sghms.ac.uk ( at 0:20:af:c0:4d:e8

The other entries on lines 1, 2 and 4-6 are hosts attached to sprysgi through other TCP/IP connections.

I wrote a script called /usr/etc/pppstart that will configure the 'arp' table when the computer reboots, to ensure that I can use PPP again. The script is:

arp -s sprypc4 08:00:69:07:68:f9 pub

I made it chmod 755 so that it was executable.

I 'chdir' to the /etc/rc2.d directory and typed:

ln -s /usr/etc/pppstart S63startppp

This made a link so that init would run script 'startppp' as process 63 at startup.

The Indy's modem was now switched 'on',configured and ready to accept modem calls from sprypc4.

The PCs on the other end of the phone line were much easier to set up as PPP clients. Microsoft has provided a straightforward PPP client resource in Windows95 and an even better one in Windows NT, where you can fill in dialogue boxes in 'Dialup Networking'. You may also use a web browser to access http://www.users.interport.net/~barry/setup.html which offers a visual description of how to install a PPP client in Windows95.

Return to the 'home page'

Return to the `Computing index page'

Return to the 'Indy administration index'