分享
 
 
 

硬件全攻略--MODEM linux内猫配置 驱动软猫

王朝system·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

硬件全攻略--MODEM

http://www.linuxaid.com.cn 风过留枫(fjxufeng)

返回〗〖转发〗

在宽带接入还没有走进千家万户之时,我们要连上互联网,还是要驱“猫”,所以对于许多网民而言,Modem是一个十分可爱的东西。Windows对Modem提供了很好的支持,使得安装Modem十分简单。但是在Linux下安装这个可爱的东西时,却并不是那么好办呀!

一、 认清Modem

我们都知道,电脑处理的是数字信息,而电话线路则是模拟信息,而Modem就是用来做数字信息和模拟信息之间的转换的。

当电脑要将信息传出来时,Modem将其调制成为模拟信号,然后通过电话线传送出去。

而当信息通过电话线传送到电脑时,Modem将其从模拟信号解调成数字信息,这样就能够传给电脑,让电脑识别。

从这里大家就应该不难理解它的学名:“调制解调器”了。

Modem可谓是五花八门,下面我们一起来理清这些“类型”:

1. 按照Modem的速率进行分类:

也就是Modem调制的速度,我们使用单位bps来衡量。Bps的全称是Bit per second,也就是表示每秒多少位!

最早是2400bps,后来发展到9600bps、14.4Kbps、28.8Kbps、33.6Kbps、56Kbps。

大家是否记得,通常我们使用一个33.6Kbps的Modem下载时,每秒钟的传输速度最大也就4K左右,可能大家对这个速度会有一些疑惑。其实这个问题很简单,这个4K代表的是4K Byte,而33.6Kbps则是33.6K Bit,1Byte=8Bit。

2. 按照外形进行分类:

1) 外置式Modem,也称外猫

这种Modem的外形是一个小盒子,它通过串口与电脑相连。

2) 内置式Modem,也称内猫

这种Modem的外形则是与显卡、声卡、网卡相似,是通过插在电脑主板的ISA插槽或PCI插槽中使用的。

3. 按照实现原理来分:

1) 硬猫:顾名思义,使用硬件电路实现的MODEM;

2) 软猫:随着CPU速度的提高,使用软件将CPU模拟成为MODEM的DSP。使用这种MODEM,就需要软件的支持。Windows中提供了这种软件支持,因此,软猫又常被称为Win猫,这种MODEM的特点是便宜但占用资源厉害。笔者认为,硬猫价格已经很低,使用这种软猫没有什么意义。

二、 Linux对Modem的支持

首先,我们一起来看一下Linux对于MODEM的支持情况:

1. Linux对软猫支持有限,我的建议是你别买软猫这种东西!如果你真的需要驱动这种软猫,参见本篇的第八部分:驱动软猫。

2. 对于外置式MODEM而言,可谓是配置最简单的设备,只需插入某个串行口,再对这个串行口进行相应的配置就可以使用了!

3. 对于内置式MODEM而言,也是通过串行口来进行使用的,但有些内置式MODEM并不能被Linux所认识(毕竟是插在主板上的,是一种虚拟的方式来使用串行口的),我们将在第七部分:驱动内猫中说明。

4. 在Linux中,MODEM的速率并不影响Linux的支持。

总而言之一句话:在Linux中使用MODEM,都是通过串行端口来进行的。只要系统能够找到这个串行端口,就可以通过串行端口来通讯。因此,驱动MODEM的思路就是:

1) 对于外置式MODEM与能够被Linux系统识别的内置式MODEM,只需直接使用串行端口对其操作就行了;

2) 对于那些Linux不能够识别的内置式MODEM,我们先得想办法让它被Linux系统识别,然后才能够使用第1种方式来操作。

三、 Linux下的串行口

在Linux下,所有的设备都表现成为一个文件形式,对设备的操作也就与对文件的操作一样了。这些所有代表设备的文件都存放在“/dev”目录下。

串行端口也不例外,不过有些特别的是,每个串行端口对应的不仅是一个文件,而是两个。其中一个是用于拔入,而另一个则用于拔出。

1) 用来拔出的的设备文件名是ttySx,其中最后一个x是个数字,从0开始编号,与DOS串行口名的对应关系是:

DOS下的名称 Linux下的名称

COM1 /dev/ttyS0

COM2 /dev/ttyS1

COM3 /dev/ttyS2

COM4 /dev/ttyS3

…… ……

2) 而用来拔入的设备文件则是caux,其中最后一个x也是个数字,也是从0开始编号,与DOS串行口名的对应关系是:

DOS下的名称 Linux下的名称

COM1 /dev/cau0

COM2 /dev/cau1

COM3 /dev/cau2

COM4 /dev/cau3

…… ……

不过现在许多Linux发行版本似乎已经不对拔入、拔出加以区分了,都统一使用ttySx命名了。如果在你的系统的/dev目录中找不到ttySx的话,则需要自己手动创建,如:

# cd /dev

# ./MAKEDEV ttyS0

每个串行端口都均需使用IRQ与I/O地址资源在,一般来说COM1和COM3共用IRQ3,而COM2和COM4共用IRQ4(如下表所示):

串行端口 IRQ I/O地址

/dev/cau0、/dev/ttys0 4 0x3f8

/dev/cau1、/dev/ttys1 3 0x2f8

/dev/cau2、/dev/ttys2 4 0x3e8

/dev/cau3、/dev/ttys3 3 0x2e8

通常,在Linux系统中,每一个设备都需有一个唯一的IRQ号,也就是说如果有三个串行设备的话,就必须把空闲的IRQ中断拿过来用了。例如:

/sbin/setserial /dev/ttyS0 irq 3 (COM1口上接着鼠标,中断号为3)

/sbin/setserial /dev/ttyS1 irq 4 (COM2口上接着一个MODEM,中断号为4)

/sbin/setserial /dev/ttyS2 irq 5 (COM3口上还有一个MODEM,而IRQ3已经占用,因此只得使用空闲的IRQ5)

我们只需将这些命令放在/etc/rc.d/rc.local文件中,这样就可以保证每次启动Linux时就完成设置。

我们可以使用两个简单的命令来查看一下是否存在IRQ和I/O地址的冲突:

cat /proc/interrupts 查看IRQ中断号

cat /proc/ioports 查看I/O地址

四、 使用MODEM拔号上网

通常,我们是通过MODEM拔打ISP提供的拔号服务电话号码,从而连入Internet的,在Linux系统中,整个过程为:

1.准备好相应的软件

做为拔号上网的客户端所需的程序有chat和pppd,如果你的机器上还没有这两个程序,就要安装它们,它们包含在ppp软件包中(如ppp-2.3.7-2.i386.rpm)。

chat程序的用途是拨号并等待提示,根据提示输入用户名和密码等登录信息。而pppd的用途则是建立并维持与服务器的ppp连接,传输数据。

另外,为了测试方便,我们还需要一个名为minicom的软件。不过通常这些软件都已经会在安装Linux系统时安装了。

2.使用minicom测试拔号

我们可以通过minicom软件来测试MODEM是否工作正常。

1) 首先以root身份登录系统,然后运行命令:minicom -s。这将会启动一个文本对话框的配置界面。在这个配置界面中,我们可以使用上、下箭头键在菜单中选择,用Enter键选中命令。

2) 测试调制解调器的关键在于设置串行端口。我们在此选择Serial prot setup,进入串行端口配置菜单。如果对这里的项目需要修改,只需按相应的字母键就可以了。

3) 首先我们应设置串行设备(选择A Serial Device)。这时,要将这个位置变为相应的设备文件,例如,如果调制解调器连接在第2个串口上.则要将其设置为/dev/ttys1,因为Minicom用于输出连接。不过,由于Minicom默认是使用/dev/modem来标识MODEM的,因此,你可在此之前执行命令:ln /dev/ttys1 /dev/modem。这样会省去不少麻烦。

4) 然后我们根据所连接的系统要求设备MODEM参数(选择E Bps/Par/Bits),在这里需要设置的包括速率(Bps)、奇偶校验位(Par)、数据位和停止位(Bits)。其中速率设备为MODEM的最高连接速度,通常可以是MODEM速度的4倍。例如,对于1.44kbPs的调制解调器,应选择57.6kbps.对于28.8kbps的调制解调器.应选择115.2kbps。而对于数据位的设置,通常是无奇偶位、8个数据位和1个停止位。例如:38400 8N1。

5) 完成之后.按Enter键键返回serial port setup菜单、再接Enter键,返回主菜单。有了这些信息,就可以测试调制解调器了。选择Save setup as df1将配置保存为默认配置.然后选Exit退出安装界面。

6) 打开Minicom程序,如果出现Ok提示,则调制解调器设置正确可以开始正常工作。

7) 可以输入'AT'并按Enter键进行测试。这时,回到OK信息。如果一切顺利,则可以开始拨号。看看是否正常进接.输入"ATD163"。此时,应该听到连接的声音,然后看到连接信息和远程系统的信息提示:

ATD163

CONNECT 115200

这时,就说明你的MODEM已经可以使用了。

8)最后按CTRL+A,Q退出Minicom。

3.设置DNS域名解析

在Linux中,要设置DNS域名需要编辑配置文件/etc/resolv.conf,在最后加入一行:

nameserver xxx.xxx.xxx.xxx (如:nameserver 202.101.103.55)

其中IP地址是ISP提供的域名服务器的IP地址。

4.手动拔号上网

下面,我们就在命令行上手动完成拔号上网工作:

1) 首先,运行minicom,然后输入Ctrl-A,再敲D, 将会出现一个拔号界面,此时选择manual(手动),并输入ISP的电话号码,调制解调器一阵乱响之后,会有几声音乐响,并在屏幕上提示按任意键继续。

2) 接着,屏幕上就会出现你ISP的信息,根据提示输入你的username和password,(有可能还会要求你选择ppp连接还是slip连接等)如果成功的话,就会出现一些垃圾字符。

3)这时,输入CTRL+A再按Q,退出minicom。

注意,不是按X,那样就会断开这次拔号

4) 接着,我们使用pppd建立ppp连接,也就是执行命令:

pppd debug lock modem crtscts defaultroute /dev/ttyS1 115200&

命令说明:

deubg 使其在/var/log/messages中记录下相关调试信息;

lock 锁定串行口设备

modem 说明使用MODEM的控制信号

crtscts 说明使用硬件数据流控制

defaultroute 在本机路由表中加入一项缺省路由

/dev/ttyS1 指出Modme所在端口

115200 说明串行口的速率

& 表示使其在后台运行。

一会儿之后,ppp连接就会建立,这时你可以试一试:

a. 运行ifconfig,你将看到ppp0的网络接口,这个接口的IP地址就是对端服务器给你分配的IP地址;

b.运行route,你会发现对端服务器的IP地址被加入路由表了;

c.ping一下远方的主机,应该能够连通。

你还可以在另一个虚拟控制台上运行:

tail -f /var/log/messages

这时,你可以观察到动态的pppd日志信息。

4) 如果要断开这次连接的话,只需执行命令:

killall pppd

5.通过脚本程序自动拔号上网

安装了ppp软件包后,会生成/etc/ppp和/usr/doc/ppp-x.x.x(其中x.x.x是版本号)两个目录,pppd的配置文件都存放在/etc/ppp目录中,而/usr/doc/ppp-x.x.x则存放着pppd的相关文档,在这个目录下有一个名为scripts的子目录,这个目录中有几个有用的文件:

 ppp-on-dialer:一个负责拔打电话,并输入所需登录信息的脚本程序(实现了当时我们通过minicom完成的工作);

 ppp-on:负责启动本机的pppd,与服务器端的pppd进行对话,实现端对端连接;

 ppp-off:负责断开连接的一个脚本。

下面,我们就使用它们来简化我们的拔号上网工作:

1) 首先,将它们复制一份到/etc/ppp目录中;

2) 编辑ppp-on文件,将以下几部分根据你的实际情况修改:

TELEPHONE=8163

ACCOUNT=8163

PASSWORD=8163

DIALER_SCRIPT=/etc/ppp/ppp-on-dialer

exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400

注:这些内容在ppp-on文件中都是有的,不是新增,而是修改它的值。

3) 修改ppp-on-dialer文件,将以下几部分根据你的ISP的实际情况做相应的修改:

username: $ACCOUNT

assword: $PASSWORD

" select(1~3):" 1

注:“:”左边的内容都是拔号时会问你的,右边的都是相应的回答。这些内容在我们当时使用minicom做测试拔号时就会看到了!

4) 为三个脚本赋予可执行权限,也就是执行命令:

chmod +x ppp-on ppp-on-dialer ppp-off

5) 到此,我们就可以执行/etc/ppp-on完成拔号上网,执行/etc/ppp-off断开网络连接了。

五、 使用kppp软件完成拔号上网

对于习惯使用了图形化界面的Windows用户而言,这些晦涩的命令行操作,会吓走一大堆人的,别急,现在我们就介绍一种图形化的拔号上网软件kppp,只要你安装了KDE,就可以使用这个软件。使用它拔号上网很简单:

1) 运行Kppp:如下图所示,先点击“K”按钮,选择Internet,然后选择Kppp:

2) 单击Kppp面板上的Setup按钮,将出现如下图的界面:

首先,我们单击“New…”按钮,进行Accounts的设置;

3) 接着,我们选择“Device”进行相应的设置:

4) 设置完成后,按OK按钮退出,返回Kppp主画面:

5) 填入Login ID和Password,再按Connect按钮,就可以开始拔号了,拔号成功了,会在任务条上出现一个MODEM似的小图标,就像Windows中的网络连接示意图标一样。开始冲浪吧!

六、 驱动内猫

对于大多数内猫而言,Linux系统能够自己识别到,那只需用前面的方法使用它就行了。而如果你的Linux无法识别它的话,就需要让Linux系统识别到它。通常我们可以采用两种方法:

1、 对于一些即插即用设备而言,我们可以使用isapnptools工具解决这一问题:

1) 首先以root用户登陆,然后运行命令/sbin/pnpdump > /etc/isapnp.conf,将你机器上所有的即插即用设备信息写入文件/etc/isapnp.conf中。

2) 接下来需要为该设备分配IRQ与I/O资源:

a.根据该设备在Windows中查看其所占资源,当然这要你在本机上装有Windows;

b.或者自已动手为其分配资源,只要不冲突就行了!(已分配的资源可以从/proc/interrupts、/proc/ioports、/proc/dma查到)

3) 然后从isapnp.conf中找到你要驱动的设备,然后去掉它们前面的注释号“#”,将填入它们的INT(IRQ号)、IO(IO地址)及DMA等。

4) 设置完成后,我们就可以执行以下命令驱动该设备:

/sbin/isapnp /etc/isapnp.conf

5)如果该命令没有出错的话,就会在屏幕上打印出相关的硬件信息,你只需将该句命令写入/etc/rc.d/rc.local就可以使得每次启动Linux时,都自动驱动该设备。

2、 如果你能够找到该款内猫的驱动程序的话,那也可以采用安装驱动程序的方法。采用这种方法,大致的步骤如下:

1) 下载驱动程序包;

2) 解压驱动程序包,然后运行make,完成编译;

3) 使用insmod将驱动程序模块加入内核;

4) 然后在/dev目录下创建一个设备,命令如下:

cd /dev

mknod 驱程模块名 c 127 1

5) 然后创建一个名为modem的符号链接,使其指向刚刚创建的设备;

6) 这样,我们就可以使用前面的方法来操作MODEM了。

由于对于不同的MODEM,驱动程序不同,因此无法一一细解,只能是将安装的思路整理出来,供大家参考。

七、 驱动软猫

由于软猫的生产厂商不愿公开软猫的技术,也不愿意开发Win9x/NT以外的驱动程序。因此Linux对其的支持就十分有限。

如果你的MODEM包装盒上注有"HCF" , "WinMODEM" 或 "soft MODEM" 字样的话,就很可能是软猫。如果你想在Linux下使用它,那一定要去www.linmodems.org看一看。该网站中有一些软猫的驱动程序,目前已有支持Cirrus Logic(CL-MD5620DT)、 Conexant (Rockwell) HSF、ESS ES56T-PI、MODEMs (PCI)、 Lucent LT WinMODEM、 Pc Tel等芯片的软猫驱动程序。

下面我就以CL-MD5620DT为例(其他品牌类似),说明一下软猫的驱动方法,希望对软猫用户有一些指导和参照。

1. 从www.linmodems.org中下载其驱动程序clmodem-0.3.0+gg.tar;

2. 执行以下命令,解开这个tar包:

# tar - xvf CLMODEM-0.3.0+gg.tar

3. 由于该驱动程序不支持PnP(即插即用),因此需要手工配置IRQ与I/O地址,我们可以通过执行cat /proc/pci |more命令来获取其IRQ与I/O资源占用情况。从该命令的输出中你可以看到类似下面的一段信息:

Bus 0, device 13, function 0:

Communication controller: Cirrus Logic Unknown device (rev 1).

Vendor id=1013. Device id=4000.

Medium devsel. IRQ 10.

Non-prefetchable 32 bit memory at 0xebffe000 [0xebffe000].

I/O at 0xe 000 [0xe001].

从中,我们可以得知,其资源占用情况:IRQ=10;I/O地址=0xe0000。

4. 然后我们修改驱动程序中的clm_config.h文件,将其前两行根据其输出修改:

#define CLM_BASE_IO_ADDRESS 0xe000

#define CLM_IRQ 10

5. 然后在驱动程序目录中执行make命令,编译驱动程序;

6. 接着使用insmod命令将该模块装载入内核:

/sbin/insmod clm.o

若要每次启动Linux时自动加载该模块,可将该句加入/etc/rc.d/rc.modules文件。

7. 使用mknod命令创建设备:

mknod /dev/clm c 121 0

8. 最后,将/dev/modem链接为/dev/clm:

ln /dev/modem /dev/clm

好了,Linux已经可以识别你的软猫了,你就可以前面的方法拔号上网了。

责任编辑:风过留枫(2001-04-17 10:30)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有