spacer graphic spacer graphic cubeprefsicon graphic [Bar]


PPP Troubleshooting Guide
BeOS Release 4

 

This document is a troubleshooting guide which attempts to answer some of the major questions that people have been having surrounding PPP under the BeOS. It is quite incomplete, but hopefully it will give you some guidance in solving your problem with PPP.

Although the details here are BeOS Release 4-specific, much of the information here is relevant to PPP difficulties with BeOS Release 3 or before. You simply need to substitute the right preferences configuration panel, all of which (in previous releases) are in the Networking preferences application.

This page was last updated on Monday, November 9, 1998.


Please note that this document does not attempt to explain creating a PPP interface under the BeOS. The BeOS User's Guide, in the section titled "Network Interfaces for Modem Connections" explains this process.

If, after using the instructions to create a PPP Network interface, you are still having problems, it's time to start working on troubleshooting. Generally, PPP problems (and solutions) can be broken down to these areas:

Note: Some of the suggestions below require you to edit various network settings files manually. Whenever you edit any of these files, you need to open the Network settings application, and click the "Restart Networking" button for the changes you've made to the settings to actually take effect.

Caution: More importantly, you need to back up any network settings file whenever you make manual changes. This is because if you ever make and save changes using the Network preferences application, the settings file may be overwritten, and your manual changes will be lost.

 

You're Not Sure How to Use PPP


The BeOS User's Guide is available on the Be web site, in the Documentation section:

http://www.be.com/documentation/index.html

The relevant section to read for details of connecting your BeOS system to the Internet, including via a PPP connection, are in chapter 3 "Connecting to the Internet With BeOS," in the section "Network Interfaces for Modem Connections." You should definitely read the entire chapter, and particularly that section, to understand certain concepts about connecting BeOS systems to the Internet.

Here are a few quick tips about PPP that you might miss in the BeOS User's Guide:

  • The Connect and SerialConnect applications have nothing to do with PPP, and in fact can cause contention with PPP over the use of the serial (modem) port. See the FAQ on Connect for details.

  • You can initiate a PPP connection by using a network tool to connect to a non-local service, for example, clicking the Be Home Page link in NetPositive. The connection will start automatically.

  • You can also initiate a PPP connection by using the Connect button in the Dial-Up Networking preferences application, as described in the BeOS User's Guide.

  • You can also initiate a PPP connection by right-clicking the modem icon in the Deskbar status area, and choosing Connect from the pop-up menu. The modem icon only appears after you have initiated a connection once before.

  • If your service provider is using the CHAP authentication protocol (their documentation should tell you this), you cannot use PPP on the BeOS with that provider. The BeOS is not compatible with CHAP at this time. Ask your provider if they can support the PAP protocol in addition or instead (PAP is much more common than CHAP, and virtually all providers should support it).

 

Bad or Incorrect Modem Cable


If you're using an external modem, it is possible that your modem cable is bad, or not wired correctly. A modern modem cable is required for PPP to work properly. The cable should wire the RTS, CTS, and DTR lines. Many older cables do not correctly wire all of these lines.

If you suspect that your modem cable could be bad, or incorrectly wired, borrow a friend's cable, or buy a new one at a store on the condition that you can return it if it doesn't solve your problem. Connect your external modem using the new cable, and try your PPP connection again.

 

Unsupported PC Modem


While the BeOS Release 4 supports various internal ISA card modems, it does not support so-called "Winmodems". This is because these are not true modems in the sense that portions of the modem hardware are emulated in software. This software runs under Windows, but equivalent software has not (yet) been written for the BeOS.

You can generally tell a modem is a Winmodem because it says so all over the modem's packaging and documentation. Another dead giveaway that a modem is a Winmodem is if it's a PCI card instead of an ISA card.

Finally, modems based on the Rockwell 11229-14 chipset are also not supported. These modems are usually Winmodems, but are always problematic.

 

Unsupported Mac Modem


The following Mac-specific modems do not work with the BeOS:

  • Apple GeoPort Telecom Adapter Pod (GeoPort "Modem")
  • Apple Express Modem
  • Global Village TelePort Gold II

If you are trying to use PPP with any of these modems, you will be unable to make it work. These are not true modems in the sense that portions of the modem hardware are emulated in software. This software runs under the Mac OS, but equivalent software has not (yet) been written for the BeOS.

Further details regarding why these modems do not work under the BeOS can be found in the FAQ section of the web site, if you're interested.

 

Serial Port Busy


If you received a message like "can't open /serial/dev1", this means your serial port is in use by something else on your system, and so cannot be used by PPP. There are several possible reasons why this might be the case:

  • You tried to use Connect or SerialConnect to start PPP (which it won't do), and now that application has tied up the serial port.

    In this case, you can try quitting the application and attempt to connect. If that doesn't work, try restarting your machine, and then attempt the connection.

  • Your serial port is being tied up by the serial debug output.

    In this case, you should try connecting your modem to the other serial port on your system. After plugging the modem into the other serial port, and reconfiguring your PPP interface to use the other port, try your connection.

 

Unresponsive Modem


If you are not getting a dial tone when you try to initiate a PPP connection, or if your modem cannot connect to your ISP's modem, the problem is most likely an incorrect modem initialization string.

Different modems require different initialization strings. These strings set the modem to the correct configuration for establishing the connection with the service at the other end of the phone line. You choose the modem string by selecting your modem (brand and model) from the Your modem is pop-up menu in the Modem configuration panel dialog of the Dial-Up Networking preferences application.

If you do not find your modem in the pop-up menu, or if your modem is there but does not seem to work, you can try one of the several "generic" modem initialization strings in the Your modem is pop-up menu.

If none of those work, you will need to edit the file that contains the initialization strings, and add a new modem/string combination to the file. This process is very simple:

  1. Open the /boot/beos/etc/modems.ppp text file by opening it with the StyledEdit application.

  2. Add a new blank "manufacturer" line to the file. Putting it at the beginning makes it easy to get to in the menu. Call it something like "MyModems" (no spaces allowed).

  3. Press the Return key and then the Tab key to create a new modem "entry" line.

  4. Type the name of the modem/string combo, without spaces (for example, "Global_Village_Custom_288").

  5. Type a space.

  6. Type the initialization string for this modem (say, "AT&F1", which works on my GVC TelePort Platinum; see below for more on creating init strings).

  7. Save your changes and close the file.

  8. Return to the Dial-Up Networking preferences application and choose the new modem in the Your modem is pop-up menu.

  9. Restart networking.

  10. Attempt your connection.

If you cannot find the initialization string for your modem in the modem string listing file, or the one you found doesn't work correctly, try using an initialization string for a different modem made by the same manufacturer.

If that fails, try looking for the initialization string in a connection script that successfully uses the modem when booted under a different operating system (or on a Mac or PC using that modem temporarily, should you be using a BeBox).

If even that fails, you can construct a modem initialization string yourself. Your custom modem initialization string should configure your modem to the following settings, which the BeOS depends on for PPP. You should consult your modem's manual for information about how to configure these settings:

  • Disable echo (or "full duplex") between your modem and your computer

  • Disable software flow control (XON/XOFF) between your modem and your computer

  • Enable hardware flow control (RTS/CTS) between your modem and your computer

  • Hang up on DTR drop

  • Carrier detect (CD) only on while connected

  • Display result codes, e.g., OK, CONNECT, etc.

  • Determine the serial port rate by the rate of the last AT command

Note: If you make changes to your modems.ppp file, be sure to make a backup copy of the file. This file is replaced by the BeOS Installer when you update or re-install the BeOS, and your changes would be lost if you don't have a backup.

 

Modems Connect, Authentication Fails


If your modem is in fact connecting to your ISP's modem pool, but the connection is not getting past the authentication process, then you most likely have an incorrect (for your ISP's particular PPP server) PPP connection script. This script is chosen from the Server Type pop-up menu of the connection settings panel in the Dial-Up Networking preferences application.

The PPP connection script handles sending your name and password (and sometimes a connection protocol request) to the remote PPP server, in response to the server's prompts. It works quite simply, waiting for the server to send particular strings, and then sending other strings back to the server.

The first thing to try is changing the Server Type to either "Standard PPP" or "Unix login", whichever one you don't have chosen now. "Standard PPP" tells the BeOS to use PAP to log you in; "Unix login" uses a more traditional Unix style method to log in. If neither of those works, try any other options you see, in order, except for the "Manual" option.

Unfortunately, there is no universal script that will work with all PPP servers. The default scripts that come with the BeOS will work for many PPP servers, but not all. If none of the scripts work with your service provider, you can use the "Manual" option, and log in manually every time, or you can write your own PPP connection script.

There are no easy steps to follow to do this, so we can only give you guidance regarding writing a PPP connection script. You will need to either learn a fair amount about PPP login procedures, or work with your ISP's technical support group, to determine the exact script to use.

You will probably find checking the "Display chat when connecting" checkbox in the Modem settings panel to be extremely helpful in determining what your PPP connection script should be. This will give you a small terminal window that appears when you connect, which will let you see exactly what the server is sending, and what the BeOS is sending back (which might not be working), and more importantly, it will let you figure out what the BeOS should be sending.

PPP connection scripts are stored in a text file, located at /boot/beos/etc/servers.ppp, and can be modified by using the StyledEdit application. Each line of the servers.ppp file is a single PPP connection script, and each script contains space-separated strings (in the form of send-string expect-string send-string expect-string...). For example, the "Unix login" PPP connection script is:

\T\e ogin:\s \d\u assword: \d\w\r\S

Explanation:

  1. \T\e -- display the terminal window, and don't send a return, this is a do-nothing line
  2. ogin:\s -- wait for the string "ogin:<space>" to be sent from the server
  3. \d\u -- delay one second, then send the username (and the implied carriage return)
  4. assword: -- wait for the string "assword:"
  5. \d\w\r\S -- delay one second, then send the password, a carriage return, and then start the actual PPP session

Here are the special "escape codes", or tokens, which let you insert special characters or character strings into the modem initialization string or the PPP connection script (case matters with these, beware the upper and lower case "s"/"S" and "n"/"N" tokens!):

\s  --  a space
\n  --  a newline (linefeed)
\r  --  a carriage return
\e  --  don't enter a carriage return after the send string
\d  --  delay for one second
\S  --  end login sequence and start PPP protocol
\N  --  do nothing, go to next item in script
\T  --  start up a terminal window (display and write)
\#  --  a hashmark ("#" is for comments in the
servers.ppp file)
\p  --  inserts the PHONE_NUMBER into the string
\u  --  inserts the USERNAME into the string
\w  --  inserts the PASSWORD into the string

\T starts up a terminal window. This window will show you the login sequence as it happens, and it accepts keyboard input and has a "Start PPP" button, so you can manually start up PPP. This is extremely useful, for example, if you need to enter a security code which changes for each login.

The \e token might seem unnecessary, but you need this sometimes because normally a carriage return will be sent automatically after a send string (for example, after the USERNAME), and sometimes you don't want that (though that is unusual).

Likewise the \N token, but it is sometimes useful if you are expecting two strings from the server, for example, and you don't want to send anything in between.

Note: The modem initialization string and the PPP connection script both separate each string in the script with a space. If you need to actually send a command that includes spaces, you need to "escape" them using the \s!

 

Other Problems and Problem-Solving Techniques


It is possible that your ISP is using dial-up hardware which does not implement its PPP support completely to the specification. In this case, your modems would connect, but then nothing would happen.

Or perhaps you are having other problems that are not dealt with specifically here. Before you send in a request using the "Be Customer Technical Support" form, you might try the following (we'll ask you to try it when you contact us):

  • After making sure that you have no network connections active or transfers in progress, click the Restart Networking button in the Network preferences application. If the BeOS tells you networking cannot be restarted, you need to reboot your machine. Then try your PPP connection again.

  • Try different baud rate settings for your modem (the Speed pop-up menu in the Serial Settings for a PPP connection). 19200 is a good one to try first. Trying speeds faster and slower than your modem can support is a good idea.

  • Check the "Display chat when connecting" checkbox in the Modem settings panel of the Dial-Up Networking preferences application. This will open a small terminal window where you can see the progress of your connection. You may see an obvious mistake, or more likely, you'll find information that will help you modify your Server Settings script, or help us track down your problem.

  • If all else fails, we will probably ask you to check the "Log all bytes sent/received" checkbox in the Modem settings panel of the Dial-Up Networking preferences application, and then have you send us the resulting log files to look at. These log files will be located at /boot/var/log/ppp-read.log and /boot/var/log/ppp-write.log, and they will tell us everything that happened between your modem and your ISP, which may help us diagnose the difficulty.


Copyright © 1999 by Be, Inc. All rights reserved. Legal information (includes icon usage info).
Comments, questions, or confessions about our site? Please write the Webmaster.