[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]
AIX Versions 3.2 and 4 Asynchronous Communications Guide

Troubleshooting Modem Problems

A convenient way to debug any modem problem is to remove the modem and attach an ASCII terminal (with an interposer or null modem) to the same port and cabling as the modem. Set up the terminal with the same line speed, bits per character, and parity as the modem. A login herald should be displayed on the screen. If the herald is displayed on the terminal screen, then the problem is quickly isolated to the modem configuration.

The following tips will help you isolate problems associated with modem connections:

Problem Resolution
Respawning too rapidly The getty program is respawned by init.
Messages on console or errpt If init sees that it has to respawn any program more that five times in 225 seconds, it will display the message on the console and not respawn it for a period of time. The solution is to find out why getty is dying. There may be several causes:
  • Incorrect modem settings, usually as a result of having CD strapped high on the modem or cabling and also having either "echo" or "command response" turned on. (CD can also be assumed high by adding clocal in the runmodes and/or logmodes in the port configuration or also forced on the 128 port.)
  • Toggling of the CD signal. The getty process will die every time CD is toggled from an on to off state. (This action could be caused by a number of reasons. Be sure to verify that the cable is properly shielded. Logging in and out several times in rapid succession can cause this.)
No login prompt displayed after connection to modem
                          Make sure getty is running on the port. If it is, verify that the carrier detect connection to modem signal is being raised after the remote side has connected to the modem. If CD is being properly asserted, then verify the modem is connected to the right port. If you still do not see login, then attach a terminal with interposer to the cable in place of the modem and verify that a login prompt does appear. If you still don't see a prompt, try to echo characters to the terminal screen to verify the cable and hardware are functioning properly.
When a remote modem connects, it immediately disconnects
                          Verify that the modem is talking to the server at the same speed at which the server is listening to the modem. Try different baud rates for the tty, or program the modem to lock DTE speed to match the speed of the tty port. Verify that the modem or port is not keeping the carrier detect signal high or that the port is already being used by another process.
Getting garbage characters instead of a login prompt
                          This is due to a difference in protocols. Be sure to verify that the modem and the tty port agree on the same parity, baud rate, flow control, and character size.
Sometimes, after a successful session, no one is able to login
                          It may be that the modem does not reset after disconnect. See the modem manual to see how the modem can be set to reset after an on to off DTR transition.
Receiver buffer overruns in errpt The UART chip buffer is being overrun. Lower the value of the receive trigger in SMIT for the tty. This solution is only valid for the native, 8- or 16-port asynchronous adapters. Verify that the modem and tty port are using the same flow control.
ttyhog errors in errpt Modem and tty either do not agree on flow control, or no flow control is taking place.

Where to Get Additional Assistance

/usr/lib/uucp/Dialers Sample File Entries

The examples in this section are supplied without any warranty and will work as is for the models mentioned, but may not meet your specific needs. Some modifications will be required to meet your individual needs. Consult your modem manual for a more detailed explanation of the settings.

To use the settings to program the modem, you need an entry in the /usr/lib/uucp/Systems file such as:

 hayes Nvr HayesPRGM Any

The /usr/lib/uucp/Devices file should have an entry such as:

 HayesPRGM tty0 - 2400 HayesProgrm2400

With the above two entries made, use the following cu command to program the modem:

 cu -d hayes

# @(#)28 1.3 Dialers.samples, cmduucp, bos325 1/23/94 11:23:14
#
# COMPONENT_NAME: cmduucp
#
#
# (C) COPYRIGHT International Business Machines Corp. 1994
# All Rights Reserved
# Licensed Materials - Property of IBM 
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM 
# Corp.
################################################################
# Motorola UDS Modem 
# 
# Use udsmodemPROGRAM to program the modem. 
# Port needs to have rts/cts set. 
# Use uds or hayes dialer. 
# 
# The "udsmodemPROGRAM" line should be a single, continuous line
#  
################################################################
udsmodemPROGRAM =,-, "" \dAT&FQ2\r\c OK
ATE0Y0&C1&D2&S1%B5%E0*LC\r\c OKAT&K3&W\r\c OK

uds =,-, "" \dAT\r\c OK\r ATDT\T\d\r\c CONNECT

#################################################################
#
# IBM 7855 Model 10 
# Use IBMProgrm to program the modem. 
# This sets rts/cts flow control, turns 
# off xon/xoff, and sets the DTE speed at 19,200 bps. 
# The modem will connect at the appropriate speed and 
# flow control with the server. 
# Port needs to have rts/cts set. 
#  
# The "IBMProgrm" line should be a single, continuous line 
#  
################################################################
IBMProgrm =,-, "" \dATQ0\r\c OK AT&F\r\c OK ATM1\r\c OK 
AT&D3\r\c OK AT&C1\R2\Q2\M14\r\c OK AT&B8N1L0E0\A0\r\c OK
ATS0=1\r\c OK ATQ1&W0&Y0\r\c ""

#######################################################
# The following are used for Dialing out on a 7855 
# regular ACU device. We have to turn on result 
# codes (Q0) because they are turned off when we 
# programmed it. (Keeps all upper case login from 
# happening on dial in attempts.) 
# We have to have an extra "\" before "\N" because 
# the BNU programs strips it if it's before an "N".
########################################################
ibm =,-, "" \dATQ0\r\c OK ATDT\T\d\r\c CONNECT
  
# IBM 7855 ECL (No Compression)
ibmecl =,-, "" \dAT\\N3%C0Q0\r\c OK ATDT\T\d\r\c CONNECT
  
# IBM 7855 ECLC (Compression)
ibmeclc =,-, "" \dAT\\N3%C1Q0\r\c OK ATDT\T\d\r\c CONNECT
  
# IBM 7855 ECLC Compression with 256 byte block size
ibmeclc256 =,-, "" \dAT\\N3%C1Q0\A3\r\c OK ATDT\T\d\r\c CONNECT
  
# IBM 7855 No Compression 1200bps
ibm_ne12 =,-, "" \dATQ0\\N0&A2%C0\r\c OK ATDT\T\d\r\c CONNECT
  
# IBM 7855 No Compression 2400bps
ibm_ne24 =,-, "" \dATQ0\\N0&A3%C0\r\c OK ATDT\T\d\r\c CONNECT
  
# IBM 7855 No Compression 9600bps
ibm_ne96 =,-, "" \dATQ0\\N0&A6%C0\r\c OK ATDT\T\d\r\c CONNECT
  
# IBM 7855 No Compression 19200bps
ibm_ne192 =,-, "" \dATQ0\\N0%C0\r\c OK ATDT\T\d\r\c CONNECT
  
# IBM 7855 No Compression 12000bps
ibm_ne120 =,-, "" \dATQ0\\N3%C0&AL8\r\c OK ATDT\T\d\r\c CONNECT
  
# IBM 7855 No Compression 1200bps (Dial Quietly)
ibmq12 =,-, "" \dATQ0\r\c OK AT&A2M0DT\T\d\r\c CONNECT
  
# IBM 7855 No Compression 2400bps (Dial Quietly)
ibmq24 =,-, "" \dATQ0\r\c OK AT&A3M0DT\T\d\r\c CONNECT
  
# IBM 7855 No Compression 9600bps (Dial Quietly)
ibmq96 =,-, "" \dATQ0\r\c OK AT&A6M0DT\T\d\r\c CONNECT
  
# IBM 7855 No Compression 19200bps (Dial Quietly)
ibmq192 =,-, "" \dATQ0\r\c OK ATM0DT\T\d\r\c CONNECT
  
################################################################
# 
# Intel 9600EX Modem 
# Use IntelProgram to program the modem.
# This sets rts/cts flow control, and turns 
# off xon/xoff. 
# Port needs to have rts/cts set. (Use hayes dialer) 
#
# The "IntelProgram" line should be a single, continuous line 
#
################################################################
#IntelProgram =,-, "" \d\dAT\r\c OK AT&F\r\c OK AT&S1M1\r\c OK
AT&D3\r\c OKAT&C1\r\c OK ATL0E0Y0&Y0\X1\r\c OK ATS0=1\r\c OK
AT&W\r\c OK

################################################################
# Practical Peripherals 1440FXMT Modem 
# Use PracPerProgram144 to program the modem. 
# This sets rts/cts flow control, and turns 
# off xon/xoff. (Use hayes dialer) 
# DTE speed will be locked at connect speed when 
# the modem is programmed. (Suggestion: 38400 baud) 
# 
# The "PracPerProgram144" line should be a single, continuous 
# line
################################################################
PracPerProgram144 =,-, "" \d\dAT\r\c OK AT&F\r\c OK ATM1\r\c OK
AT&D3\r\c OKAT&C1&K3\r\c OK ATQ2E1&Q9\r\c OK ATS0=1S9=20\r\c OK
AT&W\r\c OK

################################################################
# Practical Peripherals 9600 bps Modem 
# Use PracPerProgram9600 to program the modem. 
# This sets rts/cts flow control, and turns 
# off xon/xoff. (Use hayes dialer) 
# 
# The "PracPerProgram144" line should be a single, continuous 
# line
################################################################
PracPerProgram9600 =,-, "" \d\dAT\r\c OK AT&F\r\c OK ATM1\r\c OK
AT&D3\r\c OKAT&C1&K3\r\c OK ATL0E0\r\c OK ATS0=1S9=20\r\c OK
AT&W\r\c OK

################################################################
# Practical Peripherals 2400 bps Modem 
# Use PracPerProgram to program the modem 
# 
# The "PracPerProgram2400" line should be a single, continuous 
# line
################################################################
PracPerProgram2400 =,-, "" \d\dAT\r\c OK AT&F\r\c OK ATM1\r\c OK 
AT&D3\r\c OKAT&C1\r\c OK ATL0E0\r\c OK ATS0=1S9=20\r\c OK AT&W\r\c OK

################################################################
# Hayes 2400 bps Modem 
# Use HayesProgrm2400 to program the modem. 
# (Use hayes dialer to dial) 
# 
# The "HayesProgrm2400" line should be a single, continuous line
#
################################################################
HayesProgrm2400 =,-, "" \d\dAT\r\c OK AT&F\r\c OK ATM1\r\c OK
AT&D3\r\c OKAT&C1\r\c OK ATL0E0\r\c OK AT S0=1\r\c OK AT&W\r\c OK

#################################################################
# Telebit t2000 Trailblazer Plus 
# Use TelebitProgrm to program the modem 
# This sets rts/cts flow control, and turns 
# off xon/xoff and sets the Default DTE speed at 
# 19,200 bps. 
# Port needs to have rts/cts set. 
# This sets modem to send PEP tones last as they can 
# can confuse some other modems. 
# 
# The "TelebitProgram" line should be a single, continuous line 
#
################################################################
TelebitProgram =,-, "" \dAT&F\r\c OK
ats2=255s7=60s11=50s41=2s45=255s51=254s52=2s54=3s58=2s64=1s66=1\r\c OK ATs69=1s92=1s96=0s105=0s110=1s111=30s130=3s131=1F1M0Q6TV1W0X3Y0\r\c OK 
ATE0&W\r\c OK
# Telebit T2000 dialers Entries:
# Forces a PEP connection:
tbfast =,-, "" \dATs50=255s7=60\r\c OK\r ATDT\T\r\c
CONNECT-\d\c-CONNECT

# 2400bps connection:
  
#tb2400 =,-, "" \dATs50=3\r\c OK\r ATDT\T\r\c CONNECT

# 2400 MNP:
tb24mnp =,-, "" \dAT\r\c OK ATS0=0S95=2S50=3S41=0\r\c OK
ATDT\T\r\c CONNECT
  
# 1200bps connection:#tb1200 =,-, "" \dATs50=2\r\c OK\r
ATDT\T\r\c CONNECT
  
# 1200 MNP:
tb12mnp =,-, "" \dAT\r\c OK ATS0=0S95=2S50=2S41=0\r\c OK
ATDT\T\r\c CONNECT
  
################################################################
# Telebit WorldBlazer 
# WORLDBLAZERProgram sets the DTE speed at 38400, but 
# you could set it higher if the DTE connection can 
# handle it. We answer with PEP tones last so as not 
# to confuse other modems. This turns off xon/xoff 
# and turns on RTS/CTS flow control. The port should 
# be locked to 38400 with these settings, and needs 
# to have RTS/CTS turned on. 
# 
# The "WORLDBLAZERProgram" line should be a single, continuous 
# line
################################################################
WORLDBLAZERProgram =,-, "" \dAT\r\c AT AT&F3M0\r\c AT
ATs51=253s92=1\r\c ATAT&W\r\c AT

#######################################################
# ACU Dialers for various BAUD rates for the 
# WorldBlazer - each sets the modem to attempt to 
# connect at a specific speed and lower. The 
# WBlazer will accept whatever the remote modem can 
# do. You will want to use PEP for other Telebits, 
# so use WBlazer38400 or WBlazer19200 for those 
#######################################################
# WBlazer =,-, "" \dAT\r\c OK ATDT\T\d\r\c CONNECT
WBlazer38400 =,-, "" \dATs50=255\r\c OK ATDT\T\d\r\c CONNECT
WBlazer19200 =,-, "" \dATs50=255\r\c OK ATDT\T\d\r\c CONNECT
# WBlazer14400 attempts to negotiate a V.42bis connection.
WBlazer14400 =,-, "" \dATs50=7\r\c OK ATDT\T\d\r\c CONNECT
  
# For a V.32 connection:
WBlazer9600 =,-, "" \dATs50=6\r\c OK ATDT\T\d\r\c CONNECT
  
# For a V.22 connection:
WBlazer2400 =,-, "" \dATs50=3\r\c OK ATDT\T\d\r\c CONNECT
  
# For a 1200 bps connection:
WBlazer1200 =,-, "" \dATs50=2\r\c OK ATDT\T\d\r\c CONNECT

128-Port Modem Cabling Considerations

AIX does not require DSR in modem-control applications, and since almost all of today's modems have autoanswering capability, the Ring Indicator signal is generally unnecessary.

ALTPIN Modem Wiring for RJ-45 Cabling

The 10-pin RJ-45 plugs is not the predominant cabling subsystem and may be difficult to obtain in the retail market. The AIX TTY subsystem provides an optional feature called ALTPIN, which swaps the logical functions of DSR (Data Set Ready) with DCD (Data Carrier Detect) for a port. When ALTPIN is enabled, DCD becomes available on pin 1 of an 8-pin RJ-45 connector (equivalent to pin 2 of a 10-pin connector).

If you wish to build an 8-wire modem cable for the 128-port RAN, use the 8-pin RJ-45 plug wired as in the following figure:

The following figure is a candid look at the asynchronous signal communication between the system unit and an attached modem. Here, data is being sent from the system unit to a remote system.


[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]