Installing A PCI Modem Card
Contents:
References:
2. I have seen references to folks having difficult-to-fix serial problems by using "setserial" incorrectly. I was able to use it to enable a PCI modem on my PC under Linux, but I was fully prepared to have to re-install if anything went wrong.
Prerequisites:
Your kernel must have serial support. I was using RedHat Linux 6.2, with kernel 2.2.14-5.0 at the time of this writing.
Discovery
As root, do "cat /proc/pci > pci.txt" to get a current record of detected PCI devices. Install your pci card modem by the instructions accompanying the card. I chose a US Robotics/3Com 56k Performance Pro PCI, model 3CP5610A.
Boot up and "su" to root. Do "cat /proc/pci" again, to identify the IRQ of the new device you installed. Compare this listing with the previous one saved in "pci.txt". Your modem should have been detected, even if the manufacturerâ?āň?s data shows "unknown". I was fortunate to have only one serial device appear in the list. If you have more, you will have to decide which one it is.:
# cat /proc/pci PCI devices found: . . Bus 0, device 14, function 0: Serial controller: Unknown vendor Unknown device (rev 1). Vendor id=12b9. Device id=1008. Medium devsel. IRQ 9. I/O at 0xfce8 [0xfce9]. . .
Enable the PCI Serial Port
Now that you know the IRQ (mine was "9", above) and I/O port address of your serial device, enter the command:
# setserial /dev/ttyS1 irq 9 port 0xfce8 autoconfig
This assigns port 0xfce8 and IRQ 9 to serial port device ttyS1 as you might have guessed.
Now re-direct your /dev/modem link to the new modem device port:
# rm -f /dev/modem # ln -s /dev/ttyS1 /dev/modem
If you have already set up "netcfg" or "kppp" to use /dev/modem as the device, you should be ready to go. Simply command "/sbin/ifup ppp0" to begin dialing.
Other Tips:
I used a modem init of "AT&F1" to start with, so I could hear the modem dialing, and watched a "tail -20 /var/log/messages &" to see how the connection was proceeding. I then reverted to "AT&F1L0" to turn off the speaker.
I put the "setserial..." command (above) at the end of my /etc/rc.d/rc.local file to auto-switch to internal modem at boot.
I modified the modem init command to "AT&F1&K0" later, when I had trouble connecting to some of the less adept modems in my ISPâ?āň?s stack. The "&K0" turms off auto compression mode in the 3COM PCI series. I could tell that my modem was failing negotiation by listening to the repeated "beep-boop-buzz"â?āň?s as it tried to connect. I thought it was either negotiating for speed or compression, so I picked "compression" and got lucky.
_____________________
Credits: Thanks to my guru-babe Robin, this time, for having the guts to type the setserial command while I was making breakfast!