0. Prehistory. Boca modem was in Linux INcompatibility List
David Welton wrote that PnP Boca Modem is incompatibily with Linux
If this reference hasn't worked search "Linux INCompatibility List Welton"
on the Dejanews in the mode of old archive. It must be the letter #3 form 97/08/20.
1. If you have Plag&Play modem
1.1 If you have PnP ( Plag&Play modem ) ,for example Boca V.34 PnP
which works well in Windows95 and we have a problem in Linux
download and install the package isapnp.
This package is copyright P.J.H.Fox (firstname.lastname@example.org)
and it is destinated for free use. I use it. This tool have solved the problem
of my PnP modem Boca V.34. in my Linux system.
1.2 To install this package you need to execute
( before I deleted the line with -DNEEDNANOSLEEP )
It makes a) pnpdump, isapnp in /sbin
b) some manuals man
c) may by other things, see Makefile
See file INSTALL of the package isapnptool
1.3 pnpdump > /etc/isapnp.conf
This is the configuration file for isapnp.
One can see man isapnp.conf, man isapnp, man pnpdump ...
It makes template for configuring.
Important: This tool sees Boca Modem ( see this conf ).
2. Linux build-in program setserial
2.1 Setserial is a program designed to set and/or report the
configuration information associated with a serial port.
This information includes what I/O port and IRQ a particu-
lar serial port is using, and whether or not the break key
should be interpreted as the Secure Attention Key, and so
During the normal bootup process, only COM ports 1-4 are
initialized, using the default I/O ports and IRQ values,
as listed below. In order to initialize any additional
serial ports, or to change the COM 1-4 ports to a non-
standard configuration, the setserial program should be
used. Typically it is called from an rc.serial script,
which is usually run out of /etc/rc.local.
2.2 Setseril options
If you use -v setserial will print additional status
output when the Linux system is booting.
The device argument or arguments specifies the serial
device which should be configured or interrogated. It
will usually have the following form: /dev/cua[0-3].
Why uart 16550A ?
The option uart is used to set the UART type (port type).
The permitted types are none, 8250, 16450, 16550, and
16550A. Since the 8250 and 16450 UARTS do not have
FIFO's, and since the original 16550 have bugs which make
the FIFO's unusable, the FIFO will only be used on chips
identified as 16550A UARTs.
3. Check isapnp and setserial
3.1 Do command isapnp /etc/isapnp.conf.
It checks errors,
And if it's OK then you get about such as
"Board 1 has Identity 5f 00 07 92 9a 02 03 49 0a:
BRI0302 Serial No 496282 [checksum 5f]"
3.2 setserial -v /dev/cua1 uart 16550A
/dev/cua1, UART: 16550A, Port: 0x02f8, IRQ: 3
4. Place isapnp and setserial in the /etc/rc.local
To call the package isapnp and the program setserial while
the Linux boot set the next lines in /etc/rc.d/rc.local
if [ -x /sbin/isapnp ]; then
if [ -x /bin/setserial ]; then
/bin/setserial -v /dev/cua1 uart 16550A
The program setserial is the Linux build-in command
and has to be used even you haven't PnP modem.
5. Use minicom to check if the modem keeps alive
For most systems, reasonable defaults are already compiled in.
5.1 Ctrl-A Go to the minicom menu
Select O and go to the menu
Filenames and paths
File transfer protocols
Serial port setup
Modem and dialing
Screen and keyboard
Save setup as dfl
Save setup as..
5.2 Select "Serial port setup"
Your set must be about this
A - Serial Device : /dev/cua1
B - Lockfile Location : /var/lock
C - Callin Program :
D - Callout Program :
E - Baud/Par/Bits : 19200 8N1
F - Hardware Flow Control : Yes
G - Software Flow Control : No
5.3 Ctrl-A Go to the minicom menu
Select D and do Dial
You must hear your modem.
6. Nameserver configuration in the /etc/resolv.conf
# Local domain server, for example "euronet"
# nameserver "IP-adress1", This is the domain name server 1
# nameserver "IP-adress2", This is the domain name server 2
Note, that the namesrver order is very important. The main
nameserver must be placed first.
7. Establish ppp connection. Typical ppp-on script
You must establish the ppp ( Point-to-Point protocol ) connection
Typical ppp-on script /usr/sbin/ppp-on
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command. However, it is simple.
# These are the parameters. Change as needed.
LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
NETMASK=255.255.255.0 # The proper netmask if needed
# Export them so that they will be available at 'ppp-on-dialer' time.
#export TELEPHONE ACCOUNT PASSWORD
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS1 115200 \
asyncmap 20A0000 escape FF kdebug 4 $LOCAL_IP:$REMOTE_IP \
noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT
8. Typical chat script /etc/ppp/ppp-on-dialer
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
# !!! Note, the chat is very sensitive to odd characters.
# !!! Don't insert comments after exec line
exec /usr/sbin/chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 30 \
OK ATDT5733855 \
CONNECT '' \
name: your_loginname \
9. Unbelievable. I have Linux connection to Internet
9.1 I have run /usr/sbin/ppp-on, I hear my modem and the connection
is established. Check it by ping or ftp. We can now to launch
your browser Netscape or whatever.
9.2 When I changed speed to 115920 baud ( instead of 19200 ) in /usr/sbin/ppp-on
the connection was established well!
9.3 Don't forget to do ppp-off at the end of session.
When I have run /usr/sbin/ppp-off
the connection was down and pppd was immediately dropped.