瘟猫和Linux配置实作指南 <author> 作者∶Alexandre J.<tt><htmlurl url="mailto:alexandre12@mageos.com" name="alexandre12@mageos.com"></tt><newline> 译者:梁昌泰<tt><htmlurl url="linuxrat@gnuchina.org" name="linuxrat@gnuchina.org"</tt>, 李超<tt><htmlurl url="mailto:lich1@263.net" name="lich1@263.net"></tt> <date>v1.0, April 2000 翻译日期∶2000年07月15日 <abstract> 本文档向用户讲授如何在Linux下让瘟猫(Winmodem)运转起来。 </abstract> <toc> <sect>瘟猫是什么东东?<p> <sect1>它们是猫......<p> 一只瘟猫,和其它的猫一样,是用来访问电话服务的,比如BBS、英特网、语音电话、传真等等。它通过电话线连接并由速度决定其特性.如果您很想学习猫的更多知识,我建议您阅读Modems-HOWTO。 <sect1>...但是跟真正的猫并不一样!<p> 它们是“瘟”猫(WINmodem)!也就是说,它们依赖于Windows操作系统才能工作!为什么呢?很简单,因为它们太土鳖!它们需要特定的软件和驱动程序协同起来才能完成完整的任务。所谓的特定软件指的就是操作系统,随猫所提供的驱动程序99%的程度是只有为微软视窗系统平台独家提供的。但是随著Linux的民主化/大众化(democratization),一些生产厂家,比如朗讯科技(LT)、摩托罗拉(Motorola)等,决定为她们自行研制生产的猫们开发Linux下的驱动程序。但是她们并不了解Linux的哲学:她们提供的驱动程序是能够正常工作的,而她们的驱动程序却是“闭源”(Closed Source)的!她们是free的,这里的free指的是价格上的“免费”,而不是GPL条款所指的“自由”!也就是说这些驱动程序的源代码不公开给大众。<p> 所以,一些“黑客”/“电脑玩家”决定编写一个开源(Open Source)的驱动程序,但是他们并不十分了解手中的猫的技术细节,因为生产厂商不愿意泄露的猫的技术细节。也正因为如此,开源的猫驱动程序往往是alpha或者beta版本的。</p> <sect1>我怎么知道我拿的是瘟猫?<p> 1. 看看您的猫连接的串口的名称(举例说,在Windows或者MSDOS就是COM1、COM2、...等等)。<p> 在Linux下,您的猫的名称是/dev/ttySx。此处的x是在DOS下的串口号数字减一。比如,在DOS下的COM1,在Linux是ttySx,这里的x=1-1=0,所以是ttyS0。<p> 第二例:在DOS下面是COM3,在Linux下面则是ttyS2。<p>其它的依此类推。<p> 2. 给/dev/ttySx做一个名为/dev/modem的符号连接。需要执行的命令是: <code> rm -f /dev/modem<p> ln -s /dev/ttySx /dev/modem </code> 3. 下载并安装minicom软件包。接著运行'minicom -s'。 <p> 选择'Serial Port Setup'(串口设置),键入'A'来设定'Serial Device('串口设备),删除所有的行,并输入'/dev/modem'。接著请按[Enter]回车键确认。按[Esc]键,并选择'save setup as dfl”,然后选择'Exit'(退出)。<p> 请等待一会儿,然后输入'AT'。如果您的猫回应'OK',那么您的猫不是一只瘟猫,而是一只标准的猫!<p> 如果初始化时间太长,那么您的猫应该是一只瘟猫。请仔细阅读本文档,让它能跑起来。请以root根用户登录。<p> 4. 请按CTRL+A然后X退出Minicom操作环境。<p> <sect>是ISA还是PCI?<p> <sect1>PCI ?<p> 嗯,知道了,我们现在知道我们的猫是一只瘟猫了。但是瘟猫有两种类型:ISA或是PCI的。可恶的厂商们为了让事情变得更糟糕,故意把两种接口做的非常不同。所以,现在我们就要测试一下我们的猫是PCI的还是ISA的。首先,必须要配置一把内核。在make *config的过程当中,必须对下列问题回答'yes':<p> <itemize> <item>在Loadable module support(可加载模块支持)部分:'Enable loadable module support (CONFIG_MODULES)'(激活可加载模块支持),及 'Set version information on all modules for symbols (CONFIG_MODVERSIONS)'(切记必须已经安装了modutils模块工具软件包;请参阅Kerneld-HOWTO) <item>在General setup部分: <p> 'PCI support' (CONFIG_PCI)<p> 在'PCI Access Mode' (CONFIG_PCI_GOBIOS)处选择'Any'<p> 'PCI quirks' (CONFIG_PCI_QUIRKS)<p> 'Backward compatible /proc/pci' (CONFIG_PCI_OLD_PROC)<p> <item>在Filesystems部分<p> '/proc filesystem support' (CONFIG_PROC_FS)<p> </itemize> 如果您从未重编译过内核,可能您使用的发行套件的内核就已经包含这些东西。如果想重编译内核,而且您还从未干过这样的事情,请参阅Kernel-HOWTO. <p> <p> 现在,我们假定您的新内核已经安装妥当。 <p> <p> 现在请运行'cat /proc/pci'命令。如果您在命令行返回的结果当中看到了您的猫的名字,那么您的猫是PCI瘟猫。请跳至'安装驱动程序'一节<p> <sect1>难道是ISA的?<p> 如果您还没有找到您的猫,很有可能您拿到的是一只ISA的猫。怎么确定是ISA猫呢?<p> ISA的支持在内核是不考虑直接支持的(2.4.*系列内核会考虑,但是目前它还是不够稳定的)。这里有一个第三方的软件,名字就叫isapnp,是用来检测ISA设备的。首先您必须确认您已经安装了该软件包。如果还没有安装,也可以通过下载isapnptools软件包来解决。 <p> 一旦isapnptools已经安装好,我们先运行一个特定程序,叫pnpdump。它可以检测您的电脑系统,从中寻找出ISA设备来。在运行当中,程序试图检测设备所使用的资源并将这些资源打印到文件/etc/isapnp.conf当中。然后,您需要编辑该文件并执行另外一个程序isapnp。该程序会读取isapnp.conf文件并自动配置您的设备。<p> <p> 嗯?听起来很难么?那就走一走以下的步骤吧: <p> <p> 1. 请执行'pnpdump > /etc/isapnp.conf'。<p> 2. 请使用您最喜欢的文本编辑器来编辑该文件。<p> 3. 定位到描述您的猫的节段部分。<p> 4. 去掉文件当中的某些行列的注释(就是去掉行首的#号啦)。您得: <p> 1 line '(IO 0 ...)'<p> 1 line '(INT 0 ...)'<p> 1 line '(DMA 0 ...)'<p> 1 line '(DMA 1 ...)'<p> 1 line '(IO 1...)'<p> 5. 请删除掉所有未注解IO行当中的'(CHECK)'<p> 6. 请执行'isapnp /etc/isapnp.conf'。如果提示有错,请根据您得到的错误信息,编辑文件isapnp.conf并变更参数。如果没有错误提示,编辑文件isapnp.conf并解除描述您的猫的节段部分的'(ACT Y)'行注释。然后再执行'isapnp /etc/isapnp.conf',系统会提示您" [[Name of your modem]] Enabled OK"<p> 7. 请把'isapnp /etc/isapnp.conf'添加到您的/etc/rc.d/rc.local当中,方法是输入 'echo "isapnp /etc/isapnp.conf" >> /etc/rc.d/rc.local'。在每一次的系统启动的设备自动配置时,这会起到很大作用。<p> <p> 如果能对大家有帮助的话,以下就是我的/etc/isapnp.conf文件的摘录(我已经在文件当中注释了,原文件的注释以##打头)<p> <code> # 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) </code> <sect>安装猫的驱动程序<p> 您没有必要完全阅读本节段,只需要匹配您的猫的部分就可以了。目前,我只通过使用朗讯(Lucent)和开源驱动程序来讲述如何安装LT猫。如果您已经编写了或者使用了其它的瘟猫驱动程序,无论是闭源还是开源的,都给我放一个过来吧(我的email地址是:alexandre12@mageos.com),然后我就可以把它放到这个节段当中来。<p> <p> <sect1>LT牌瘟猫(来自朗讯科技Lucent)<p> 链接URL:http://www.linmodems.org/linux568.zip<p> 作者:Lucent Technologies<p> 版权协议:非GPL<p> 支持范围:使用朗讯(Lucent)芯片的ISA/PCI猫,该芯片属于Mars系列<p> 特性:内核模块化; 串口仿真。支持PPP、Fax 和 Voice<p> 最新版本(据我所知):5.68<p> 相关文档:README<p> 系统要求:版本号不低于2.2.12的且支持模块加载的RedHat内核<p> 使用方法:先解压缩软件包(请执行'unzip linux568.zip'),然后执行./ltinst即可。<P> 问题:<p> <itemize><p> <item>'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 <item>'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 <item>'ltmodem: init_module: device or resource busy': <itemize> <item>您安装的猫不是lt猫或者兼容猫 <item>如果您的猫是ISA接口的,原因可能是没有使用isapnp配置过 <item>如果您的猫是PCI接口的,可能是内核当中没有配置PCI支持 </itemize> </itemize> <sect1>LTMODEM程序(开源的驱动程序)<p> 链接URL: http://www.close-u-net.com<p> 作者: Richard Close and Pavel Machek<p> 版权协议:GPL<P> 支持范围:使用朗讯(Lucent)芯片的ISA/PCI猫,该芯片属于Mars系列<p> 特性: 用户级(user-space)的驱动程序; 支持语音电话(Voice call);不支持PPP(V90)<p> 最新版本(据我所知):0.9.2<p> 相关文档:README<p> 系统要求:gcc编译器、automake<p> 使用方法:<p> <itemize><p> <item>PCI: make ; make install - 然后使用'ltmodem'程序来和猫通讯 <item>ISA: (请阅读README.ISA说明文件)mv Makefile Makefile.PCI ; mv Makefile.ISA Makefile ;然后编辑config.h并变更猫的(I/O Address、DMA、IRQ)当前数值; make ; make install - 然后使用'ltmodem'程序来和猫通讯。<p> </itemize> 问题:<p> <itemize> <item>"Sorry, I can't found any modem...": <p> <itemize> <item>You have not LT modem <item>You have an ISA modem not configured by isapnp <item>You have an ISA modem configured ; but ltmodem was not compiled as ISA <item>You have a PCI modem with no PCI support included in the kernel <item>You have a PCI modem and a compliant kernel, but ltmodem was not compiled as PCI </itemize> </itemize> <sect>结束...<p> <sect1>版权协议,版权所有<p> Copyright (C) 2000 Alexandre J. <p> This program is free software; you can redistribute it and/or modify<p> it under the terms of the GNU General Public License as published by<p> the Free Software Foundation; either version 2 of the License, or<p> (at your option) any later version.<p> <p> This program is distributed in the hope that it will be useful,<p> but WITHOUT ANY WARRANTY; without even the implied warranty of<p> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<p> GNU General Public License for more details.<p> <p> You should have received a copy of the GNU General Public License<p> along with this program; if not, write to the Free Software<p> Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA<p> <sect1>联系信息<p> 如果您对本文档有什么建议,请慷慨一些给我丢个纸条吧:alexandre12@mageos.com. <p> 如果您对本文的翻译有什么看法或建议,也请慷慨些给中译版翻译者(linuxrat@gnuchina.org或者lich1@263.net)丢个纸条吧.<p> <sect1>资源<p> <itemize> <item>Linmodems工程主页:http://www.linmodems.org<p> <item>LTModem工程主页:http://www.close-u-net.com<p> <item>朗讯科技(Lucent Technologies)工程主页:http://www.lucent.com<p> <item>Linux内核主页:http://www.kernel.org<p> <item>ISA工具集(isapnptools)主页:http://www.roestock.demon.co.uk/isapnptools<p> <item>Linux文档工程LDP的主页(获取HOWTO文档的地方):http://www.redhat.com/mirrors/LDP<p> </itemize> </article>