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