US Robotics modem doesn't work after hardware upgrade

Posted on 2001-07-31
Medium Priority
Last Modified: 2013-12-15
 I have recently upgraded my system from P2-300 to an AMD Athlon system.
After the upgrade, my US Robotics 56K Voice/Faxmodem doesn't work in Linux
any more (but works in Win 98).  I have tried vgetty and minicom and they
both failed to get any response from the modem.  I am running Red Hat 7.1.

  A few bits of info.  The modem is an ISA PnP board, and /proc/isapnp

Card 1 'USR3070:U.S. Robotics 56K Voice INT' PnP version 1.0
  Logical device 0 'USR3070:Unknown'
    Device is active
    Active port 0x3e8
    Active IRQ 7 [0x3]
    Resources 0
      Priority preferred
      Port 0x2f8-0x2f8, align 0x0, size 0x8, 10-bit address decoding
      IRQ 3 High-Edge
      Alternate resources 0:1
        Priority acceptable
        Port 0x3f8-0x3f8, align 0x0, size 0x8, 10-bit address decoding
        IRQ 4 High-Edge
      Alternate resources 0:2
        Priority acceptable
        Port 0x3e8-0x3e8, align 0x0, size 0x8, 10-bit address decoding
        IRQ 3,4,5,7 High-Edge
      Alternate resources 0:3
        Priority acceptable
        Port 0x2e8-0x2e8, align 0x0, size 0x8, 10-bit address decoding
        IRQ 3,4,5,7 High-Edge

The result of setserial during bootup is:

Serial driver version 5.05a (2001-03-20) with MANY_PORTS MULTIPORT SHARE_IRQ SER
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
ttyS02 at port 0x03e8 (irq = 7) is a 16550A

The output in the vgetty log says:

07/30 22:57:28 yS0  vgetty: experimental test release 0.9.27 / 11Mar01
07/30 22:57:28 yS0  mgetty: experimental test release 1.1.25-Feb01
07/30 22:57:28 yS0  reading generic configuration from config file /etc/mgetty+s
07/30 22:57:29 yS0  reading program vgetty configuration from config file /etc/m
07/30 22:57:29 yS0  reading port ttyS0 configuration from config file /etc/mgett
07/30 22:57:29 yS0  check for lockfiles
07/30 22:57:29 yS0  locking the line
07/30 22:57:29 yS0  lowering DTR to reset Modem
07/30 22:57:30 yS0  send: \dATQ0V1H0[0d]
07/30 22:57:30 yS0  waiting for ``OK''
07/30 22:57:50 yS0  timeout in chat script, waiting for `OK'
07/30 22:57:50 yS0  init chat timed out, trying force-init-chat
07/30 22:57:50 yS0  send: \d[10][03]\d\d\d+++\d\d\d[0d]\dATQ0V1H0[0d]
07/30 22:57:54 yS0  waiting for ``OK''
07/30 22:58:14 yS0  timeout in chat script, waiting for `OK'
07/30 22:58:14 yS0  init chat failed, exiting...: Interrupted system call
07/30 22:58:14 ##### failed in mg_init_data, dev=ttyS0, pid=681

Any help would be greatly appreciated.

Question by:hcheng
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 5

Expert Comment

ID: 6337508

  Try to use the following command in one of your startup script such as /etc/rc.d/rc.local :

setserial /dev/ttyS2 port 0x3e8 irq 7 autoconfig -v

 To test it use it first from a comand line and you should see a message which show that the linux kernel found your modem. However, I'm wondering if you don't have a irq conflict because IRQ 7 is in general associated with the parrallel port, of course everything depend of your BIOS settings.

Hope this help.


Expert Comment

ID: 6337517
Hi again,

 Don't forget to check that the symbolic link /dev/modem is pointed to /dev/ttyS2. Check also the modem configuration in minicom.


Author Comment

ID: 6337975
To reply to your comments:

1. Yes, I do have /dev/modem pointed to /dev/ttyS2

2. I have used setserial and it found everything.  Also,
   I have played with the serial port settings in BIOS
   (including disabling the onboard serial ports
   altogether).  When I do that the modem port/IRQ settings
   would be different (but the same in Windows and Linux).
   Whatever settings I tried, it works in Windows but not
   in Linux.
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.


Expert Comment

ID: 6338074

 Just to make sure, Did your modem work under linux before your hardware upgrade ? This is to make sure that you don't have a winmodem (although i believe most of the ISA modem are hardware modems). You should also check the rights that you have on /dev/modem and /dev/ttyS2. If it is possible it will be better to set your modem to IRQ 10 or IRQ 11 (you should have switches to do that on your modem card) this is the IRQ that in general a modem use but of course your modem card must support these IRQs and they must be free, you can check that under windows.

 What is the ouput that you have when you run setserail ?


Author Comment

ID: 6338699
My modem used to work in Linux before I upgraded.  I definitely have the permissions.  IRQ 10/11 is not possible according to /proc/isapnp.

Running setserial says:

# setserial -a /dev/ttyS2
/dev/ttyS2, Line 2, UART: 16550A, Port: 0x03e8, IRQ: 7
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_vhi skip_test auto_irq

Expert Comment

ID: 6340694

   Can you tell me what are the IRQ which are set on your hardware ISA modem (switches). I really suspect a hardware conflict. Setserial can sometimes give some bad information because it can keep some settings in configuration file such as /etc/serial.conf. What is the IRQ and port address of your parrallel port ? We talked about serial ports (ttyS00 at 0x03f8 (irq = 4) and ttyS01 at 0x02f8 (irq = 3)) but I don't know about the parrallel port. To do a test you can maybe disable /dev/ttyS01 and set your modem to IRQ 3 i/o 0x02f8. I have almost the same configuration and it is working for me (I've got a PCI modem instead of an ISA one). By the way what is your motherboard ?


Author Comment

ID: 6340941
There is no switch/jumpers on the modem.  It is supposed to be PnP.  I have also tried forcing the irq by passing kernel parameters using isapnp_reserve_irq, but that didn't help.

I have a bit more info:

1. when I tried using irq 0 in setserial, my modem finally
   talked to me.  However, it is slow and it doesn't give
   me "OK".  e.g. when I type "ati", I get "5601" but no
   "OK".  I also don't see "RING" when the phone rings,
   just a blank line.  I have checked my AT codes to make
   sure that it is supposed to report "OK".

2. If I don't use irq 0 (but use what "cat /proc/isapnp"
   tells me, which corresponds to what "pnpdump
   --dumpregs" says), then I get some response but only
   after long delays and possibly missing some characters.

3. I have tried disabling parallel port but that didn't
   help.  I'll try disabling the serial ports when I get
   home tonight.

After reading a few HOWTOs, it really sounds like I have some sort of IRQ conflicts.  The problem I have now is to figure out how to get rid of it.  But that still doesn't explain why my modem partially works (without the "OK" response) when it is set to IRQ 0.

Author Comment

ID: 6340950
Oh, my motherboard is Abit KT7A.

Accepted Solution

olidel earned 600 total points
ID: 6341722
Well, if you don't have switches or jumpers on your modem board that's gonna be difficult you will have to play with the other components of your PC.
Under win98, is everything working allright (parrallel port (with a printer), serial port (with a mouse maybe))? In case of, but i bet you already did it, you can compare IRQs, I/Os that you have under win98 and linux.
Finally, IRQ 0 should not be used to do a test because this IRQ is already used by some basics fonctions of a PC which could be something as the system clock, keyboard or whatever I don't remember exactly. The symptoms that you describe especially slow response is really typical of a hardware conflict

Author Comment

ID: 6341802
Everything is working under Win98.

IRQ 0 was used as suggested by the serial HOWTO (and it explained that IRQ 0 is treated in a special way and it isn't a real IRQ).

Author Comment

ID: 6343102
Okay, turned out that if I disabled one of my serial ports, reserve an IRQ in the BIOS using "legacy ISA", and then force isapnp to set up the modem to use that IRQ (use isapnp_irq_reserve kernel parameter), then my modem works.

Featured Post

Quick Start: DOCKER

Sometimes you just need a Quick Start on a topic in order to begin using it.. this is just what you need to know to get up and running with Docker!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

How many times have you wanted to quickly do the same thing to a list but found yourself typing it again and again? I first figured out a small time saver with the up arrow to recall the last command but that can only get you so far if you have a bi…
The purpose of this article is to demonstrate how we can use conditional statements using Python.
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Suggested Courses

719 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question