首先Linux并不认什么modem,而是去找串口,然后相关的应用程序在modem所连接的串口设备上使用AT命令
集与modem交互式控制.所以配置modem卡其实就是去配置串口.
  如果是PnP的modem卡,请先参考设置PnP卡这一节.设置串口的工具是setserial,配置文件是rc.serial(不
同的发行版可能位置不一样).如果你没有禁止PnP功能的话,应在内核配置里把串口这一部分编译成模块,这
样isapnp把irq/io参数设好以后setserial就可以正常工作了.
  另外有些软件缺省使用/dev/modem设备,其实它通常是一个连接,如ln /dev/cua3 /dev/modem
  下面是两个典型的问答:

/*----------------------------------------------------------------------------------*/
>       I have a Hayes Accura V.34+FAX modem card installed in my Pentium-Pro.
> and I use it well on WIN95 installed with RedHat 4.2 in one hard disk. I want
> config it on RedHat also, How can I do?
>      This Hayes card was set IRQ3 and using COM2. for using on WIN95, I have
> to set COM2 disabled in BIOS.

在您作所有事情之前有没有先查看/var/log/messages文件?
是否发现类似以下两行的关于tty00和tty01的信息?

Sep  3 08:17:20 jt11-129-1 kernel: tty00 at 0x03f8 (irq = 4) is a 16450
Sep  3 08:17:20 jt11-129-1 kernel: tty01 at 0x02f8 (irq = 3) is a 16450
 

如果没有列出tty01的信息那么说明内核没有发现你的MODEM。
我没有你所说的调制解调器,但据我判断它可能是ISA总线的
PnP(即插即用)卡。可能造成这种情况的原因是你的MODEM
是ISA PnP而Linux-2.0.x版的内核不能直接支持ISA PnP
(PCI PnP is OK)。解决的办法:

本文的附件是一个isapnptool。将它解开后用pnpdump输出所
有ISA PnP卡的情况,看看那个MODEM有没有列出来。

pnpdump > isapnp.conf

如果列出来了,那一定是一个多配置设备,将其中一组参数非
注释(uncomment)然后说:

isapnp isapnp.conf

初始化你的PnP调制解调器。如果成功了,别着急,还得干一件
事—重新配制你的内核。将Standard/general serial support
改为模块。重新作:

make config
make dep ; make clean ; make zImage
make modules
make modules_install

将所需文件拷贝到/boot目录中后,

lilo

shutdown -r now

系统重起后,你作为root说

isapnp isapnp.conf
insmod serial

这样做的道理是,如果不编译成模块,那么串口驱动程序在内
核起动时试图初始化所有的串口但是PnP卡因为没被PnP程序初
始化,故而串口驱动程序看不见,认为没有这个东西。编译成
模块就不同了,我们可以先用isapnp程序初始化PnP卡,然后
insmod。现在卡已经被PnP程序初始化好了,因而串口驱动程
序可以看见它了。

祝你顺利并望及时联系!

宫敏
 
 

/*----------------------------------------------------------------------------------*/

>我用的是redhat4.1 ,我的modem是内置的Hayes Accura 288B MSG
>Modem,引导linux时检测不到,win95下用时irq 10,i/o0100-0107,COM6,
>linux下怎么办?

See /doc/HOWTO/Serial-HOWTO.gz ( zmore /doc/HOWTO/Serial-HOWTO.gz )
-------------------------------------------------------
/etc/rc.d/rc.serial
#/bin/sh
/bin/seiserial /dev/ttyS4 port 0x100 irq 10 spd_vhi
-------------------------------------------------------

  4.2.  What is setserial?
  setserial is a program which allows you to look at and change various
  attributes of a serial device, including its port address, its
  interrupt, and other serial port options.  You can find out what
  version you have by running setserial with no arguments.
  When your Linux system boots, only ttyS{0-3} are configured, using the
  default IRQs of 4 and 3.  So, if you have any other serial ports
  provided by other boards or if ttyS{0-3} have a non-standard IRQ, you
  must use this program in order to configure those serial ports.  For
  the full listing of options, consult the man page.
 

>按照你说的干,可是modem还是毫无反应

运行 pnpdump > isapnp.conf , 然后把这个文件贴上来。

>......

最后面是新的isapnp.conf, 拷贝到/etc, 然后在/etc/rc.d/rc.modules 开头加上下面两句:
# ISA PNP
/sbin/isapnp /etc/isapnp.conf

这样开机后,就会通过PNP把你的MODEM设置成 100-107, irq 10, 然后在用我以前介绍的方法就可以了.
如果还不行的话,我劝你最好把主板上的某个COM口禁止掉, 比如COM1:, 接着把下面文件中的
(IO 0 (BASE 0x0100))
一行改成
(IO 0 (BASE 0x03f8))

另一行
(INT 0 (IRQ 10 (MODE +E)))
改成
(INT 0 (IRQ 4 (MODE +E)))
开机以后它就是COM1:

很多PNP的设备在Linux中都可以通过isapnp来设置, 除了这个MODEM外, 还有UMC9008
网卡, D-Link DE-220CT 网卡, CMI8330 声卡.

基本步骤就是:
1)  运行 pnpdump > isapnp.conf
2)  修改 isapnp.conf , 按照你需要的配置, 去掉相应行前面的#
3)  把新的isapnp.conf, 拷贝到/etc, 然后在/etc/rc.d/rc.modules 开头加上下面两句:
# ISA PNP
/sbin/isapnp /etc/isapnp.conf

更详细的内容最好去看 man isapnp

------------------------------------------------------------------
# $Id: pnpdump.c,v 1.10 1997/07/14 22:30:47 fox Exp $
# This is free software, see the sources for details.
# This software has NO WARRANTY, use at your OWN RISK
#
# For details of this file format, see isapnp.conf(5)
#
# For latest information on isapnp and pnpdump see:
# http://www.roestock.demon.co.uk/isapnptools/
#
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
#
# Trying port address 0203
# Board 1 has serial identifier ca 00 04 32 19 19 56 39 20

# (DEBUG)
(READPORT 0x0203)
(ISOLATE)
(IDENTIFY *)

# Card 1: (serial identifier ca 00 04 32 19 19 56 39 20)
# HAY5619 Serial No 274969 [checksum ca]
# Version 1.0, Vendor version 0.0
# ANSI string -->Hayes Accura 288 V.34 FDSP         <--
#
# Logical device id HAY5619
#     Device support I/O range check register
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given, this may be changed
if required
# Don't forget to uncomment the activate (ACT Y) when happy

(CONFIGURE HAY5619/274969 (LD 0
#       Start dependent functions: priority acceptable
#       Logical device decodes 10 bit IO address lines
#             Minimum IO base address 0x0100
#             Maximum IO base address 0x03f8
#             IO base alignment 8 bytes
#             Number of IO addresses required: 8
(IO 0 (BASE 0x0100))
#       IRQ 3, 4, 5, 7, 10, 11, 12 or 15.
#             High true, edge sensitive interrupt (by default)
(INT 0 (IRQ 10 (MODE +E)))

#     End dependent functions
(ACT Y)
))
# End tag... Checksum 0x00 (OK)

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

姚飞
 

本文转自中文Linux论坛