Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 342
  • Last Modified:

US Robotics modem doesn't work after hardware upgrade

 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
hcheng
Asked:
hcheng
  • 6
  • 5
1 Solution
 
olidelCommented:
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
 
olidelCommented:
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
 
hchengAuthor Commented:
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
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.

 
olidelCommented:
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
 
hchengAuthor Commented:
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
 
olidelCommented:
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
 
hchengAuthor Commented:
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
 
hchengAuthor Commented:
Oh, my motherboard is Abit KT7A.
0
 
olidelCommented:
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
 
hchengAuthor Commented:
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
 
hchengAuthor Commented:
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

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

  • 6
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now