Solarisx86 Asynchronos PPP Configs

Author: Bruce Riddle
LAST UPDATE: January 13, 2003

If you are running Solaris 8 10/01 or later refer to:
http://home.earthlink.net/~jaymzh666/solaris/spppoe.html
or
http://www.kempston.net/solaris/connect.html


Powered by Solaris x86 THESE ARE the files and configuration information I am successfully using to run a Dial-Up PPP session on My Solaris X86 2.5 box with a. US Robotics Sportster 28.8 (external). This page has become extremely popular; I hope they help you out.

Although originally conceived for 2.5 It also works for Solaris 2.51 2.6 and 2.7, note that the void ip is only necessary for Solaris 2.4 and derivatives. Also I never mention using cu to establish a connection so don't send me emails about cu.


Files References Hints Patches Modem Config


Files Involved when configuring Solaris native ASynchonos PPP
/platform/i86pc/kernel/drv/asy.conf
/etc/hosts
/etc/asppp.cf
/etc/resolv.conf
/etc/nsswitch.conf
/etc/uucp/Dialers
/etc/uucp/Devices
/etc/uucp/Systems
/var/adm/log/asppp.log


Some other Serial and PPP References on this :
  • If you don't have your modem working yet please read the Solaris 2.x Basic Modem Guide
  • Donwload Michael McKnight's sol2.x_isp_ppp.ps.gz Outbound PPP Setup Guide via anonymous FTP. A 40K Postscript file
  • Dave Brillhart's PPP cookbook describes how to get PPP running between a PC with Windows and a Sun running Solaris 2.x.
  • Stokely Consulting Services PPP/SLIP Resources
    Some Other Hints:
  • If your having troubles with your internal modem these comments might help.
    internal-modems.html.
    internal-modems2.html.
  • If it's dialing and dropping please read Richard Tong's ppp-negotiate hints.
  • If you do not want asppp starting everytime you boot. Rename /etc/rc2.d/S47asppp to /etc/rc2.d/disabled.S47asppp.
  • Remeber! You can start and stop asppp.cf by issueing "/etc/init.d/asppp {start | stop}" .
  • Remeber! After you start it type "ping www.sun.com" or something to force the asppp link to dial.
  • Note: The default log file is /var/adm/log/asppp.log. Check this for errors. The detail level is set in /etc/asppp.cf file. This file can get large if debug_level is set to 9 so once configured you can reduce this value. A sample of what the log file looks like with debug set to 8 can be found in this asppp.log file.
    You need the com port working. If you are running Solaris 2.6, No changes should be required for /platform/i86pc/kernel/drv/asy.conf. This is the most common problem for Solaris x86 2.5 and earlier intalls has to do with Sun's decision not to load the COM2 or more appropriately the /dev/ttyb device by default. Often the modem is placed on COM2 or /dev/ttyb. If you do not have a /dev/ttyb file you do not have the second serial port defined. For other serial ports and internal modems follow the same steps but uncomment the appropriate line in the asy.conf file.

    To add the second serial port, perform the following as root:
    1. edit the file named asy.conf in the /platform/i86pc/kernel/drv directory. if your file looks anything like mine (and it probably does),
      # Note: To enable COM2 uncomment the following entry, and it may require
      #       reconfiguration of SMC device if you are using SMC Enet with
      #       default configuration (which also uses IRQ 3).  (See smc.conf file.)
      #name="asy" class="sysbus" interrupts=12,3 reg=0x2f8,0,0 ioaddr=0x2f8;
      
      remove the comment (the "#" character) on the line followed by name="asy"...
    2. save the changed file
    3. return to the root directory and, this is the important part, type "touch /reconfigure".
    4. now type "shutdown -g 0 -i 0" or "reboot" to bring the system down.
    5. after you get a message saying syncing file systems and no more [N] characters appear, turn your machine off and then turn it on again.

    Patches

    First off, do you have the TCP/IP patches installed? The connection will be They are available through
    http://access1.sun.com/

    Results of a "ati4" from my USR28.8


    ati4
    USRobotics Sportster 28800 V.34 Fax Settings...

    B0 E1 F1 M1 Q0 V1 X4 Y0
    BAUD=38400 PARITY=N WORDLEN=8
    DIAL=PULSE ON HOOK

    &A3 &B1 &C1 &D2 &G0 &H1 &I0 &K1
    &M4 &N0 &P0 &R1 &S0 &T5 &U0 &Y1

    S00=000 S01=000 S02=043 S03=013 S04=010 S05=008 S06=002
    S07=060 S08=002 S09=006 S10=007 S11=070 S12=050 S13=000
    S14=000 S15=000 S16=000 S17=000 S18=000 S19=000 S20=000
    S21=010 S22=017 S23=019 S24=000 S25=005 S26=000 S27=000
    S28=008 S29=020 S30=000 S31=000 S32=000 S33=000 S34=000
    S35=000 S36=014 S37=000 S38=000 S39=000 S40=000 S41=000
    S42=000 S43=200 S44=015 S45=000 S46=000 S47=000 S48=000
    S49=000 S50=000 S51=000 S52=000 S53=000 S54=064 S55=000
    S56=016 S57=000

    LAST DIALED #:

    OK

    Results of a "ati7" from my USR28.8


    ati7
    Configuration Profile...

    Product type US/Canada External
    Options V32bis,V.FC,V.34
    Fax Options Class 1/Class 2.0
    Clock Freq 20.16Mhz
    Eprom 256k
    Ram 32k

    Supervisor date 04/18/95
    DSP date 03/31/95

    Supervisor rev 6.0.5
    DSP rev 1.0.9

    My /etc/hosts file


    Modifications are noted in red.
    #
    # /etc/hosts
    #
    127.0.0.1	localhost	
    #0.0.0.0	void			#null address for dynamic assignment
    129.69.200.213	x86-2 riddleware.com x86-2.riddleware.com  #my machine
    129.69.200.214  x86-1 			#PC-NFSpro Win95 Client
    198.80.46.1 	ns1.prolog.net prolog prolog.net	#providers 1st DNS server
    198.80.46.2	ns2.prolog.net		#providers 2nd DNS server	
    198.80.46.3	ns3.prolog.net		#providers 2nd DNS server
    198.80.46.254	prolog.gateway		#providers gateway
    192.104.181.3   sun0.muhlberg.edu
    


    My /etc/asppp.cf file

    Modifications are noted in red.
    #ident	"@(#)asppp.cf	1.10	93/07/07 SMI"
    #
    # Copyright (c) 1993 by Sun Microsystems, Inc.
    #
    # Sample asynchronous PPP /etc/asppp.cf file
    #
    #
    #ifconfig ipdptp0 plumb mojave gobi up
    #
    #path
    #       inactivity_timeout 120     # Approx. 2 minutes
    #	interface ipdptp0	   
    #	peer_system_name Pgobi     # The name we log in with (also in
    #				   # /etc/uucp/Systems
    
    
    # Configuration for reaching prolog.net as a ppp dial up client
    # modified jun 9 96 briddle
    # riddleware.com and ns1.prolog.net must match entries in the host table
    # riddleware.com represents the local machine 
    # ns1.prolog.net ISP's represents my ISP's fisrt DNS
    
    ifconfig ipdptp0 plumb riddleware.com ns1.prolog.net up netmask 255.255.255.0
    path
    	interface		ipdptp0
    	peer_system_name	ppp-prolog
    	inactivity_timeout	1800
    	debug_level		8
    	negotiate_address	on
    	default_route
    
    
    Note: The default log file is /var/adm/log/asppp.log. Check this for errors. The detail level is set in /etc/asppp.cf file. This file can get large if debug_level is set to 8 so once configured you can reduce this value. A sample of what the log file looks like with debug set to 8 can be found in this
    asppp.log file.

    My /etc/resolv.conf file


    This file needed to be created.
    #/etc/resolv.conf
    #created jun 9 96  briddle
    #This is the search order of DNS servers.   
    #Note these entries should exist in the /etc/hosts file.
    #One of these is necessary, some ISP's do not offer more than
    #one but you can borrow another from a friend.
    
    domain .com
    nameserver	198.80.46.1
    nameserver	198.80.46.2
    nameserver	198.80.46.3
    
    


    My /etc/nsswitch.conf file


    Modifications are noted in red.
    #
    # /etc/nsswitch.conf file:
    #
    # An example file that could be copied over to /etc/nsswitch.conf; it
    # does not use any naming service.
    #
    # "hosts:" and "services:" in this file are used only if the
    # /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
    
    passwd:     files
    group:      files
    #first search the local machine then the dns server of the ISP 
    hosts:      files            dns
    networks:   files
    protocols:  files
    rpc:        files
    ethers:     files
    netmasks:   files	
    bootparams: files
    publickey:  files
    # At present there isn't a 'files' backend for netgroup;  the system will 
    #   figure it out pretty quickly, and won't use netgroups at all.
    netgroup:   files
    automount:  files
    aliases:    files
    services:   files
    sendmailvars:   files
    

    My /etc/uucp/Dialers file


    Modifications are noted in red.
    #ident	"@(#)Dialers	1.7	95/05/15 SMI"	/* from SVR4 bnu:Dialers 2.8.1.6 */
    #
    # Each caller type that appears in the Devices file (5th field)
    # should appear in this file except for the built in callers.
    # Each line consists of three parts:
    # - the name of the caller
    # - the translation table for the phone number to translate from
    #   the 801 codes (=-) to the code for the particular device
    # - a chat script (same format and meaning as the login scripts
    #   that appear in the Systems file.
    #
    # Meaning of some of the escape characters:
    # \p - pause (approximately 1/4-1/2 second delay)
    # \d - delay (2 seconds)
    # \D - phone number/token
    # \T - phone number with Dialcodes and character translation
    # \N - null byte
    # \K - insert a BREAK
    # \E - turn on echo checking (for slow devices)
    # \e - turn off echo checking
    # \r - carriage return
    # \c - no new-line
    # \n - send new-line
    # \nnn - send octal number
    #
    # See the Administration Documentation for more details.
    #
    
    penril	=W-P	"" \d > Q\c : \d- > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP > 9\c OK
    vadic	=K-K	"" \005\p *-\005\p-*\005\p-* D\p BER? \E\T\e \r\c LINE
    develcon ""	"" \pr\ps\c est:\007 \E\D\e \n\007
    micom	""	"" \s\c NAME? \D\r\c GO
    direct
    ##########
    #	The following entry is for use with direct connections
    #	using ttymon with the -b and -r options on both ends,
    #	or the old uugetty with the -r option.
    ##########
    uudirect ""	"" \r\d in:--in:
    
    #  Rixon Intelligent Modem -- modem should be set up in the Rixon 
    #  mode and not the Hayes mode.
    #
    rixon	=&-%	"" \r\r\d $ s9\c )-W\r\ds9\c-) s\c : \T\r\c $ 9\c LINE
    
    #   Hayes Smartmodem -- modem should be set with the configuration
    #   switches as follows:
    #
    #       S1 - UP		S2 - UP		S3 - DOWN	S4 - UP
    #       S5 - UP		S6 - DOWN	S7 - ?		S8 - DOWN
    #
    hayes	=,-,	"" \dA\pTE1V1X1Q0S2=255S12=255\r\c OK\r \EATDT\T\r\c CONNECT
    
    #   USR Courier V.32 and Sportster
    #   Set the switches as follows:
    #
    #   1 2 3 4 5 6 7 8 9 10
    #   U U D U U U D D D U		Courier 
    #   U U D U U U U D		Sportster
    #   U U D U D U U D		Factory setting
    #
    usr288x =,-,	"" \dA\pTE1V1X1Q0S2=255S12=255&A0&H1&M5&B2\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts,crtsxoff
    usrv32-ec =,-,	"" \dA\pTE1V1X1Q0S2=255S12=255&A0&H1&M5&B2\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts,crtsxoff
    usrv32-nec =,-,	"" \dA\pTE1V1X1Q0S2=255S12=255&A0&H1&M0&B0\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts,crtsxoff
    usr288	   =,-,	"" \dA\pTE1V1X1Q0S2=255S12=255&A0&H1&M0&B0\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts,crtsxoff
    usr56      =,-, "" \dA\pT&F1&K1&M0&B1\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts,crtsxoff 
    #   Telebit TrailBlazer
    #
    tb1200	=W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=2\r\c OK\r \EATDT\T\r\c CONNECT\s1200
    tb2400	=W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=3\r\c OK\r \EATDT\T\r\c CONNECT\s2400
    tbfast	=W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=255\r\c OK\r \EATDT\T\r\c CONNECT\sFAST
    
    #   Telebit T1600
    #
    tb9600-ec =W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=6\r\c OK\r \EATDT\T\r\c CONNECT\s9600 STTY=crtscts,crtsxoff
    tb9600-nec =W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=6S180=0\r\c OK\r \EATDT\T\r\c CONNECT\s9600 STTY=crtscts,crtsxoff
    
    Other modems listed but the list is long


    My /etc/uucp/Devices file


    Modifications are noted in red.
    #ident	"@(#)Devices	1.6	92/07/14 SMI"	/* from SVR4 bnu:Devices 2.7 */
    
    # Some sample entries:
    # NOTE - all lines must have at least 5 fields 
    #    use '-' for unused fields
    # The Devices file is used in conjunction with the Dialers file.
    # Types that appear in the 5th field must be either built-in
    #  functions (801, Sytek, TCP, Unetserver, DK)
    #  or standard functions whose name appears in the first
    #  field in the Dialers file.
    # Two escape characters may appear in this file:
    # - \D which means don't translate the phone #/token
    # - \T translate the phone #/token using the Dialcodes file
    # Both refer to the phone number field in the Systems file (field 5)
    # \D should always be used with entries in the Dialers file, since the
    # Dialers file can contain a \T to expand the number if necessary.
    # \T should only be used with built-in functions that require expansion
    # NOTE: - if a phone number is expected and a \D or \T is not present
    #	a \T is used for a built-in, and \D is used for an entry
    #	referencing the Dialers file. (see examples below)
    #
    #
    # ---Standard modem line
    # ACU cua/b - 2400 hayes
    # or
    # ACU cua/b - 2400 hayes \D
    #
    # ---A direct line so 'cu -lcua/b' will work
    # Direct cua/b - 9600 direct
    #
    # ---A ventel modem on a develcon switch (vent is the token given to
    #	the develcon to reach the ventel modem)
    # ACU cua/b - 1200 develcon vent ventel
    # ACU cua/b - 1200 develcon vent ventel \D
    #
    # ---To reach a system on the local develcon switch
    # Develcon cua/b - Any develcon \D
    #
    # ---Access a direct connection to a system
    # systemx term/00 - Any direct
    #
    # where the Systems file looks like
    # systemx Any systemx 1200 unused  "" in:-\r\d-in: nuucp word: nuucp
    #	(The third field in Systems matches the first field in Devices)
    #
    # ---To connect to any system on the DATAKIT VCS network
    # DK DK 0 Any DK \D
    #
    # ---To connect to a system on a Datakit in nj/ho
    # DKho - uucp Any DK nj/ho/\D
    #
    # ---To use an ACU that is connected to Datakit that DK does not understand
    #	how to talk to directly
    # ACU - 0 Any DK vent ventel \D
    #
    # ---To use a dialer that the Datakit understands how to chat with
    #	This is a special case where the translation must be done by the
    #	Devices file processing.
    # ACU DKacu 0 Any DK py/garage/door.\T
    #
    
    TCP,et - - Any TCP -
    
    ########	AT&T Transport Interface
    #
    # ---To use a STREAMS network that conforms to the AT&T Transport Interface
    #	with a direct connection to login service (i.e., without
    #	explicitly using the Network Listener Service dial script):
    #
    # networkx,eg devicex - - TLIS \D
    #
    #	The Systems file entry looks like:
    #
    # systemx Any networkx - addressx in:--in: nuucp word: nuucp
    #
    #	You must replace systemx, networkx, addressx, and devicex with system
    #	name, network name, network address and network device, respectively.
    #	For example, entries for machine "sffoo" on a STARLAN NETWORK might
    #	look like:
    #		sffoo Any STARLAN - sffoo in:--in: nuucp word: nuucp
    #	and:
    #		STARLAN,eg starlan - - TLIS \D
    #
    # ---To use a STREAMS network that conforms to the AT&T Transport Interface
    #	and that uses the Network Listener Service dial script to negotiate
    #	for a server:
    #
    # networkx,eg devicex - - TLIS \D nls
    #
    #
    # ---To use a non-STREAMS network that conforms to the AT&T Transport 
    #	Interface and that uses the Network Listener Service dial script
    #	to negotiate for a server:
    #
    # networkx,eg devicex - - TLI \D nls
    #
    ########
    #
    #
    # NOTE: blank lines and lines that begin with a , , or # are 
    #		ignored.
    #	protocols can be specified as a comma-subfield of the device type
    #		either in the Devices file (where device type is field 1)
    #		or in the Systems file (where it is field 3).
    #
    ########
    #
    ACU cua/b - Any hayes
    Direct cua/b - Any direct
    
    #ACUEC	cua/b - 9600  usr288
    ACUEC	cua/b - 28800 usr288
    ACUEC	cua/b - 19200 usr288
    ACUEC	cua/b - 38400 usr288
    



    My /etc/uucp/Sytems file

    Modifications are noted in red.
    #ident	"@(#)Systems	1.5	92/07/14 SMI"	/* from SVR4 bnu:Systems 2.4 */
    #
    # Entries have this format:
    #
    #	Machine-Name Time Type Class Phone Login
    #
    #`15 Machine-Name		node name of the remote machine
    # Time			day-of-week and time-of-day when you may call
    #			(e.g., MoTuTh0800-1700). Use "Any" for any day.
    #			Use "Never" for machines that poll you, but that
    #			you never call directly.
    # Type			device type
    # Class			transfer speed
    # Phone			phone number (for autodialers) or token (for
    #			data switches)
    # Login			login sequence is composed of fields and subfields
    #			in the format "[expect send] ...".  The expect field
    #			may have subfields in the format "expect[-send-expect]".
    #
    # Example:
    #	cuuxb Any ACU 1200 chicago8101242 in:--in: nuucp word: panzer
    #
    #ppp-8bit Any ACUEC 19200 8205077 "" P_ZERO name: briddle\n word: PASSWORD\n net> ppp\n
    ppp-shiva       Any ACUEC 38400 8618003 "" "" "" \n\n Userid: briddle word hok10 A0> ppp\n
    # See the System and Network Administration Manual for details
    # NOTE:  This section is a negotiation between you and your ISP.  It is an exchange
    # of prompts and arguments finishing with the command to start the PPP link.
    #
    #   +- Entry name used by /etc/asppp.cf file as the peer_system name argument
    #   |        +- "Any" Time (thanks to Andrew Hay)
    #   |        |    +- Entry for device                       
    #   |        |    |     +- Computer to modem speed                 
    #   |        |    |     |     +- Number to Dial           
    #   |        |    |     |     |      + Login Prompt=                                                        
    #   |        |    |     |     |      |      +- User ID; NOTE THE "\n" for a carriage return
    #   |        |    |     |     |      |      |          +- Password verification prompt                                     
    #   |        |    |     |     |      |      |          |          +- Your login Password; NOTE THE "\n" for a carriage return
    #   |        |    |     |     |      |      |          |          |     +- ISP's command Prompt                
    #   |        |    |     |     |      |      |          |          |     |     +- command to start PPP; NOTE THE "\n" for a carriage return          
    #   |        |    |     |     |      |      |          |          |     |     |          
    #   |        |    |     |     |      |      |          |          |     |     |          
    ppp-prolog Any ACUEC 38400 8205077 name: briddle\n password: PASSWORD\n net> ppp\n
    
    Recently I had 2 indviduals contact about problems. Well they had the usual stuff but the final part this chat and exchange part was where everything was all wrong.

    The problem with the first person was his ISP gave him a seperate login for a PPP account and a seperate one for a shell account. The problem with the second person was his ISP started PPP up immediately and did not even offer a shell account.
    In both cases all that was necessary was to remove the last two parameters of the appropriate System string.

    Another thing to be noted is if you are forced to run 8-Bit No-Parity you should add "" P_ZERO after the phone Number as in ppp-8bit.

    Feel free to E-mail me with Questions or Comments
    briddle@www.riddleware.com