PDA

查看完整版本 : 瘟猫和Linux配置实作指南(转)


冷风
2002-02-06, 09:37
作者UAlexandre J. alexandre12@mageos.com
译者:梁昌泰 linuxrat@gnuchina.org,李超 lich1@263.net
v1.0, April 2000 翻译日期U2000年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模块工具软件包r请参阅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)r不支持PPP(V90)

最新版本(据我所知):0.9.2

相关文档:README

系统要求:gcc编译器、automake

使用方法:



PCI: make ; make install - 然后使用'ltmodem'程序来和猫通讯
ISA: (请阅读README.ISA说明文件)mv Makefile Makefile.PCI ; mv Makefile.ISA Makefile r然后编辑config.h并变更猫的(I/O Address、DMA、IRQ)当前数值; make ; make install - 然后使用'ltmodem'程序来和猫通讯。

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


问题:

"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