USR 56K dialup modem recognized but not responding

I have a USR 56K fax/modem PCI card in my computer. This is one of the “old-fashioned” cards with the built-in controller (ie not a winmodem). This modem was working in a previous installation of openSUSE 10.3 x86_64 which I have wiped and done a fresh install of openSUSE 11.0 x86_64. The modem continues to work in a separate partition using Windows XP so there isn’t any hardware issue. In openSUSE 11.0 the modem is listed in YaST as /dev/ttyS1. Here is the relevant output from lspci -v:

05:01.0 Serial controller: 3Com Corp, Modem Division 56K FaxModem Model 5610 (rev 01) (prog-if 02 [16550])
Subsystem: 3Com Corp, Modem Division Device 00d3
Flags: medium devsel, IRQ 19
I/O ports at 9000 [size=8]
Capabilities: [dc] Power Management version 2
Kernel driver in use: serial

The problem in openSUSE 11.0 is that there is no response from /dev/ttyS1 either using kppp or minicom. It isn’t a permission issue either as I have also tried using minicom and kppp as root and just for fun trying for a response on /dev/ttyS0 and /dev/ttyS2.

I have configured the firewall to treat the modem the same way as my ethernet connection (External Zone), but even if I turn the firewall off it does not respond.

Does anyone have any suggestions as to what else might be worth trying?[/size]

No one responded to my question about getting my USR modem working in openSUSE 11.0 and I saw in a hardware forum at linux.com that someone else had the exact problem with a USR modem moving from openSUSE 10.3 to 11.0 so I was (somewhat) relieved to see that this 10.3 -> 11.0 serial port issue is real and not simply my lack of competence in working with openSUSE 11.0. As far as I can tell kppp does not work at all in openSUSE 11.0. I have posted below the method I used to get the modem working using KInternet in the hopes that it might be useful to someone in these forums dealing with serial port issues. As you might infer from my belt and suspenders approach, KInternet is not one of my favourite programs as I find it too intrusive.

This is what I did to get my USR PCI modem working under openSUSE 11.0. First, in YaST, my ethernet interface eth0 is set to use “traditional method using ifup” and I have set KInternet not to start automatically. For a fresh start, delete your modem entry in YaST, then reboot, allowing the system to discover the modem (in my case the modem shows up as /dev/ttyS1). Then go into YaST->Network Devices->Modem and click on the button “Details”. In the page which shows up make sure “Enable device control for non-root user via KInternet” is checked. Then still in YaST, enter each of your ISP provider details. I have set the interface as start “Manually”, uncheck “Dial on Demand”, check “Modify DNS when connected”, check “Automatically retrieve DNS”. If you have entered more than one provider, reboot again so the different ISPs will show up in the KInternet menu. Because eth0 is set to use the “traditional method using ifup” KInternet should only be controlling the modem. This setup process should only need to be done once.

Before using the modem, as root I give the console command:
“ifconfig eth0 down” to disable the ethernet interface, so the only live interface is the modem controlled manually by KInternet. Then choose menu item Internet->Dial-Up->KInternet, choose your provider in the KInternet menu and then choose “Dial-up”. KInternet should connect to your chosen ISP.

I can’t say that all of the above is necessary but I really don’t like KInternet much compared to kppp and when I use KInternet I only want it to control the modem when I want to use it.

When you are finished using the modem, exit KInternet and as root, give the console commands:

ifconfig eth0 up
route add default gw [IP address]

The last command is used if eth0 is attached to a router with IP [IP address]. This gets your ethernet connection back to normal without rebooting.

After much grief fighting unsuccessfully with kppp this did get the modem setup and working for me and does not interfere with my normal use of eth0.