嗯,知道了,我们现在知道我们的猫是一只瘟猫了。但是瘟猫有两种类型:ISA或是PCI的。可恶的厂商们为了让事情变得更糟糕,故意把两种接口做的非常不同。所以,现在我们就要测试一下我们的猫是PCI的还是ISA的。首先,必须要配置一把内核。在make *config的过程当中,必须对下列问题回答'yes':
'PCI support' (CONFIG_PCI)
在'PCI Access Mode' (CONFIG_PCI_GOBIOS)处选择'Any'
'PCI quirks' (CONFIG_PCI_QUIRKS)
'Backward compatible /proc/pci' (CONFIG_PCI_OLD_PROC)
'/proc filesystem support' (CONFIG_PROC_FS)
现在,我们假定您的新内核已经安装妥当。
现在请运行'cat /proc/pci'命令。如果您在命令行返回的结果当中看到了您的猫的名字,那么您的猫是PCI瘟猫。请跳至'安装驱动程序'一节
如果您还没有找到您的猫,很有可能您拿到的是一只ISA的猫。怎么确定是ISA猫呢?
ISA的支持在内核是不考虑直接支持的(2.4.*系列内核会考虑,但是目前它还是不够稳定的)。这里有一个第三方的软件,名字就叫isapnp,是用来检测ISA设备的。首先您必须确认您已经安装了该软件包。如果还没有安装,也可以通过下载isapnptools软件包来解决。
一旦isapnptools已经安装好,我们先运行一个特定程序,叫pnpdump。它可以检测您的电脑系统,从中寻找出ISA设备来。在运行当中,程序试图检测设备所使用的资源并将这些资源打印到文件/etc/isapnp.conf当中。然后,您需要编辑该文件并执行另外一个程序isapnp。该程序会读取isapnp.conf文件并自动配置您的设备。
嗯?听起来很难么?那就走一走以下的步骤吧:
1. 请执行'pnpdump > /etc/isapnp.conf'。
2. 请使用您最喜欢的文本编辑器来编辑该文件。
3. 定位到描述您的猫的节段部分。
4. 去掉文件当中的某些行列的注释(就是去掉行首的#号啦)。您得:
1 line '(IO 0 ...)'
1 line '(INT 0 ...)'
1 line '(DMA 0 ...)'
1 line '(DMA 1 ...)'
1 line '(IO 1...)'
5. 请删除掉所有未注解IO行当中的'(CHECK)'
6. 请执行'isapnp /etc/isapnp.conf'。如果提示有错,请根据您得到的错误信息,编辑文件isapnp.conf并变更参数。如果没有错误提示,编辑文件isapnp.conf并解除描述您的猫的节段部分的'(ACT Y)'行注释。然后再执行'isapnp /etc/isapnp.conf',系统会提示您" [[Name of your modem]] Enabled OK"
7. 请把'isapnp /etc/isapnp.conf'添加到您的/etc/rc.d/rc.local当中,方法是输入 'echo "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 # 我的猫卡的辩识信息 ## 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 # # 我们要配置 GVC5005/256 卡 (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 "GVC5005/256[0]{LT Win Modem }") # 激活之 (ACT Y) # 结束配置 )) ######## The parameters for my other ISA devices ############## ## Returns all cards to the "Wait for Key" state (WAITFORKEY)