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.5-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 September 23, 1999.
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 "DialUpNetworking: Connectiong by Modem" 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:
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.
- 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 can create a custom initialization string. This
process is very simple:
- Click Custom.
- Enter a name for your modem.
- Click Done.
- Enter the initialization string (the AT Commands drop-down menu contains some common commands).
- Click Done.
- Click Yes to choose the new modem.
- Click Done. in the modem selection panel.
- Restart networking.
- 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
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:
\T\e
-- display the terminal window, and don't send
a return, this is a do-nothing line
ogin:\s
-- wait for the string "ogin:<space>"
to be sent
from the server
\d\u
-- delay one second, then send the username
(and the implied carriage return)
assword:
-- wait for the string "assword:"
\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.