Solved

US Robotics modem doesn't work after hardware upgrade

Posted on 2001-07-31
11
330 Views
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
says:

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
IAL_PCI ISAPNP enabled
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
endfax/voice.conf
07/30 22:57:29 yS0  reading program vgetty configuration from config file /etc/m
getty+sendfax/voice.conf
07/30 22:57:29 yS0  reading port ttyS0 configuration from config file /etc/mgett
y+sendfax/voice.conf
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.

Howard
0
Comment
Question by:hcheng
  • 6
  • 5
11 Comments
 
LVL 2

Expert Comment

by:olidel
ID: 6337508
Hi,

  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.

Bye.
0
 
LVL 2

Expert Comment

by:olidel
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.

Bye
0
 
LVL 1

Author Comment

by:hcheng
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.
0
 
LVL 2

Expert Comment

by:olidel
ID: 6338074
Hi,

 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 ?

Bye
0
 
LVL 1

Author Comment

by:hcheng
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
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 2

Expert Comment

by:olidel
ID: 6340694
Hi,

   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 ?

Bye
0
 
LVL 1

Author Comment

by:hcheng
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.
0
 
LVL 1

Author Comment

by:hcheng
ID: 6340950
Oh, my motherboard is Abit KT7A.
0
 
LVL 2

Accepted Solution

by:
olidel earned 300 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
0
 
LVL 1

Author Comment

by:hcheng
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).
0
 
LVL 1

Author Comment

by:hcheng
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.
0

Featured Post

Complete Microsoft Windows PC® & Mac Backup

Backup and recovery solutions to protect all your PCs & Mac– on-premises or in remote locations. Acronis backs up entire PC or Mac with patented reliable disk imaging technology and you will be able to restore workstations to a new, dissimilar hardware in minutes.

Join & Write a Comment

If you have a server on collocation with the super-fast CPU, that doesn't mean that you get it running at full power. Here is a preamble. When doing inventory of Linux servers, that I'm administering, I've found that some of them are running on l…
Setting up Secure Ubuntu server on VMware 1.      Insert the Ubuntu Server distribution CD or attach the ISO of the CD which is in the “Datastore”. Note that it is important to install the x64 edition on servers, not the X86 editions. 2.      Power on th…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

708 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now