Latest LQ Deal: Latest LQ Deals
Go Back > Forums > Linux Forums > Linux - Hardware
User Name
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?


View Poll Results: How helpful was this HOW-TO for you?
Wonderfully, exquisitely helpful! 0 0%
Pretty helpful. 0 0%
Marginally helpful. 0 0%
Completely unhelpful. 0 0%
Voters: 0. You may not vote on this poll

  Search this Thread
Old 10-07-2004, 04:52 AM   #1
Registered: Oct 2003
Location: Chico, CA, USA
Distribution: Linux Mint
Posts: 877

Rep: Reputation: 124Reputation: 124
USR5610B (USR Performance Pro Modem) HOW-TO!

Hello, everybody. It took me a while to get this modem working, but once I did it was worth it. Here's a how-to that should help others who have bought this nice hardware-based modem and don't quite know what to do with it. Enjoy!

USR5610B Internal 56k Modem How-To for Linux

Legal Stuff

This document is distributed as-is, meaning that the author does not make any guarantees about the accuracy of any of the information contained herein and is not obligated to provide technical support pertaining thereto. Use at your own risk. There is no warranty pertaining to this document. You are free to distribute this document verbatim at no charge, but you may not sell it without express written permission from the author. You are free to modify it as long as you keep this notice intact and post the original author?s name, prominently as such, in the modified version. Please contact the author if you wish to sell this document or distribute it as part of another work. Copyright 2004 Dane Mutters

End of Legal Stuff

Please note that this How-To assumes that you will be using a graphical user interface (KDE, Gnome, etc.), the ?BASH? shell, and the KPPP modem dialing program.

For Slackware and non-RPM-based distributions:

You will need rpm2targz and cpio in order to use this installation method. You can get these from:

Now that you have all the dependencies (above), you can start installing those modem drivers. First, download LNUX_3ComMdm-<version number>.i386.rpm from The current version number (as of 9-15-04) is 1.0-1. Save this somewhere where you can find it easily (preferably somewhere in your home directory).

It is recommended that you enter a windoing environment (KDE and so on) at this point, as you will soon be required to be editing and reading several files at once.

Now enter a command prompt (such as Konsole), change to the directory where you stored the .rpm file ("cd [/the/place/where/you/put/it]"), and type the following: (omit the "1)", "2)", etc.)

1) chmod -x LNUX_3ComMdm-<version number>.i386.rpm
(insert your version number between the "<>".)
2) mkdir USR5610B
3) mv LNUX_3ComMdm-<version number>.i386.rpm USR5610B
4) cd USR5610B
5) rpm2targz LNUX_3ComMdm-<version number>.i386.rpm
6) gunzip LNUX_3ComMdm-<version number>.i386.tar.gz
7) tar -xvf LNUX_3ComMdm-<version number>.i386.tar
8) su
9) [enter your root password]
10) cd bin
11) cp -v 3ComMdm /bin
12) cd ../usr/man/man1
13) cp 3ComMdm.1 /usr/man/man1
14) gzip 3ComMdm.1
15) cp 3ComMdm.1.gz /usr/man/man1
16) cd ../../../etc/rc.d/init.d
17) working=$PWD

At this point you need to figure out where your system's initialization scripts are kept. In Slackware 10 they are in /etc/rc.d. They have been known to reside in /etc/rc.d/init.d on other distributions. Keep the command prompt that you have been using open. Make sure that whichever location you choose is full of files--NOT links--that look like "rc.something." To make sure that the files in that directory are not links, type "ls -l /the/directory"; if it's a link, it will have a bit at the end that looks something like "filename -> /blah/blah/blah". If you can't find anything that starts with "rc.blah", try typing "here=$PWD ; cd / ; find -name rc.* ; cd $here". This will search your entire system for anything matching that description, and then return you to the directory where you where when you typed that command. Found the right location? Good (I hope). Now back to the installation. Make sure you have root permissions ("su") and type the following into the command line:

18) cd $working
(If this doesn't work, you'll have to manually navigate back to where you were in step 17.)
19) chmod -x serial
20) cp serial [/the/directory/with/your/system/initialization/files]
21) cd [/the/directory/with/your/system/initialization/files]
22) cp rc.serial rc.serial.bak
23) chmod -x rc.serial.bak
(You now have a backup of ?rc.serial? called, ?rc.serial.bak?.)

Now comes the complicated part. You need to insert the contents of the file, "serial" into the file "rc.serial", but you shouldn't get rid of anything that's important to the rest of your system. To do this, open "serial" in a text editor window, and "rc.serial" in another text editor window. (Make sure that you have root privileges when you do this. When in doubt run the text editor from a command prompt in which you are logged-in as root. Ex. ?/something/something/gvim?, ?/something/something/kate?, etc.) Now start analyzing the code, one section at a time. (Don't worry; I'll walk you through this.) If you don't have a file called "rc.serial", create one in your system initialization directory.

The first thing you should know is that any line that starts with "#" is "commented out," meaning that it doesn't do anything. This happens when the programmer wants to explain what the code does, or when he wants to keep some piece of code on hand but doesn't want it to be executed. A "section," as I'll use the term, is a bit of code that is between commented-out text both above and below it (unless it's the end of the file, in which case there might not be anything below it). Each section, except for the first one, starts with a description of what the proceeding code does. The second section of ?serial?, for example is titled, "# Define location and serial port for PCI modem."

OK, now you're a guru (sort-of). If you had to make a new "rc.serial" file, this is going to be really easy. Just copy and paste everything from "serial" into "rc.serial". Then save the files, close the text editors, enter a command prompt, navigate to your initialization directory, and type (as root), "chmod +x rc.serial". Reboot and you're (hopefully) done with the command prompt part of this How-To and can move on to ?The GUI Section.?

If you already had an "rc.serial" file, the first thing you need to do is go to the top of the "serial" file and look for the following:


Now check for the same commands near the beginning of your "rc.serial" file. You may come across the following; this corresponds to the "SETSERIAL=?" line:

if test -x /bin/setserial ; then
elif test -x /sbin/setserial ; then

If you are able to find these lines ("RCLOCKFILE=..." and "SETSERIAL=...") in "rc.serial", then you don't have to do anything with this section. If you can't find these in "rc.serial", LOOK AGAIN AND AGAIN. If you still can't find them, copy these lines from "serial" into the beginning of "rc.serial". Now move down to the section in "serial" called "#Define location and serial port for PCI modem". Look for a section by the same name in "rc.serial". If none exists, look in "rc.serial" for lines that look very similar to these lines in "serial". If you don?t find any, copy that section, INCLUDING THE SECTION NAME into "rc.serial", just before a section that says, "# Handle System V init conventions...". If this section doesn't exist, paste the ?#Define location?? section at the end of ?rc.serial?.

Now look for two sections in "rc.serial": one starting with "# Handle System V init conventions...", and one starting with "# If not stop, it must be a start....". (They should appear in that order.) If those sections exist, you can breathe a sigh of relief because you're done with the command prompt portion of this How-To. If they don't exist, copy them from "serial" into the bottom of "rc.serial". Now save and move on to the part of this document called, "The GUI Section."

For Red Hat and other RPM-based distributions:

First, download LNUX_3ComMdm-<version number>.i386.rpm from The current version number (as of 9-15-04) is 1.0-1. Save this somewhere where you can find it easily (preferably somewhere in your home directory).

Now enter a command prompt (such as Konsole), change to that directory ("cd [/the/place/where/you/put/it]") and type the following:

1) su
2) [enter your root password]
3) rpm -i LNUX_3ComMdm-<version number>.i386.rpm
(insert your version number between the "<>".)

This should install the driver and its support files into the directories where they need to be.

(Please note that I haven't tried the RPM steps personally since I use Slackware, which is a non-RPM-based distribution.)

Now move on to the next portion of this document, called "The GUI Section."

The GUI Section

Now go into your graphical user interface ("/usr/X11R6/bin/startx" on Slackware). (If your GUI isn't configured, you'll have to configure it before continuing; look for a How-To on Open KPPP. (You might have to locate it first using "cd / ; find -name kppp" and execute it from the command line.) Now we'll begin setting up your device and internet connection.

Click on the "Configure" button, or if prompted to create a connection, tell it you want to do so manually. Click on the "Device" tab. The configuration script you just edited (Slackware), or the rpm you just installed (Red Hat) will try to set your modem to "/dev/ttyS3", so you should try that first in the pull-down menu. Next go to the "Modem" tab and click "Query Modem". If you've chosen the right com port, this will say "Looking for modem", "modem ready", "ATI", "ATI 1", etc., and then give you a display that looks something like this:

ATI: 5601
ATI 1: C084
ATI 3: U.S. Robotics 56K FAX INT V5.22.70
ATI 4: U.S. Robotics 56K FAX INT Settings... B0 E0 F1 L0 M0 Q1 V1 X4 Y0
&A3 &B1 &C1 &D2 &G0 &H1 &I0 &K1 &M4 &N0 &P1 &R2 &S0
&T5 &U0 &Y1 S00=000
ATI 5: U.S. Robotics 56K FAX INT NVRAM Settings... Template Y0 DIAL=TONE
B0 E1 F1 L1 M1 Q0 V1 X4 BAUD=115200 PARITY=N WORDLEN=8
&A3 &B1 &C1 &D2 &G0 &H1 &I0 &K1 &M4 &N0 &P1 &R2 &S0
&T5 &U0 &Y1 S00=000 S02=
ATI 6: Template Y1 DIAL=TONE B0 E1 F1 L1 M1 Q0 V1 X4
BAUD=115200 PARITY=N WORDLEN=8 &A3 &B1 &C1 &D2 &G0
&H2 &I2 &K1 &M4 &N0 &P1 &R1 &S0 &T5 &U0 &Y1 S00=000
S02=043 S03=013 S04=010 S05=008 S06=004 S07=
ATI 7: Configuration Profile... Product type US/Canada Internal Product ID:
00561002 Options V32bis,V.80,V.34+,V.90,V.92 Fax Options
Class 1/Class 2.0 Line Options Caller ID, Distinctive Ring Clo

If your output looks dramatically different from this, or if it just hangs or gives you an error (such as ?device is busy?), then you've selected the wrong com port. Go back to the "Device" tab and select a different one; then go to "Modem" and select "Query Modem". Keep repeating this process until you get something that looks like the output above.

Now that you've (hopefully) got the right com port selected, click on the "Accounts" tab. If you already have a connection, click on it and select "Edit"; otherwise, click "New". Type in a name for your connection in the uppermost box. Click "Add" and enter your local internet access number. Go to the "IP" tab and make sure the "Dynamic IP" box is checked. Make sure the "Autoconfigure Hostname" box is NOT checked. Click on the "Gateway" tab. Select "Default Gateway" and "Assign the default route to this gateway". Click on the "DNS" tab. Select "Automatic" and optionally select "Disable existing servers during connection". (If you don?t know what this does, just leave it unchecked.) Edit the other tabs as necessary. (You probably won't have to touch anything.) Click "OK". Click "OK" again. Check or uncheck the "Show log window" box if you want to. Make sure your modem is plugged into your phone jack. Click Connect. Away you go!

Note: This was tested using Slackware 10 with kernel version 2.6.8.


If you're still having trouble, BACK UP your "/etc/ppp/options" file and try putting the following options into it if they're not already there. "defaultroute" may or may not be necessary. (Remember that if an option has a "#" in front of it, you can just remove the "#" to enable that option.)

idle 1200

If you find that your modem has trouble connecting at full speed or is unreliable once connected, you can try entering the following as your modem init string (as suggested by US Robotics technical support):

AT+PIG=1; +PMH=1; +PQC=3

Also make sure that you've got the serial port set at 57000; deviations from this can result in slower connection speeds or erratic behavior.

If you have questions regarding this document, first try looking for answers at, or, if you think something is missing or incorrect, you can contact me at

Copyright 2004 Dane Mutters


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
SuSE 9.1 Pro & USR5610B Modem rbeamish1 Linux - Hardware 1 11-14-2004 08:13 AM
RH network configuration error 8 during USR Pro Modem activation kingcobrawoods Linux - Networking 1 09-26-2004 04:03 PM
U.S. Robotics 56K Performance Pro modem is not detected on SuSE Linux 9.1 jmartin Linux - Hardware 0 06-18-2004 10:27 AM
USR Internal Pro Modem RPM Package? jwsmi Linux - Hardware 2 02-26-2004 03:13 PM
USR5610b and SUSE 9.0 Pro AutisticWunderr Linux - Hardware 0 02-17-2004 04:20 PM > Forums > Linux Forums > Linux - Hardware

All times are GMT -5. The time now is 08:50 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration