[OpenStep and PPP] 7.19.97 This page may or may not help you. What follows is my personal documentation regarding the setup of PPP-2.2 on OpenStep 4.1 for MACH. I found loads of information about setting up PPP on NeXT environments, but none specifically for OpenStep. I assumed the setup would be the same. It was not. After several attempts at installing different .pkg files, I started hacking at code to try to get a successful make. That approach started to become a dead end and fast. I finally ended up using a NeXT binary package but it was not too simple. I am a novice NeXT user. What follows will most likely serve to aid others like myself who want simply to install PPP on a standalone machine to dial up an ISP and establish a PPP connection. This documentation is for setting up PPP with an ISP using PAP, as well as a unix shell account using slirp. Anything involving more is something I have not tangled with. I used Gatekeeper 2.0 with the NeXT port of ppp2.2-0.4.6 and the following setup worked for me on both OpenStep for Mach version 4.1 and 4.2. In all, I came across about five different install files, FAQ files, help files, and other .txt files that basically all said the same thing. Problem was, they were all slightly different. I tried all of them and none of them worked for me. I ended up combining them all to get PPP working. The GateKeeper help file has a section about setting up PPP for the first time and proved to be most helpful. I. Files Obtain the following files. You can download them from the Denali Sites server using the links below. They can also be found at ftp.thoughtport.com/pub/next/ppp * NeXT-ppp2.2-0.4.6-pkg.tar.gz * GateKeeper.2.0.DoD.NI.b.tar.gz * IBTip (Optional) I also recommend getting IBTip. This simple app will enable you to test your modem, log into your IP, or whatever. It is not necessary but I found it very helpful. II. Unpacking I recommend creating a temporary directory to put the above files in. I called mine 'ppp'. I recommend renaming the files to something simple to ease things a little. I renamed mine 'ppp246.tar.gz' and 'gatekeeper.tar.gz. First, through a terminal shell, unpack the two files using gunzip . You should be left with two .tar files like 'ppp246.tar' and 'gatekeeper.tar'. I installed Gatekeeper with no troubles at all. As root install the gatekeeper package. The package puts the app in a directory /Apps. You can erase all the other Gatekeeper crap in the temp directory. Double click on the 'ppp246.tar' file to unpack it. It will decompress the .pkg file as well as a bunch of other crap. Rename the 'PPP-2.2.pkg' file to anything you want. It is actually a directory. I called mine 'binary'. Inside the 'binary' directory there is a file called 'PPP-2.2.tar.Z' This is the file you want. Copy this file to your root directory. Double click on the file to unarchive it. The binary files for PPP-2.2 will now be put in place. III. Files The following files need to be altered: * /etc/rc.local * /etc/syslog.conf * /etc/resolv.conf * /etc/iftab * /etc/hostconfig * /etc/ppp/options * /etc/ppp/pap-secrets (if you use PAP) It is recommended that you back up the above files in case there is a problem; reboot with each file change so as to track the source of a problem may one occur. /etc/rc.local Place the following segment at the end of the file: # Load the Berkley Packet Filter LKS # This must be done before PPP. Comment this out # if you disabled BPF. If you use BPF, you _must_ # load it before the PPP LKS. If you changed pathnames # in the Makefile, make sure the appropriate paths are # used below. # if [ -f /usr/local/bpf/reloc/bpf_reloc ]; then /usr/etc/kl_util -a /usr/local/bpf/reloc/bpf_reloc fi # # Load the selected version of the PPP-2.2 loadable # kernel server (LKS). # if [ -f /usr/local/ppp/ppp-2.2-0.4.6/reloc/ppp_reloc ]; then /usr/etc/kl_util -a /usr/local/ppp/ppp-2.2-0.4.6/reloc/ppp_reloc > /dev/console 2>? (echo -n ' ppp') > /dev/console fi /etc/syslog.conf Add the following line to the very beginning of the file. Make certain that you use only tabs. Spaces will screw it up; that means don't copy and paste. local2.debug /usr/adm/ppp2.2.log /etc/resolv.conf This file holds your domain and the IP address' of your ISP. The domain is prefixed by the keyword 'domain' and the primary and secondary DNS numbers are prefixed by the keyword 'nameserver'. For example, my file reads: domain bellsouth.net nameserver 250.152.0.20 nameserver 250.152.0.5 /etc/iftab This file gave me a lot of problems mainly because I don't understand exactly what it does. I ended up with the file looking as follows: lo0 inet 127.0.0.1 netmask 0xff000000 -trailers up -1- inet -HOSTCONFIG- * inet -AUTOMATIC- netmask -AUTOMATIC- -trailers up /etc/hostconfig This file can be edited by using the HostManager.app. Choose local from the app menu and change the settings to the following: 'NetInfo Binding' (use local domain only) check the button 'Readable only by local net' 'Hostname' (pick some hostname for yourself) 'NIS Domain Name' (None) 'Internet Address' (127.0.0.1) 'Broadcast Address' (Default) 'Time Standard' (Ignore Network Time) 'Netmask' (Default) 'Router' (None) /etc/ppp/options This file gave me the most problems mainly due to my lack of understanding of how it works exactly. If you are not using PAP or CHAP, then you probably don't have to worry about changing anything. Just make certain that the line specifying your modem port is correct (make certain that the baud rate is correct!). If you can log into your ISP and you get a 'username' like prompt, then you don't need to worry about PAP or CHAP. If you log in and the first thing you see is ASCII garbage, then you need to configure for PAP or CHAP. If you are unsure as to whether or not your ISP uses CHAP or PAP, then you have to just try both and go with the one that works. This is unfortunate because it makes it twice as hard to get PPP working because you don't know if there is something wrong with a file, or if you're using the wrong login protocol. Ask your ISP if possible. If not, then more often than not your ISP uses PAP so try to make your connection work using PAP first. my options file reads as follows: # # This is an options file. If this file is contained in GateKeeper's # app wrapper it will be used when the user clicks the Link menu item # and the toolbar is not open and pointing at a Gate doc. If this # options file is within a Gate doc it will be supplied as a commandline # argument to pppd whenever the .Gate doc is used in launching ppp # /dev/cufa 38400 login name wotring # # The size of the Maximum Transfer Unit. Higher values # give better performance for file transfers. Lower values # give better performance for interactive performance. # mtu 576 # # If you want to periodically touch the other end to make # sure it is still alive, set these options. # lcp-echo-interval 15 # interval in seconds between touches lcp-echo-failure 3 # number of failed attempts before link shutdown # # If you want to enable debugging of the pppd process, leave # this uncommented. Output will be sent to the file # /usr/adm/ppp2.2.debug (or whatever you set it to in # /etc/syslog.conf. # debug # # If you want kernel debugging (i.e. debug output from the # NeXT LKS), enable this: # # kdebug 1 is SC_DEBUG # 2 is SC_LOG_INPKT # 4 is SC_LOG_OUTPKT # 8 is SC_LOG_RAWIN # 16 is SC_LOG_FLUSH # # add together to get debugging you want. # # kdebug 17 # # If you want pppd to set the PPP connection as the default # route when the link is brought up, enable this option. # Standalone systems dialing into a provider probably want this # option. # defaultroute # # These two options disable some of the # various types of authentication. # # Note: Some systems require authenticaion before # negotiation can complete. If you disable # authentication on these systems, they will # not complain, but they will also not allow # negotiaion to complete and your link will # not come up. # # If you enable either or both of these, you must # read the pppd man page to create the proper # secrets files. # #-pap -chap # # This specifies that should use a UUCP-style lock on the # serial device to ensure exclusive access to the device. # lock # Use hardware flow control (i.e. RTS/CTS) to control the # flow of data on the serial port. # # On NeXT, you also must use the proper device. # /dev/cufa # -or- # /dev/cufb # crtscts # bsdcomp nr,nt # # Request that the peer compress packets that it sends, # using the BSD-Compress scheme, with a maximum code size # of nr bits, and agree to compress packets sent to the # peer with a maximum code size of nt bits. If nt is not # specified, it defaults to the value given for nr. # Values in the range 9 to 15 may be used for nr and nt; # larger values give better compression but consume more # kernel memory for compression dictionaries. Alterna- # tively, a value of 0 for nr or nt disables compression # in the corresponding direction. # # It is OK if the peer doesn't support BSD compression. In that # case, the peer will NAK this option and things will continue # normally. #bsdcomp 10,10 -bsdcomp #-vj # # Add an entry to this system's ARP [Address Resolution # Protocol] table with the IP address of the peer and the # Ethernet address of this system. # # This is only necessary if your are allowing others to dial # into you (i.e. you are the server). #proxyarp /dev/cufa The important parts to this file are the 'login' command and the 'name' command. I don't know if these commands have to be in the beginning of the file, but they work that way for me. The 'name' command simply is your username that your ISP gives you. If not there, your specified hostname would be used. I am unsure as to what the 'login' command does but it seems obvious. Also deceiving is the '-pap' and '-chap' commands. I assumed that '-pap' meant do not use pap protocol and '+pap' meant to use it. This however is not the case. '-pap' does mean to not use the pap protocol, but '+pap' has something to do with authenticating your host which will never happen. If you use '+pap' then you will never make the connection (I wish somebody told me that). In order to use pap, you must simply comment out the '-pap' line as I did above (or the '-chap' line if you use chap). I also changed my 'mtu' line to read 576 instead of the default 276. I'm not too sure what all is involved with this change but the way I understand it, a higher number is better for bigger transfers and smaller number is better for smaller transfers. I works faster for me at 576. /etc/ppp/pap-secrets If you are using pap then you need to specify your username and password. This file can have multiple usernames but I have not dealt with such situations. I have seen this file composed a couple of different ways. Mine is basic and works. It reads as follows (without the parentheses) : wotring * (my password) IV. Paths When you unpacked the 'PPP-2.2.tar.Z' file in the root directory, it unpacks all the binaries but you need to make links to those files as well as the man files (if you want to read them). To do so, initiate the following four commands at a shell prompt: /bin/mkdirs -o root -g wheel -m 755 /usr/local/bin /usr/local/man/man8 ln -s /usr/local/ppp/ppp-2.2-0.4.6/bin/* /usr/local/bin ln -s /usr/local/ppp/ppp-2.2-0.4.6/man/man8/* /usr/local/man/man8 touch /usr/adm/ppp2.2.log V. GateKeeper I use Gatekeeper because it was the first thing I tried and it worked. If you wish, you can use kermit, or some other app as a dialer. Kermit sucks. There is an app called PPP-meter that is supposed to work well but I haven't used it. Here is how I configured the Gatekeeper preferences. Under Switches: check all options except 'Secure Display', 'Auto launch pppd', 'Dial on demand', and 'Sound'. Under Link: configure your modem appropriately. It is important that you specify the correct modem speed. It took me about an hour to figure out that problem. I've never heard of modem speed screwing things up like it did. dumb. Under Editor: select the 'remote' file and open the file as well as the example file. Copy the two lines that read: b288|cudfb28800|Dial-out on cudfb at 28800 baud:\ :dv=/dev/cudfb:pa=none:br#38400:tc=BASIC: and paste them in your 'remote' file. Make certain that the three references to your modem are to the correct port. My modem is on com 1 and so my port is /dev/cufa. ------------------------------------------------------------------------ That should be it. Now the hard part really begins. Start up Gatekeeper and select 'dial'. You are prompted for a telephone number; the process becomes obvious. Once you've logged in and started the remote ppp you should see ASCII crap on the screen. Click on the pppd icon and it SHOULD make the connection. It might work the first time but I doubt it. If the connection isn't made, then it may help to check the log file located as specified in your syslog.conf. I could never get the damn thing to log to that, or any other, file so I'm not going to give any advice on log files. Chances are you'll have to tweak the settings a bit. Once you start messing with settings, it becomes easier (but not less frustrating). The above settings worked for me without any crashes or other problems. If you have any questions, problems, or flames then feel free to let me know. ------------------------------------------------------------------------ -Brian Wotring prak@usl.edu http://www.ucs.usl.edu/~bjw5371/flux.html [Image]