好的,现在我们有了 Winmodem... 但是 Winmodem 有两种类型:ISA 或 PCI。更复杂的是,这两种接口相当不同。所以,我们现在要测试我们拥有的是 PCI 还是 ISA 调制解调器。首先,您必须配置您的内核。在执行 make *config
时,您必须对以下问题回答 ‘是’
‘PCI 支持’ (CONFIG_PCI)
在 ‘PCI 访问模式’ (CONFIG_PCI_GOBIOS) 中选择 ‘Any’
‘PCI 特性’ (CONFIG_PCI_QUIRKS)
‘向后兼容 /proc/pci’ (CONFIG_PCI_OLD_PROC)
‘/proc 文件系统支持’ (CONFIG_PROC_FS)
现在,我们假设您的新内核已经安装完成。
现在运行 cat /proc/pci
。如果在命令返回的行中看到您的调制解调器的名称,那么您拥有一个 PCI Winmodem。跳到 ‘安装驱动程序’
如果您没有找到它,那么您可能拥有一个 ISA 调制解调器。如何确定?
内核默认不提供 ISA 支持(更新:如果您使用的是 2.4.x 内核,内核可以自动为您完成此操作,如果是这样,请跳过本节并阅读下一节)。这是由一个名为 isapnp 的第三方软件完成的。首先您必须确保您已安装此软件包。如果未安装,请下载 isapnptools 软件包进行安装。
一旦 isapnptools 安装完成,我们将运行一个特殊的程序 pnpdump,它会检查您的计算机以查找 ISA 设备。然后它会尝试猜测设备使用的资源并将它们打印到一个文件,/etc/isapnp.conf。然后您编辑此文件并运行另一个程序 isapnp,它会读取 isapnp.conf 文件并自动配置您的设备。
呃?听起来很复杂?那么请按照以下步骤操作
1. 运行 pnpdump > /etc/isapnp.conf
。
2. 使用您最喜欢的文本编辑器编辑它
3. 找到描述您的调制解调器的部分。
4. 取消注释文件中的一些行(删除行首的 # 符号。您需要
1 行 (IO 0 ...)
1 行 (INT 0 ...)
1 行 (DMA 0 ...)
1 行 (DMA 1 ...)
1 行 (IO 1...)
5. 删除所有已取消注释的 IO 行中的 (CHECK)
6. 运行 isapnp /etc/isapnp.conf
。如果出现错误,请编辑文件 isapnp.conf 并尝试更改参数,错误消息会为您提供帮助。如果没有错误,请编辑 isapnp.conf 并取消注释您的调制解调器部分中的 (ACT Y)
行。然后重新运行 isapnp /etc/isapnp.conf
。它应该回答您 “[[您的调制解调器名称]] Enabled OK”
7. 通过输入 echo "isapnp /etc/isapnp.conf" >> /etc/rc.d/rc.local
将 isapnp /etc/isapnp.conf
添加到您的 /etc/rc.d/rc.local 中。这对于在每次启动时自动配置您的设备非常有用。
如果这能帮到您,这里是我的 /etc/isapnp.conf 文件的一个摘录(我已经注释了这个文件,并且原始文件注释以 ## 开头)
# 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.4 内核(运行 uname -r
获取您的内核版本),您不必进行这种基于文本文件和第三方软件包的复杂安装,因为 2.4 系列引入了一种类似于 PCI 的方法,并且淘汰了 isapnptools 软件包。要获得此功能,您必须在内核配置期间对 ‘即插即用支持’ (CONFIG_PNP) 和 ‘ISA 即插即用支持’ (CONFIG_ISAPNP) 选择 ‘Y’ 或 ‘M’(它在 ‘即插即用配置’ 部分中)。再次,重新编译您的内核并安装它。如果您对 ISA 即插即用支持选择了 ‘M’,那么最好执行 modprobe isapnp
。您必须拥有一个与这种新的设备访问方法兼容的驱动程序(例如 ltmodem 5.78,请阅读下一节)。