Joy Yokley - Edited document and coverted to DocBook v4.1 (SGML).
This document describes how to build, setup, and use the driver and user space application necessary for using the ACP (Mwave) Modem in the IBM Thinkpad™ 600, 600E, and 770 models which include the on board ACP modem hardware. The latest version of this document can always be found at http://www.ibm.com/linux/ltc/
The ACP Modem for Linux is a software based modem. Support software for the ACP modem is composed of a loadable kernel module and a user level application. Together these components support direct connection to public switched telephone networks (PSTNs) and support selected countries world wide. Refer to Section 6 of this document for the supported country list.
The modem also supports the standard communications port interface (ttySx) and is compatible with the Hayes AT Command Set.
ACP Modem software is continually under development. If you encounter bugs or usability issues, please contact us and we'll work to correct them.
This Linux ACP Modem driver was ported from the Windows NT™ version of the driver available from IBM. Many thanks to Keith Frechette, Charles Ball, and Frank Novak for their technical and support efforts in making this project possible.
The latest version of this driver is available from http://www.ibm.com/linux/ltc/
Thomas Hood's Debian GNU/Linux on IBM ThinkPad 600 and 600x page contains lots of useful information.
Copyright (c) 2002 IBM Corporation
This document may be reproduced or distributed in any form without prior permission. Modified versions of this document may be freely distributed, provided that they are clearly identified as such, and this copyright is included intact.
This document is provided "AS IS", with no express or implied warranties. Use the information in this document at your own risk.
This version of the ACP Modem driver supports the IBM Thinkpad™ 600E, 600, and 770 that include on-board ACP modem hardware.
The ACP Modem provides the following features:
Your modem contains 56K technology. To take advantage of this technology, you must first make sure that your Internet Service Provider (ISP) supports a 56K modem protocol. Significantly higher modem connection speeds, up to 56kbps, require all-digital transmission connections from your ISP to the line card in the central office from which your phone line is connected. The actual connection rate may be limited by the quality of your telephone lines. Telephone line quality may vary from location to location. Current regulations limit maximum trasfer rates to 53K. While your modem contains 56K technology, typical maximum connection rates in the receive direction may be significantly less than 56K. Currently, 56K capability is for the receive direction only. The transmit direction uses V.34 technology.
If you are building the ACP Modem driver along with the user space application, you need to have a complete Linux source tree for your kernel, not just an up-to-date kernel image.
In the [WORLDTRADE] section of your mwavem.conf file, set the Country= parameter to your country access code.
Country information (including access codes) are listed in the mwavem.conf file. For example, for France the following section is present:
To set France to be your configured country in the [WORLDTRADE] section of mwavem.conf,
An initialization script has been provided which may be used to to start, stop, or check the status of the ACP Modem driver and application. It has been successfully run on the Debian, Slackware, SuSE, and Red Hat distributions and should run on any of their derivitives. If you are using the runtime script, it will load the mwave device driver module, configure the serial port, and start the mwave manager for you. All of the options which can be passed to the device driver module, along with some options for the script itself, can be configured by uncommenting and editing the appropriate variables at the beginning of the script.
The mwaved startup script can be found in the src/mwavem directory of the source distribution. If you are running the Red Hat distribution, you can copy the script to your /etc/rc.d/init.d directory and issue the ntsysv command in order to enable it at boot time. If not using Red Hat, see the documentation for your distribution for information on how to set this up to run at boot time.
It is recommended that you use the provided mwaved script. If you are not using the script, however, the following sections will describe how to manually start the device driver and application.
To load the mwave device driver use
The following arguments may be supplied with the insmod command:
The following code is an example of how to run DSP using ttyS1 resources:
You can use the tpctl package on Linux or the Thinkpad™ configuration utility on Windows NT or DOS to manage the configuration of Thinkpad™ related resources.
The ACP Modem is now available for use by your favorite dialing application.
The following sections list solutions to possible problems you may experience.
In order to recognize memory above 64 Meg, it may be necessary to append the "mem=" option to the kernel command line. If you are using LILO for your boot loader, you would do this in the lilo.conf file. For example, if you had a machine with 128 Meg you would type:
If you forget to run the Thinkpad™ utility to enable the ACP Modem and you didn't specify any command line arguments when inserting the mwave module (or it didn't work), you will receive a message in the syslog, similar to the one below:
If you receive a message like the one above, check the command line arguments you provided to insmod.
The ACP Modem requires the use of system resources for both the DSP and the UART provided by the ACP chip. For Linux systems, you will specify parameters to use for the duration of the boot with the insmod mwave command line parameters listed in Section 2.4.1.
Typically the configured resources are:
For dual boot systems we recommeded that you use the Thinkpad™ Configuration Utility on Windows NT or DOS to configure these system resources.
Windows NT Thinkpad Configuration Utility Notes: (Under the Internal Modem --> Advanced selection)
The configured initial connection speed is set to 64000. The modem should start there and negotiate down to a connection speed based on target modem and line capabilities. If the modem is unable to connect it may be having difficulty negotiating with the target modem. Try setting the SPEED parameter in mwavem.conf to a lower initial starting speed. Supported speeds include:
The startup script that executes the serial port setup works well with Red Hat, Debian, Slackware, and SuSE. If you are not running one of these distributions, you may need to perform the following steps in order to set up.
After inserting the mwave.o module and starting the mwavem application, you must run the setserial command in order for the serial port configuration to discover the UART on the mwave hardware:
Replace ttySx with the serial port you have configured the ACP driver to use.
To test whether the serial port is setup correctly, run:
The above command should return the following for serial port 1:
The port and IRQ numbers should match the information placed in the syslog by the ACP module when it was loaded:
If the information returned by setserial indicates that the UART is 'unknown' or if the IRQ and I/O resources do not match what you have in the syslog, you will need to reconfigure. Check the setserial man pages to learn how to setup the resources on your ttySx to match what appears in the syslog output.
If you have problems running setserial, you may have a resource conflict. Before using insmod mwave, check /proc/ioports and /proc/interrupts to make sure the resources you intend to claim are not already in use.
When upgrading to the 2.4.0 version of the kernel be sure to read the ./Documentation/Changes file. Kernel 2.4.0 requires an upgraded version of the pppd, gcc, and modutils (amoung other things). Follow the instructions for setting up the new pppd daemon carefully.
You may experience some initial problems getting ppp running with 2.4.0. One of the most prevelant errors we received was, "Can't locate module tty-ldisc-3." However, we had no problems once we rebuilt the kernel with the following options:
Errors encountered by the ACP Modem device driver or application are logged using the syslog utility.
The ACP device driver supports a debug argument to enable the generation of trace information. The command for this debug is listed below. You can also access several of the variables listed below in the mwaved script.
Where the following debug trace information is selectable:
Trace information is logged using the syslog utility.
The ACP application supports tracing through the use of flags configured in the [STARTUP] section of the mwavem.conf file.
Mwave Manager API trace points:
MEIO Manager trace points:
Mwave Modem application trace points:
Trace information is logged using the syslog utility.
This driver has been tested using the ThinkPad™ 600E. The same chipset is integrated on the 600 and 770 models and should work.
The following countries are supported by the ACP Modem driver
Table 1. List of Supported Countries
Hayes is a trademark of Hayes Microcomputer Products, Inc.
MNP (Microcom Network Protocol) is a trademark of Microcom, Inc.
IBM is a trademark of International Business Machines, Inc.