Skip Navigation
Site HomeSearch

On-Line Reference:
RedHat Linux Unleashed

Did this help?
... or
Donate at PayPal®...

Tux the Pengin

OK, here's a freebie: A simulation of the old text-based Star Trek game we used to play on HP 2100's using a Teletype ASR-33 as a console: StarTrek Game

Installing A PCI Modem Card


  1. References
  2. Prerequisites
  3. Discovery
  4. Enable the PCI Serial Port
  5. Other Tips


Caution: 1. DONOT use this procedure for laptops to work with PCMCIA modems.
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.


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.


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!

Print plain