瘟猫和Linux配置实作指南 作者∶Alexandre J. [1]alexandre12@mageos.com 译者:梁昌泰 [2]linuxrat@gnuchina.org,李超 [3]lich1@263.net v1.0, April 2000 翻译日期∶2000年07月15日 _________________________________________________________________ 本文档向用户讲授如何在Linux下让瘟猫(Winmodem)运转起来。 _________________________________________________________________ 1. 瘟猫是什么东东? * 1.1 它们是猫...... * 1.2 ...但是跟真正的猫并不一样! * 1.3 我怎么知道我拿的是瘟猫? 2. 是ISA还是PCI? * 2.1 PCI ? * 2.2 难道是ISA的? 3. 安装猫的驱动程序 * 3.1 LT牌瘟猫(来自朗讯科技Lucent) * 3.2 LTMODEM程序(开源的驱动程序) 4. 结束... * 4.1 版权协议,版权所有 * 4.2 联系信息 * 4.3 资源 _________________________________________________________________ 1. 瘟猫是什么东东? 1.1 它们是猫...... 一只瘟猫,和其它的猫一样,是用来访问电话服务的,比如BBS、英特网、语音电 话、传真等等。它通过电话线连接并由速度决定其特性.如果您很想学习猫的更 多知识,我建议您阅读Modems-HOWTO。 1.2 ...但是跟真正的猫并不一样! 它们是“瘟”猫(WINmodem)!也就是说,它们依赖于Windows操作系统才能工作 !为什么呢?很简单,因为它们太土鳖!它们需要特定的软件和驱动程序协同起 来才能完成完整的任务。所谓的特定软件指的就是操作系统,随猫所提供的驱动 程序99%的程度是只有为微软视窗系统平台独家提供的。但是随著Linux的民主化 /大众化(democratization),一些生产厂家,比如朗讯科技(LT)、摩托罗拉 (Motorola)等,决定为她们自行研制生产的猫们开发Linux下的驱动程序。但是 她们并不了解Linux的哲学:她们提供的驱动程序是能够正常工作的,而她们的驱 动程序却是“闭源”(Closed Source)的!她们是free的,这里的free指的是价格 上的“免费”,而不是GPL条款所指的“自由”!也就是说这些驱动程序的源代码 不公开给大众。 所以,一些“黑客”/“电脑玩家”决定编写一个开源(Open Source)的驱动程序 ,但是他们并不十分了解手中的猫的技术细节,因为生产厂商不愿意泄露的猫的 技术细节。也正因为如此,开源的猫驱动程序往往是alpha或者beta版本的。 1.3 我怎么知道我拿的是瘟猫? 1. 看看您的猫连接的串口的名称(举例说,在Windows或者MSDOS就是COM1 、COM2、...等等)。 在Linux下,您的猫的名称是/dev/ttySx。此处的x是在DOS下的串口号数字减一。 比如,在DOS下的COM1,在Linux是ttySx,这里的x=1-1=0,所以是ttyS0。 第二例:在DOS下面是COM3,在Linux下面则是ttyS2。 其它的依此类推。 2. 给/dev/ttySx做一个名为/dev/modem的符号连接。需要执行的命令是: _________________________________________________________________ rm -f /dev/modem

ln -s /dev/ttySx /dev/modem _________________________________________________________________ 3. 下载并安装minicom软件包。接著运行'minicom -s'。 选择'Serial Port Setup'(串口设置),键入'A'来设定'Serial Device('串口 设备),删除所有的行,并输入'/dev/modem'。接著请按[Enter]回车键确认。 按[Esc]键,并选择'save setup as dfl”,然后选择'Exit'(退出)。 请等待一会儿,然后输入'AT'。如果您的猫回应'OK',那么您的猫不是一只瘟猫 ,而是一只标准的猫! 如果初始化时间太长,那么您的猫应该是一只瘟猫。请仔细阅读本文档,让它能 跑起来。请以root根用户登录。 4. 请按CTRL+A然后X退出Minicom操作环境。 2. 是ISA还是PCI? 2.1 PCI ? 嗯,知道了,我们现在知道我们的猫是一只瘟猫了。但是瘟猫有两种类型:ISA或 是PCI的。可恶的厂商们为了让事情变得更糟糕,故意把两种接口做的非常不同。 所以,现在我们就要测试一下我们的猫是PCI的还是ISA的。首先,必须要配置一 把内核。在make *config的过程当中,必须对下列问题回答'yes': * 在Loadable module support(可加载模块支持)部分:'Enable loadable module support (CONFIG_MODULES)'(激活可加载模块支持),及 'Set version information on all modules for symbols (CONFIG_MODVERSIONS)'(切记必须已经安装了modutils模块工具软件包;请 参阅Kerneld-HOWTO) * 在General setup部分: 'PCI support' (CONFIG_PCI) 在'PCI Access Mode' (CONFIG_PCI_GOBIOS)处选择'Any' 'PCI quirks' (CONFIG_PCI_QUIRKS) 'Backward compatible /proc/pci' (CONFIG_PCI_OLD_PROC) * 在Filesystems部分 '/proc filesystem support' (CONFIG_PROC_FS) 如果您从未重编译过内核,可能您使用的发行套件的内核就已经包含这些东西。 如果想重编译内核,而且您还从未干过这样的事情,请参阅Kernel-HOWTO. 现在,我们假定您的新内核已经安装妥当。 现在请运行'cat /proc/pci'命令。如果您在命令行返回的结果当中看到了您的猫 的名字,那么您的猫是PCI瘟猫。请跳至'安装驱动程序'一节 2.2 难道是ISA的? 如果您还没有找到您的猫,很有可能您拿到的是一只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) _________________________________________________________________ 3. 安装猫的驱动程序 您没有必要完全阅读本节段,只需要匹配您的猫的部分就可以了。目前,我只通 过使用朗讯(Lucent)和开源驱动程序来讲述如何安装LT猫。如果您已经编写了 或者使用了其它的瘟猫驱动程序,无论是闭源还是开源的,都给我放一个过来吧 (我的email地址是:alexandre12@mageos.com),然后我就可以把它放到这个节 段当中来。 3.1 LT牌瘟猫(来自朗讯科技Lucent) 链接URL:http://www.linmodems.org/linux568.zip 作者:Lucent Technologies 版权协议:非GPL 支持范围:使用朗讯(Lucent)芯片的ISA/PCI猫,该芯片属于Mars系列 特性:内核模块化; 串口仿真。支持PPP、Fax 和 Voice 最新版本(据我所知):5.68 相关文档:README 系统要求:版本号不低于2.2.12的且支持模块加载的RedHat内核 使用方法:先解压缩软件包(请执行'unzip linux568.zip'),然后执 行./ltinst即可。 问题: * * 'insmod: ltmodem: Unresolved symbol(s) *****': You have not a kernel matching with ltmodem. Get the 2.2.12 kernel from ftp.kernel.org, compile and install it * 'Warning: kernel version mismatch...": It is simply because ou have not the 2.2.12-20 kernel. It's only a warning, and it doesn't make the modem failing * 'ltmodem: init_module: device or resource busy': + 您安装的猫不是lt猫或者兼容猫 + 如果您的猫是ISA接口的,原因可能是没有使用isapnp配置过 + 如果您的猫是PCI接口的,可能是内核当中没有配置PCI支持 3.2 LTMODEM程序(开源的驱动程序) 链接URL: http://www.close-u-net.com 作者: Richard Close and Pavel Machek 版权协议:GPL 支持范围:使用朗讯(Lucent)芯片的ISA/PCI猫,该芯片属于Mars系列 特性: 用户级(user-space)的驱动程序; 支持语音电话(Voice call);不支 持PPP(V90) 最新版本(据我所知):0.9.2 相关文档:README 系统要求:gcc编译器、automake 使用方法: * * PCI: make ; make install - 然后使用'ltmodem'程序来和猫通讯 * ISA: (请阅读README.ISA说明文件)mv Makefile Makefile.PCI ; mv Makefile.ISA Makefile ;然后编辑config.h并变更猫的(I/O Address 、DMA、IRQ)当前数值; make ; make install - 然后使用'ltmodem'程序来 和猫通讯。 问题: * "Sorry, I can't found any modem...": + You have not LT modem + You have an ISA modem not configured by isapnp + You have an ISA modem configured ; but ltmodem was not compiled as ISA + You have a PCI modem with no PCI support included in the kernel + You have a PCI modem and a compliant kernel, but ltmodem was not compiled as PCI 4. 结束... 4.1 版权协议,版权所有 Copyright (C) 2000 Alexandre J. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 4.2 联系信息 如果您对本文档有什么建议,请慷慨一些给我丢个纸条吧 :alexandre12@mageos.com. 如果您对本文的翻译有什么看法或建议,也请慷慨些给中译版翻译 者(linuxrat@gnuchina.org或者lich1@263.net)丢个纸条吧. 4.3 资源 * Linmodems工程主页:http://www.linmodems.org * LTModem工程主页:http://www.close-u-net.com * 朗讯科技(Lucent Technologies)工程主页:http://www.lucent.com * Linux内核主页:http://www.kernel.org * ISA工具集(isapnptools)主页 :http://www.roestock.demon.co.uk/isapnptools * Linux文档工程LDP的主页(获取HOWTO文档的地方) :http://www.redhat.com/mirrors/LDP References 1. mailto:alexandre12@mageos.com 2. file://localhost/tmp/zh-sgmltools.7933/linuxrat@gnuchina.org 3. mailto:lich1@263.net