The Winmodems-and-Linux HOWTO: ISA or PCI ?

Next Previous Contents

## 2. ISA or PCI ?

## 2.1 PCI ?

Ok, now we have a Winmodem... But there are two types of Winmodems: ISA or PCI. For making the things harder, the two interfaces are pretty different. So, we'll now test if we have a PCI or ISA modem. First, you must configure your kernel. During the make *config, you must answer 'yes' to the following questions:

- In Loadable module support: 'Enable loadable module support (CONFIG_MODULES)', and 'Set version information on all modules for symbols (CONFIG_MODVERSIONS)' (note that you must have the modutils package installed ; See the Kerneld-HOWTO)
- In General setup:

  'PCI support' (CONFIG_PCI)

  Choose 'Any' in 'PCI Access Mode' (CONFIG_PCI_GOBIOS)

  'PCI quirks' (CONFIG_PCI_QUIRKS)

  'Backward compatible /proc/pci' (CONFIG_PCI_OLD_PROC)

- If you can config PCI Device Name Database (maybe with a 2.4+ kernel), your can say Y, this will make your /proc/pci file easier to understand (CONFIG_PCI_NAMES).
- In Filesystems

  '/proc filesystem support' (CONFIG_PROC_FS)

If you have never recompiled your kernel, maybe the kernel of your distribution will contains this. If you want to recompile it and you have never done it, read the Kernel-HOWTO.

Now, we assume that your new kernel is installed.

Now run 'cat /proc/pci'. If you see the name of your modem in the lines returned by the command then you have a PCI Winmodem. Jump to 'Installing the driver'

## 2.2 or ISA ?

If you don't find it, maybe you have an ISA modem. How to be sure ?

ISA support is not assumed by the Kernel (UPDATED: if you have a 2.4.x kernel, the kernel can do it automagically for you, if so, skip this section and read the next). It is a third-party software, named isapnp, who does it. First you must be sure that you have this package installed. If not install it by downloading the isapnptools package.

Once isapnptools is installed, we'll run a special program, pnpdump, who inspects your computer for finding ISA devices. Then it tries to guess the resources used by the devices and prints them to a file, /etc/isapnp.conf. Then you edit this file and run an other program, isapnp, which reads the isapnp.conf file and auto configure your devices.

Eh ? It sounds hard ? Then follow these steps:

1. Run 'pnpdump > /etc/isapnp.conf'.

2. Edit it with your favourite text editor

3. Locate the section where your modem is described.

4. Uncomment some lines in the file (Remove the # at the beginning of the line. You need:

1 line '(IO 0 ...)'

1 line '(INT 0 ...)'

1 line '(DMA 0 ...)'

1 line '(DMA 1 ...)'

1 line '(IO 1...)'

5. Remove the '(CHECK)' in all uncommented IO lines

6. Run 'isapnp /etc/isapnp.conf'. If you get errors, edit the file isapnp.conf and try changing parameters, help you with the error message. If you get no errors, edit isapnp.conf and uncomment the '(ACT Y)' line in the secton of your modem. Then re-run 'isapnp /etc/isapnp.conf'. It must answer you " [[Name of your modem]] Enabled OK"

7. Add 'isapnp /etc/isapnp.conf' to your /etc/rc.d/rc.local, by typing 'echo "isapnp /etc/isapnp.conf" >> /etc/rc.d/rc.local'. It is useful for auto-configuring your devices at each startup

If it can help , here is an extract of my /etc/isapnp.conf file (I have commented this file, and original file comments are preceded by ##)

    # Snip details ...
    ## (DEBUG)
    (READPORT 0x0203)
    (ISOLATE PRESERVE)
    (IDENTIFY *)
    (VERBOSITY 2)
    (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING

    # Identification of my modem card

    ## Card 1: (serial identifier e2 00 00 01 00 05 50 c3 1e)
    ## Vendor Id GVC5005, Serial Number 256, checksum 0xE2.
    ## Version 1.0, Vendor version 0.1
    ## ANSI string -->LT Win Modem<--
    ##
    ## Logical device id HSM0140
    ##     Device support I/O range check register
    #

    # We want to configure the GVC5005/256 card

    (CONFIGURE GVC5005/256 (LD 0

    # I/O Base address 0x03f8, with a range of 8
    (IO 0 (SIZE 8) (BASE 0x03f8) )
    # IRQ 4
    (INT 0 (IRQ 4 (MODE +E)))
    # DMA 5
    (DMA 0 (CHANNEL 5))
    # DMA 7
    (DMA 1 (CHANNEL 7))
    # I/O Base Address 2  0x0100, range 8
    (IO 1 (SIZE 8) (BASE 0x0100) )
    # Name of the card
     (NAME "GVC5005/256[0]{LT Win Modem        }")
    # Activate it
    (ACT Y)
    # End configuration
    ))

    ######## The parameters for my other ISA devices ##############

    ## Returns all cards to the "Wait for Key" state
    (WAITFORKEY)

## 2.3 ISA and 2.4 kernels

If you have a 2.4 kernel (launch 'uname -r' to get your kernel version), you don't have to do this tricky textfile-based and third-party package installation, since 2.4 series introduce a method similar to the PCI, and obsoletes the isapnptools package. To get this feature, you have to say 'Y' or 'M' to the 'Plug and Play support' (CONFIG_PNP) and 'ISA Plug and Play support' (CONFIG_ISAPNP) during kernel configuration (it is in 'Plug and Play configuration' section). Again, recompile your kernel and install it. If you said 'M' to ISA Plug-and-Play support, it should be good to do a 'modprobe isapnp'. You have to have a driver compliant with this new device access method (eg. the ltmodem 5.78, read the next section).

Next Previous Contents