This page is optimized for viewing with Lynx ;-)


PCI modems and Linux

Most PCI modems are lacking standard modem parts (a controller and occasionally some other things) and only work under Linux if particular drivers have been written. If you want to find out whether you have a true modem (controller-based) or a fake modem (controllerless or software-based), see Winmodems are not modems for the list of what is known to be modems or instead nonmodems and for the current events. If you have a nonmodem and are looking for a driver, see Linmodems.org: Linux Winmodem Support.

There are several controller-based (true) PCI modems. The installation procedure for most controller-based PCI modems seems to be the same:


Installation of V90 PCI modem (on the example of a modem with Topic chipset)

You need to find the IRQ and first I/O address of the device from the /proc/pci file and then use setserial to configure the serial port:

# cat /proc/pci

  Bus  0, device  10, function  0:
    Communication controller: PCI device 151f:0000 (TOPIC SEMICONDUCTOR Corp) (rev 0).
      IRQ 12.
      I/O at 0xbc00 [0xbc07].

# cd /dev; test -c ttyS3 || ./MAKEDEV ttyS3; chmod 666 /dev/ttyS3
# setserial /dev/ttyS3 uart 16550A port 0xbc00 irq 12 baud_base 115200 spd_vhi skip_test
# ln -sf /dev/ttyS3 /dev/modem
You can use any other ttyS? device as well. Make sure that the setserial command is issued each time upon the boot-up, making a necessary addition somewhere in /etc/init.d/ or /etc/rc.d/, depending upon your distribution.

Below is a list of a few such modems (not all of them are specified as Linux-compatible), with occasional links to installation instructions for Linux users.

Not all of these modems are explicitly mentioned to be Linux compatible. There may be more controller-based PCI modems listed at Winmodems are not modems.



Written by Andrew Comech

The latest version lives at http://www.math.sunysb.edu/~comech/tools/PCImodems.html