(8)g 玩转Linux下的Modem

合集下载

linux bond mode=4工作原理

linux bond mode=4工作原理

Linux bonding 是一种将多个网络接口绑定为一个逻辑接口的技术,以提高网络的可靠性、性能和带宽。

其中,mode=4 是IEEE 802.3ad 动态链接聚合(LACP)模式。

在mode=4 下,bonding 驱动会与交换机进行协商,以确定哪些slave 接口可以用于聚合,并建立一个聚合组。

聚合组中的每个slave 接口都会被配置为相同的速率和双工模式,并且会启用LACP 协议。

LACP 协议会在聚合组的每个slave 接口之间协商一个活动接口和一个或多个备份接口。

活动接口用于传输数据,而备份接口则处于待命状态,以便在活动接口出现故障时接替其工作。

当数据包到达聚合组时,bonding 驱动会根据其MAC 地址和聚合组中的活动接口列表,选择一个活动接口来传输该数据包。

如果活动接口出现故障,bonding 驱动会自动切换到备份接口,以确保数据的连续传输。

因此,mode=4 的工作原理主要是通过LACP 协议与交换机进行协商,建立一个聚合组,并在其中选择一个活动接口和一个或多个备份接口来传输数据。

这样可以提高网络的可靠性、性能和带宽,同时还可以实现负载均衡和容错。

linux gtkterm 用法 -回复

linux gtkterm 用法 -回复

linux gtkterm 用法-回复标题:深入理解与使用Linux下的GTKTermGTKTerm,一个在Linux环境下广泛使用的终端模拟器,以其简洁的界面和强大的功能深受用户喜爱。

本文将详细解析GTKTerm的用法,帮助你更好地理解和掌握这一工具。

一、GTKTerm简介GTKTerm是一款基于GTK+库的终端模拟器,主要用于串口通信和网络连接。

它支持多种波特率、数据位、停止位和校验方式,能够满足各种复杂的通信需求。

此外,GTKTerm还具有脚本录制和回放、自动发送字符串等功能,使得串口调试工作变得更加便捷。

二、安装GTKTerm在大多数Linux发行版中,你可以通过包管理器来安装GTKTerm。

以下是在Ubuntu和Fedora系统中安装GTKTerm的命令:1. Ubuntu:sudo apt-get updatesudo apt-get install gtkterm2. Fedora:sudo dnf install gtkterm三、启动GTKTerm安装完成后,你可以在应用程序菜单或者终端中输入`gtkterm`命令来启动GTKTerm。

四、配置GTKTerm1. 打开串口:在GTKTerm的主界面中,点击“Settings”->“Serial Port”,在弹出的对话框中选择你需要打开的串口,然后设置相应的波特率、数据位、停止位和校验方式。

2. 设置自动发送字符串:在“Settings”->“Auto Send”中,你可以设置GTKTerm在打开串口后自动发送的字符串。

3. 脚本录制和回放:在“Settings”->“Script”中,你可以录制和回放串口通信的脚本。

这对于重复性的测试工作非常有用。

五、使用GTKTerm1. 发送数据:在GTKTerm的主界面中,你可以在底部的输入框中输入你需要发送的数据,然后按回车键发送。

2. 接收数据:接收到的数据会显示在GTKTerm的主界面上。

linux dhclient工作原理

linux dhclient工作原理

linux dhclient工作原理DHCP(Dynamic Host Configuration Protocol)是网络中常用的自动分配IP地址的一种协议。

dhclient是一个在Linux操作系统上用于接收DHCP服务器提供的IP地址和其他网络配置信息的客户端程序。

dhclient的工作原理可以分为以下几个步骤:1.初始化:当系统启动时,dhclient会被调用来自动获取网络配置信息。

首先,它会通过套接字(socket)与DHCP服务器进行通信。

然后,确定要使用的网络接口,并创建一个相应的套接字,用于与DHCP服务器之间的通信。

2.发现DHCP服务器:dhclient会发送一个广播消息(DISCOVER)到本地网络中的所有主机,以寻找可用的DHCP服务器。

广播消息会通过套接字发送到预定义的目标地址和目标端口号(67)。

3.获取IP地址:当DHCP服务器收到广播消息后,它会从一个地址池中选择一个可用的IP地址,并将其分配给dhclient。

服务器会发送一个包含IP地址的消息(OFFER)给dhclient,通过套接字返回给dhclient。

4.请求IP地址:dhclient接收到服务器的OFFER消息后,会向服务器发送一个请求(REQUEST)消息,请求分配给自己的IP地址。

此时,dhclient会将自己的MAC地址和请求的IP地址发送给服务器。

5.确认IP地址:DHCP服务器接收到请求消息后,会判断请求的IP地址是否仍然可用。

如果可用,服务器会发送一个确认(ACK)消息给dhclient,表示分配成功。

同时,服务器会将其他网络配置信息(如子网掩码、网关、DNS服务器等)一并发送给dhclient。

6.配置网络接口:dhclient接收到服务器的确认消息后,将IP地址和其他网络配置信息写入系统中的网络接口文件(如/etc/network/interfaces)。

然后,dhclient会发送一个DHCPINFORM消息给DHCP服务器,以通知服务器其配置已成功。

(1 linux下使用Win Modem

(1 linux下使用Win Modem

linux下使用Win Modem我是一名Linux爱好者,和许多玩家一样在计算机上安装了Linux+Windows双系统,使用内置Modem。

在Windows下该机使用正常,可是到linux下就无法上网。

我使用的是Red Hat linux 7.2,内核2.4.7-10。

Linux检测我的Modem是Win Modem,即所谓的“软猫”,只适用于Windows系统。

经过一番钻研,发现我的“猫”使用的是Intel公司的Ambient 主芯片,型号是MD5628D。

在KDE的控制中心同样可以检测出有PCI的通讯设备和使用的芯片,但无法驱动它。

于是,我又转到Windows下,驱“猫”上网,在Intel的网站上有for linux的驱动(/design/m...ivers_linux.htm)。

下载该驱动后,在Windows下是一个名为Intel-v92ham.tgz的文件,只有298KB,可以使用软盘复制或在linux 下将Intel-v92ham.tgz的文件复制到任一目录(如Root目录)下。

打开终端窗口,进入Root 目录: 1.使用“ls -a”的命令,可以看到Intel-v92ham.tgz的文件以绿色显示,这表明是可执行文件。

2.执行命令,解开这个tgz压缩包:tar -zxvf Intel-v92ham.tgz 此时会有一个文件列表出现,表示有哪些文件解压成功。

3.然后就会发现在root目录下多出一个蓝色的文件夹,名为Intel-v92ham-425。

4.进入Intel-v92ham-425目录,执行命令编译驱动程序。

首先删除所有已有的编译文件:make clean 然后编译ham文件:make ham 再将编译的文件进行安装:make install 至此,驱动程序编译完成。

接着将此模块装入内核。

5.导入hamcore.o模块:insmod-f hamcore.o 6.导入ham.o模块:insmod-f ham.o 7. 删除/dev/ham设备:rm/dev/ham 8. 重新创建/dev目录下的ham设备:mknod/dev/ham c240 1 这里的240是默认的,如不能工作请查看/proc/devices/文件里的ham的major number。

modem串口调试命令

modem串口调试命令

modem串口调试命令串口调试常用命令:1. 拨号命令:atd,号码2. 被叫摘机命令:ata3. 退出命令:+++ath4.来电显示:AT+VCID=0 关AT+VCID=1 开=============用串口工具连接上Modem所在的那个端口。

比如你是外置Modem,连接在了COM1口上,就用串口工具打开COM1口。

如果是内置的话,多数在COM3口上,如果你不知道,可以打开设备管理器在Modem属性页里看看。

OK,下面介绍AT指令。

常用AT指令有:ATZ 软复位modem。

AT&K0 关闭流控制。

AT&K3 使用RTS/CTS流控制。

AT&W0 把当前设置保存到写到modem的永久存储器中的出厂设置配置文件0中。

AT&Y0 当MODEM在上电时自动调用出厂设置0,这样就能保证每次上电恢复我们预先设置的参数。

ATDn 拨号,其中n为电话号码。

它必须是命令行中的最后一条指令,ATD命令使调制解调器摘机后,根据输入的参数拨号,以建立连接。

+++ 退出字符。

切换调制解调器从在线状态到命令状态,而不会中断数据连接。

ATA 应答。

它必须是命令行中的最后一条指令。

调制解调器在应答方式下继续执行连接程序。

在与远端调制解调器交换载波后进入连接状态,如果没有检测到载波, 调制解调器将挂机。

在连接过程中,通过DTE输入的任何一个字母都将中断这一命令。

ATH0 使调制解调器挂机ATE0 关闭命令字符回显ATE1 打开命令字符回显AT&F 调MODEM的出厂设置ATS0=n 将MODEM设置成自动应答,当MODEM检测到线路上的振铃音时开始计数,当有连续n声振铃音,则MODEM自动摘机,响应呼叫。

注:每次输入AT指令后(除+++以外),输入+ Chr(13)即“Enter”键,即完成指令发送。

如果用HEX格式发送,在命令头、尾都要加回车、换行代码。

linux dhclient工作原理

linux dhclient工作原理

linux dhclient工作原理dhclient是一个在Linux系统上处理DHCP客户端的工具。

DHCP (动态主机配置协议)是一个用于自动分配IP地址、子网掩码、网关和DNS服务器等网络配置信息的协议。

dhclient工具可以通过向DHCP服务器发送数据包来请求和获取这些配置信息。

dhclient工作原理如下:1. dhclient启动:当系统启动时,dhclient会自动启动。

它可以通过命令行或配置文件进行配置。

默认情况下,dhclient在Linux系统上通过启动NetworkManager或systemd-networkd来进行配置。

2.查找网络接口:dhclient会检查系统中的网络接口,例如eth0、eth1或wlan0。

它会根据接口的配置文件或网络管理器来识别哪个接口需要进行DHCP配置。

3.发送DHCP Discover数据包:一旦确定了要配置的网络接口,dhclient会发送一个DHCP Discover数据包。

这个数据包会被广播到局域网上的所有DHCP服务器。

4. DHCP服务器响应:DHCP服务器收到DHCP Discover数据包后,会根据自身的配置向客户端发送DHCP Offer数据包。

这个数据包包含了可用的IP地址、子网掩码、网关和DNS服务器等网络配置信息。

5.接收DHCP Offer数据包:dhclient会接收到DHCP Offer数据包后,会将其中的网络配置信息存储在本地。

6.请求IP地址:dhclient会发送一个DHCP Request数据包,请求DHCP服务器提供的IP地址。

7.确认IP地址:DHCP服务器收到DHCP Request数据包后,会发送DHCP Ack数据包确认IP地址分配。

8.配置网络接口:dhclient收到DHCP Ack数据包后,会将其中的网络配置信息应用到相应的网络接口上。

它会设置接口的IP地址、子网掩码、网关和DNS服务器等配置。

modem的功能

modem的功能

modem的功能modem,简称调制解调器,是一类装置或设备,用于将数字信息转换成模拟信号,以便在通信线路上传输。

它在计算机与其他设备之间进行数据传输时起着关键的作用。

下面将详细介绍modem的功能。

1.模拟-数字转换:modem的主要功能之一是将模拟信号转换为数字信号。

当数据从计算机发送到modem时,modem将这些数字信号转换成模拟信号,以便在传输线路上传送。

这个过程称为模拟-数字转换(ADC)。

2.数字-模拟转换:当modem接收到模拟信号时,它将执行数字-模拟转换(DAC)的功能,将这些模拟信号转换为数字信号,以便计算机可以处理和理解。

3.数据传输:modem是计算机与Internet或其他计算机之间进行数据传输的关键设备。

它通过将数字信号转换为模拟信号,并将其发送到传输线路上,使得数据可以在网络或电话线路上传输。

4.速率适配:modem还具有速率适配的功能,它可以将计算机发送的高速数字信号转换为适合传输线路的较低速率信号。

这种速率适配可以提高数据传输的稳定性和可靠性。

5.协议转换:modem还可以进行协议转换,将计算机使用的特定数据协议转换成传输线路上使用的其他协议。

这是在不同计算机系统或网络之间进行数据传输时非常重要的功能。

6.错误检测和纠正:modem还具备错误检测和纠正的功能。

它可以通过校验位、差错校验等方式检测和纠正传输过程中可能出现的错误,以确保数据的准确性和可靠性。

7.拨号功能:拨号调制解调器(或拨号调制解调器)是一种特殊类型的modem,它可以通过电话线拨号连接到Internet。

拨号modem具有拨号功能,可与Internet服务提供商进行通信,以便访问互联网。

8.语音传输:除了数据传输外,modem还可以通过电话线路进行语音传输。

某些modem具有语音功能,可以将数字信号转换为模拟信号以进行通话。

总而言之,modem作为电脑与外界通信的关键设备,具备了模拟-数字转换、数字-模拟转换、数据传输、速率适配、协议转换、错误检测和纠正、拨号功能和语音传输等多种功能。

modemmanager原理

modemmanager原理

modemmanager原理ModemManager原理1. 引言ModemManager是一个用于管理和控制调制解调器的开源软件,它提供了一种统一的接口,使得各种类型的调制解调器可以在不同的操作系统和应用程序中进行通信。

本文将介绍ModemManager的原理及其工作方式。

2. ModemManager的作用ModemManager的主要作用是提供一个统一的接口,使得应用程序可以方便地与调制解调器进行通信。

调制解调器是一种用于将数字信号转换成模拟信号(调制)以及将模拟信号转换成数字信号(解调)的设备,它在无线通信中起着关键的作用。

ModemManager的目标是将不同类型的调制解调器(如GSM、CDMA、LTE等)抽象出来,使得应用程序可以使用统一的接口与它们进行交互。

3. ModemManager的工作原理ModemManager通过使用与调制解调器通信的协议(如AT命令、QMI 等)来控制调制解调器。

它通过与调制解调器建立连接,发送命令并接收响应来实现对调制解调器的控制。

ModemManager提供了一组API(应用程序接口),使得应用程序可以直接调用这些API来与调制解调器进行交互。

4. ModemManager的架构ModemManager的架构分为两个主要部分:核心模块和插件模块。

核心模块负责初始化和管理插件模块,插件模块负责与特定类型的调制解调器进行通信。

当ModemManager启动时,核心模块会加载所有可用的插件模块,并与它们建立连接。

每个插件模块都负责解析特定类型的调制解调器的命令和响应,并将其转化为统一的API调用。

5. ModemManager的功能ModemManager提供了一系列功能,包括:获取和设置调制解调器的状态、发送和接收短信、建立和终止数据连接、获取和设置网络参数等。

通过调用这些功能,应用程序可以实现与调制解调器的各种交互操作。

6. ModemManager的优势ModemManager的优势在于其跨平台性和灵活性。

Linux系统网络配置教程

Linux系统网络配置教程

Linux系统网络配置教程一、引言在现代信息技术时代,网络已经成为我们生活和工作中不可或缺的一部分。

而对于使用Linux操作系统的用户来说,正确配置网络是十分重要的。

本章将介绍Linux系统网络配置的基本步骤和常见问题解决方法。

二、网络配置概述网络配置是指将计算机与网络相连,并配置正确的网络参数,以实现与其他计算机之间的通信。

Linux系统的网络配置可分为两个方面,即物理连接和逻辑配置。

2.1 物理连接物理连接是指将计算机与网络相连的操作。

首先要确保计算机已经正确连接到局域网或因特网。

如果是有线连接,需要插入以太网线到计算机的网卡插槽和路由器的网络接口;如果是无线连接,需要确保无线网卡已经连接到正确的无线网络。

2.2 逻辑配置逻辑配置是指在物理连接完成后,需要对计算机进行相应的软件设置,以使其能够正确地与其他网络设备进行通信。

逻辑配置的主要内容包括IP地址的配置、网关的配置、DNS的配置以及防火墙的配置等。

三、IP地址配置IP地址是互联网中用于标识和定位计算机的一种地址。

在Linux系统中,可以通过以下两种方式来配置IP地址:3.1 动态IP地址配置动态IP地址配置是指使用DHCP服务器为计算机分配IP地址的方式。

DHCP是一种网络协议,它可以自动为计算机分配IP地址和其他网络配置信息。

要使用动态IP地址配置,在终端中输入以下命令:```shellsudo dhclient eth0```其中,eth0是计算机的网卡接口名,根据实际情况进行相应更改。

3.2 静态IP地址配置静态IP地址配置是指手动为计算机分配一个固定的IP地址。

这种方式适用于需要长期使用特定IP地址的情况。

要进行静态IP 地址配置,需要编辑网络配置文件。

在终端中输入以下命令:```shellsudo nano /etc/network/interfaces```在文件中添加以下配置信息:```shellauto eth0iface eth0 inet staticaddress 192.168.0.100netmask 255.255.255.0gateway 192.168.0.1```其中,eth0是计算机的网卡接口名,address是计算机的IP地址,netmask是子网掩码,gateway是网关地址。

Linux网络性能优化提高带宽和延迟的技巧

Linux网络性能优化提高带宽和延迟的技巧

Linux网络性能优化提高带宽和延迟的技巧Linux是一种出色的操作系统,被广泛用于服务器环境中。

在网络通信中,性能优化对于提高带宽和降低延迟至关重要。

以下是一些在Linux系统上优化网络性能的技巧。

1. 使用适当的网络驱动程序网络驱动程序负责处理网络数据包的传输和接收。

选择适合硬件设备和操作系统的最新驱动程序,可以提高网络性能。

在Linux环境中,常见的网络驱动程序有e1000e、ixgbe和mlx4_en等。

2. 调整网络协议栈参数Linux的网络协议栈参数可以通过修改系统内核参数进行优化。

一些重要的参数包括TCP窗口大小、拥塞控制算法以及SYN队列大小等。

通过针对具体的网络需求进行调整,可以提高带宽和降低延迟。

3. 使用高效的网络服务软件选择高效的网络服务软件可以改善网络性能。

例如,Nginx作为一个轻量级的Web服务器,具有高性能和并发能力。

相比之下,Apache是一个功能较为丰富但相对较重的服务器软件。

4. 配置适当的网络缓冲区网络缓冲区的大小对于网络性能至关重要。

通过调整Linux系统中的网络缓冲区大小,可以提高网络吞吐量和降低延迟。

TCP栈和网络设备的缓冲区大小可以通过修改系统参数进行调整。

5. 启用网络流量控制和优先级Linux系统提供了一些机制来控制网络流量,以确保关键应用程序的优先级。

例如,使用Traffic Control来限制特定应用程序的带宽,或者通过Quality of Service(QoS)来为特定应用程序指定优先级。

6. 开启TCP快速打开握手TCP快速打开是一种优化技术,通过减少三次握手的次数来降低延迟。

在Linux系统上,可以通过修改内核参数来启用TCP快速打开握手功能。

这样可以加快连接的建立速度和降低延迟。

7. 使用断开连接的快速回收在网络通信中,及时回收断开的连接对于释放资源非常重要。

通过启用Linux系统的断开连接快速回收功能,可以在断开连接后立即释放相关资源,提高系统的处理能力和网络性能。

NM408 无线、 Modem 用户使用手册说明书

NM408 无线、 Modem 用户使用手册说明书

3.1. 使用有线连接并登录 MODEM ................................................................. 9
3.1.1.
连接 .........................................................................................................9
4.1. 快速配置.................................................................................................. 11 1
4.2. INTERNET 接入配置 ................................................................................. 11
2.1. 设备硬件安装............................................................................................ 8
3. 登录 MODEM ........................................................................................ 9
1.4.1.
ADSL—拨号线接口(ISP 进线).........................................................7
1.4.2.
Default—恢复缺省配置按钮 ................................................................7

如何在Linux系统中查看系统网络带宽使用情况

如何在Linux系统中查看系统网络带宽使用情况

如何在Linux系统中查看系统网络带宽使用情况Linux系统中,网络带宽使用情况的监控对于系统管理员来说是非常重要的一项任务。

通过监控和了解网络带宽的使用情况,管理员可以及时发现网络故障、瓶颈和异常情况,并采取相应的措施解决问题。

本文将介绍几种常用的方法来查看Linux系统中的网络带宽使用情况。

一、ifconfig命令ifconfig(英文全称:interface configuration)是一个控制和配置TCPIP网络接口的命令行工具。

在Linux系统中,ifconfig常常被用来查看和配置网络接口信息,包括IP地址、子网掩码、广播地址等。

除此之外,ifconfig还可以显示网络接口的传输速率和网络流量统计信息。

要查看系统网络带宽使用情况,可以通过ifconfig命令获取各个接口的信息,包括每个接口的入站(RX)和出站(TX)流量统计数据。

可以使用以下命令来获取网络接口信息:```ifconfig```命令执行后,系统将列出各个网络接口的信息,包括接口名称(如eth0、eth1等)、IP地址、子网掩码等。

在信息的最后部分,可以找到RX和TX的流量统计数据,单位为字节。

二、sar命令sar(System Activity Reporter)是Linux系统中的一个用于收集、报告和存储系统活动信息的工具。

它可以提供关于CPU使用率、内存使用率、磁盘I/O、网络带宽使用率等各方面的统计数据。

要查看系统网络带宽使用情况,可以使用sar命令结合-n DEV选项来获取网络设备的统计数据。

具体命令如下:```sar -n DEV 1```上述命令中,-n DEV表示获取网络设备的统计数据,1表示每隔1秒钟获取一次统计数据。

执行命令后,系统将在终端输出各个网络设备的统计数据,包括接口名称、接收数据包/字节、发送数据包/字节等。

三、vnstat命令vnstat是一款简单实用的网络流量监控工具,可以实时统计和显示网络带宽使用情况。

RocketPort和RocketModem驱动程序安装指南(适用于Linux)说明书

RocketPort和RocketModem驱动程序安装指南(适用于Linux)说明书

Overview 1RocketPort ® and RocketModemDriver Installation for LinuxOverviewYou can use this document to install and configure the RocketPort/RocketModem Linux device driver. Note:The Linux operating system is distributed from several sources. While all distributions share general file structure and functionality, there are differences that can impede the installation of device drivers. The instructions in this document outline a generic installation procedure. You may need to adjust for differences in a particular distribution using the Linux system documentation as a reference.This document assumes that you have already installed the Linux operating system (kernel version 2.0 or higher ) and that you have a basic understanding of Linux OS operation.Installation ProcedureUse this procedure to install the driver.1.If you have not done so already, install the hardware using the Hardware Installation documentation.2.If necessary , download the current device driver, copy and extract the files to the /usr/src directory on the Linux system. For example:Change to the /usr/src directory and use the untar command.cd /usr/srctar xzvf filename .tar.gzA subdirectory of /usr/src now exists called comtrol . This contains the RocketPort/RocketModem driver and associated files.3.Recompile the RocketPort/RocketModem driver.Note:This is not always necessary, depending on the version of your kernel, but it is safe to do.make cleanmake4.Install the RocketPort/RocketModem driver as root :make install5.If you are using more than one ISA RocketPort/RocketModem board, or have installed an ISA RocketPort or RocketModem board at a non-standard address, you will need to set up the file /etc/rocketport.conf . The /usr/src/comtrol directory contains a sample rocketport.conf file. Copy it to the /etc directory and edit it according to the comments contained in the file.Note:This step is NOT necessary, if you are using only PCI RocketPort or RocketModem boards.6.Optionally, edit your /etc/rc.d/rc.S file (or other appropriate boot-up script) so that the rc.rocket script runs automatically each time your system boots. This is done for you automatically if you are using a system with System V init files, such as is used in the RedHat or Debian releases.7.Either reboot to load the driver into the currently running system, or manually load the driver running the rc.rocket script with the start argument. For example:/rc.rocket start8.Configure your applications and/or your getty scripts as appropriate for your application.Note:The RocketModem looks to Linux like a RocketPort card with modems attached; you can refer to the RocketModem AT command set on the Comtrol CD or ftp/web sites.9.For PCI-ONLY installation:Edit the rocketport.conf script to remove or comment out the boardx=0xxx"statement.10.Optionally, edit your /etc/rc.d/rc.S† file so that the rc.rocket script runs automatically each time the systemboots. For example:/bin/sh /etc/rc.d/rc.rocket†This file may have a different file name, depending upon the Linux distribution type.Note:The rc.rocket script requires that setrocket be installed in the /bin directory. The setrocket program creates the ttyRx devices (where x is a number designating the port). The setrocket program isstructured much like the familiar setserial program, and performs a similar function.11.Reboot the system. The following illustrates a sample load line for the driver after installing aRocketModemII, 6-port board:RocketPort device driver module, version x.xx, dateRocketPort controller #0 found at 00:48, 1 AIOP(s) PCI RocketModemII 6-portCreating devices: ttyR0 ttyR1 ttyR2 ttyR3 ttyR4 ttyR5RocketPort driver loaded using device #46 initializing RocketModemII’s: ttyR0 ttyR1 ttyR2 ttyR3 ttyR4 ttyR5 Loading firmware...Loading done12.Optionally, configure inittab to run the gettys.13.If applicable, connect the interface box to the controller board (if applicable).14.If RocketPort, connect your peripherals to the interface box or ports.If RocketModem, connected your cables between the RocketModem RJ11 connectors and the wall phone jack RJ11 connectors.Note:If you need pin out information to build cables, see the Hardware Installation documentation.15.If necessary, configure your devices.Accessing Higher Baud RatesFor backwards compatibility with other serial drivers, the device driver supports the remapping of 38,400 baud to either 57,600 baud or 115,200 baud.In addition, setrocket can be used to remap 38,400 baud to 230,400 baud. This can improve performance when using modern, high-speed (28,800 bps with compression) modems. However, not all modems support 230,400 baud, check your modem manual for more details.Execute setrocket without any parameters to get a usage message.If your system has a recent shared libc installed and your communications programs have been recompiled to take advantage of 57,600 and 115,200 baud rates, then you may not need to use the remapping option. 230,400 baud still requires the remapping option until the appropriate changes can be propagated into the kernel, libc, and communications programs so as to support this speed directly.Configuring Your DevicesFor current information on how configure your devices for Linux, use the link to locate How to documents for:•Modems•Printers•Serial devicesTroubleshootingReview the troubleshooting discussion in the Hardware Installation documentation. If necessary, create a bootable diagnostic diskette and run the diagnostics.You can also use Cu to test the port:1.Change the mode of the port to 666. For example:chmod 666 /dev/ttyR02.Change the group of the port to uucp. For example:Accessing Higher Baud Rates2Technical Support 3chgrp uucp /dev/ttyR03.In the /etc/uucp directory , edit the port file by adding the following lines.Note:Specify your port number in place of ttyR#.)port ttyR #type direct device /dev/ttyR #speed 384004.At the command prompt, type one of the following:•cu -l ttyR# •cu -p ttyR#You should then get a connected message on your screen. The port is open and you can now communicate to the device attached to the port.To exit cu, use the following procedure:1.At the start of a new line, type:~./2.The system should now close the cu session and you should return to the Linux prompt.Technical Support Comtrol has a staff of support technicians available to help you. Before you call, please have the following information available:Reporting BugsPlease send Linux-related bug reports to *******************.Comtrol Corporation technical support can resolve issues related to the RocketPort hardware and 6529 Linux driver software, but given the nature of Linux and the many variant distributions available, we cannot be held responsible for the behavior of the operating system.ItemYour System Information Model numberSerial numberInterface typeI/O address and IRQOperating system type and releaseDevice driver versionPC make, model, and speedList other devices in the PC and their addresses ComtrolHeadquarters Europe Phone(612) 494-4100+44 (0)1869 323220FAX(612) 494-4199+44 (0)1869 323211Email*************************************.uk Web supportSearchable Solution Database and FAQs Web site FTP site Trademark NoticesRocketPort is a registered trademark of Comtrol Corporation. RocketModem is a trademark of Comtrol Corporation.Other product names mentioned herein may be trademarks and/or registered trademarks of their respective owners.Second Edition, March 7, 2000Copyright © 1996 - 2000. Comtrol Corporation.All Rights Reserved.Comtrol Corporation makes no representations or warranties with regard to the contents of this document or to the suitability of the Comtrol product for any particular purpose. Specifications subject to change without notice. Some software or features may not be available at the time of publication. Contact your reseller for current product information.2000067 Revision BTrademark Notices4。

modem的工作原理

modem的工作原理

modem的工作原理
modem是用于调制解调的设备,其工作原理如下:
1. 调制(Modulation):调制是将数字信号转换为模拟信号的
过程。

在调制过程中,modem将数字信号分成一个个符号,
并将每个符号转换为对应的模拟信号。

调制技术有许多种,常见的有频移键控调制(FSK)、相位移键控调制(PSK)和正
交振幅调制(QAM)等。

2. 传输(Transmission):调制完成后,模拟信号通过传输介
质(如电话线、光纤或无线信道)传送到目标地点。

传输介质可以是有线或无线的,根据不同的传输方式,modem可能需
要不同的接口和信号处理技术。

3. 解调(Demodulation):解调是将模拟信号恢复为数字信号
的过程。

在解调过程中,modem将接收到的模拟信号转换为
对应的数字信号,恢复之前被调制的符号。

解调技术与调制技术相对应,常见的解调技术包括解调器的频移键控解调(FSK)、相位移键控解调(PSK)和正交振幅解调(QAM)等。

4. 解码(Decoding):解调完成后,模拟信号被解码为数字信号。

解码是将符号恢复为原始数据的过程,modem利用信号
处理算法对解调得到的数字信号进行处理,以还原原始数据。

综上所述,modem的工作原理主要包括调制、传输、解调和
解码四个过程。

通过这些过程,modem将数字信号转换为模拟信号进行传输,并将接收到的模拟信号解码为原始数据。

linux usb mbim 基本原理

linux usb mbim 基本原理

linux usb mbim 基本原理Linux USB MBIM(Mobile Broadband Interface Model)是一种用于在Linux操作系统中管理移动宽带设备的协议。

本文将介绍Linux USB MBIM的基本原理,包括其工作原理、应用场景以及相关的技术细节。

让我们来了解一下MBIM协议的背景和作用。

MBIM是由微软提出的一种通用的移动宽带接口协议,旨在为各种移动宽带设备提供统一的管理和控制接口。

它定义了一组命令和消息格式,用于在主机和设备之间进行通信,以实现设备的初始化、配置、数据传输等功能。

MBIM协议可以在USB接口上运行,因此被广泛应用于移动宽带设备的管理。

在Linux操作系统中,USB子系统负责管理USB设备的驱动和通信。

为了支持MBIM设备,Linux内核提供了相应的MBIM驱动,以便与设备进行通信。

当插入一个支持MBIM协议的设备时,Linux USB子系统会自动探测并加载相应的驱动,以便与设备进行通信。

一旦设备被识别并加载了相应的驱动,Linux USB MBIM驱动就会与设备进行通信。

通常,MBIM设备会以一个虚拟的网络接口的形式出现在系统中。

该接口可以通过ifconfig命令进行查看和配置。

通过该接口,用户可以与设备进行数据传输,例如通过PPP协议建立拨号连接,或者通过网络管理协议发送管理命令。

在与MBIM设备进行通信时,Linux USB MBIM驱动会遵循MBIM协议规定的消息格式和命令。

MBIM消息由两部分组成:消息头和消息体。

消息头包含了消息的长度、类型等信息,而消息体则包含了具体的命令或数据。

MBIM协议定义了一系列的命令和消息类型,用于设备的管理和控制。

例如,通过MBIM协议,可以发送命令来获取设备的基本信息,或者配置设备的网络参数。

同时,MBIM协议还支持数据传输功能,可以实现设备与主机之间的数据交换。

除了基本的命令和数据传输功能,MBIM协议还支持一些高级特性,例如短信发送和接收、电话呼叫等。

modem的主要功能

modem的主要功能

modem的主要功能现代社会中,网络已成为人们生活中不可或缺的一部分。

而在网络中,调制解调器(modem)则扮演着十分重要的角色。

调制解调器是指一种将模拟信号转换为数字信号,或将数字信号转换为模拟信号的设备。

它的主要功能可以总结为以下几点。

首先,调制解调器实现了计算机与互联网之间的连接。

计算机通常通过调制解调器与互联网建立起连接,从而实现与其他计算机或者服务器之间的数据传输。

调制解调器将计算机产生的数字信号转换为模拟信号,通过传输介质(如电话线或光纤)发送到互联网上。

同时,调制解调器也将从互联网接收到的模拟信号转换为计算机能够理解的数字信号。

因此,调制解调器在计算机与互联网之间起着桥梁的作用。

其次,调制解调器实现了数据传输的调制与解调。

调制是指将数字信号转换为模拟信号的过程,而解调则是将模拟信号转换为数字信号的过程。

在数据传输中,信息被编码为比特流,调制解调器通过将比特流转换为模拟信号进行传输,或将接收到的模拟信号转换为比特流,实现了数据的传输。

调制解调器根据不同的传输介质和传输速率,采用不同的调制与解调方式,如频移键控调制(FSK)、相位键控调制(PSK)和振幅键控调制(ASK)等。

再次,调制解调器实现了网络的接入与路由。

对于家庭用户来说,调制解调器是连接家庭网络与互联网之间的关键设备。

通过调制解调器,用户可以接入互联网,浏览网页、收发邮件、观看在线视频等。

同时,调制解调器也负责将用户的网络通信数据传输到互联网上,并将从互联网中下载的数据传输到用户的网络上。

对于企业用户来说,调制解调器不仅起到了接入的作用,还兼具路由功能,将传输的数据包进行分发,实现数据的传递与交换。

最后,调制解调器还可以实现语音通信。

现代的调制解调器通常集成了在电话网络中使用的调制解调功能,通过将模拟语音信号转换为数字信号,在互联网上实现语音通信。

这使得用户可以通过互联网进行网络电话或者视频通话,而无需另外使用专门的电话线路。

Linux下实现pppd拨号上网

Linux下实现pppd拨号上网

Linux下用CDMA modem拨号上网(陈云川ybc2084@ UESTC,成都)本文将说明如何在Linux下用CDMA modem完成拨号上网的工作。

首先,读者需要对PPP协议有初步的了解,比如,读者至少应该知道LCP和NCP是什么,以及PAP和CHAP是做什么的;其次,读者可能需要安装pppd和chat两个工具,通常系统中默认都是安装了这两个程序的。

如果没有安装pppd,可以到/下载最新版本。

本文中作者所用的pppd版本为2.4.1,chat版本为1.22。

本文所使用的是联通掌中宽带包月2G流量CDMA上网卡。

连接所需的拨号号码为#777,用户名为card,口令也为card。

联通的服务器名为pdsn。

在Linux下,所有与ppp相关的配置文件都在/etc/ppp/目录下。

其中/etc/ppp/pap-secrets文件保存的是PAP认证协议所需的用户名和口令,而/etc/ppp/chap-secrets文件保存着CHAP认证协议所需的用户名和口令。

根据上面的说明,这两个文件的内容分别如下所示:文件/etc/ppp/pap-secrets的内容(最后一行是作者手动添加的):# /etc/ppp/pap-secrets# Secrets for authentication using PAP# client server secret IP addresses####### redhat-config-network will overwrite this part!!! (begin) ################# redhat-config-network will overwrite this part!!! (end) ############card pdsn card文件/etc/ppp/chap-secrets的内容(最后一行是作者手动添加的):# /etc/ppp/chap-secrets# Secrets for authentication using CHAP# client server secret IP addresses####### redhat-config-network will overwrite this part!!! (begin) ################# redhat-config-network will overwrite this part!!! (end) ############card pdsn card当服务器要求pppd给出用户身份认证信息的时候,如果协商采用PAP认证方式,pppd将到/etc/ppp/pap-secrets文件中取得用户口令;如果协商采用CHAP认证方式,则pppd将到/etc/ppp/chap-secrets文件中取得用户口令。

Linux设备驱动开发详解-第6章字符设备驱动(一)-globalmem

Linux设备驱动开发详解-第6章字符设备驱动(一)-globalmem

Linux设备驱动开发详解-第6章字符设备驱动(⼀)-globalmem1 驱动程序设计之前奏 (2)1.1 应⽤程序、库、内核、驱动程序的关系 (2)1.2 设备类型 (2)1.3 设备⽂件 (2)1.4 主设备号和从设备号 (2)1.5 驱动程序与应⽤程序的区别 (3)1.6 ⽤户态与内核态 (3)1.7 Linux驱动程序功能 (3)2 字符设备驱动程序框架 (3)2.1 file_operations结构体 (4)2.2 驱动程序初始化和退出 (5)2.3 将驱动程序模块注册到内核 (5)2.4 应⽤字符设备驱动程序 (5)3 globalmem虚拟设备实例描述 (6)3.1 头⽂件、宏及设备结构体 (6)3.2 加载与卸载设备驱动 (6)3.3 读写函数 (8)3.4 seek()函数 (9)3.5 ioctl()函数 (10)3.6 globalmem完整实例 (12)4 测试应⽤程序 (17)4.1 应⽤程序接⼝函数 (17)4.2 应⽤程序 (18)5 实验步骤 (19)5.1 编译加载globalmem 模块 (19)5.2 编译测试应⽤程序 (20)6 扩展 (21)1 驱动程序设计之前奏㈠应⽤程序、库、内核、驱动程序的关系㈡设备类型㈢设备⽂件㈣主设备号与从设备号㈤驱动程序与应⽤程序的区别㈥⽤户态与内核态㈦Linux驱动程序功能1.1 应⽤程序、库、内核、驱动程序的关系■应⽤程序调⽤应⽤程序函数库完成功能■应⽤程序以⽂件形式访问各种资源■应⽤程序函数库部分函数直接完成功能部分函数通过系统调⽤由内核完成■内核处理系统调⽤,调⽤设备驱动程序■设备驱动直接与硬件通信1.2 设备类型■字符设备对字符设备发出读/写请求时,实际的硬件I/O操作⼀般紧接着发⽣■块设备块设备与之相反,它利⽤系统内存作为缓冲区■⽹络设备⽹络设备是⼀类特殊的设备,它不像字符设备或块设备那样通过对应的设备⽂件节点访问,也不能直接通过read或write进⾏数据访问请求1.3 设备⽂件■设备类型、主从设备号是内核与设备驱动程序通信时使⽤的■应⽤程序使⽤设备⽂件节点访问对应设备■每个主从设备号确定的设备都对应⼀个⽂件节点■每个设备⽂件都有其⽂件属性(c或者b)■每个设备⽂件都有2个设备号(后⾯详述)主设备号:⽤于标识驱动程序从设备号:⽤于标识同⼀驱动程序的不同硬件■设备⽂件的主设备号必须与设备驱动程序在登记时申请的主设备号⼀致■系统调⽤是内核与应⽤程序之间的接⼝■设备驱动程序是内核与硬件之间的接⼝1.4 主设备号和从设备号■在设备管理中,除了设备类型外,内核还需要⼀对被称为主从设备号的参数,才能唯⼀标识⼀个设备■主设备号相同的设备使⽤相同的驱动程序■从设备号⽤于区分具体设备的实例例:PC的IDE设备,主设备号⽤于标识该硬盘,从设备号⽤于标识每个分区■在/dev⽬录下使⽤ll命令(ls -l)可以查看各个设备的设备类型、主从设备号等■cat /proc/devices可以查看系统中所有设备对应的主设备号1.5 驱动程序与应⽤程序的区别■应⽤程序以main开始■驱动程序没有main,它以⼀个模块初始化函数作为⼊⼝■应⽤程序从头到尾执⾏⼀个任务■驱动程序完成初始化之后不再运⾏,等待系统调⽤■应⽤程序可以使⽤GLIBC等标准C函数库■驱动程序不能使⽤标准C库1.6 ⽤户态与内核态■驱动程序是内核的⼀部分,⼯作在内核态■应⽤程序⼯作在⽤户态■数据空间访问问题★⽆法通过指针直接将⼆者的数据地址进⾏传递★系统提供⼀系列函数帮助完成数据空间转换get_userput_usercopy_from_usercopy_to_user1.7 Linux驱动程序功能■对设备初始化和释放■把数据从内核传送到硬件和从硬件读取数据■读取应⽤程序传送给设备⽂件的数据和回送应⽤程序请求的数据■检测和处理设备出现的错误2 字符设备驱动程序框架①Linux各种设备驱动程序都是以模块的形式存在的,驱动程序同样遵循模块编程的各项原则②字符设备是最基本、最常⽤的设备,其本质就是将千差万别的各种硬件设备采⽤⼀个统⼀的接⼝封装起来,屏蔽了不同设备之间使⽤上的差异性,简化了应⽤层对硬件的操作③字符设备将各底层硬件设备封装成统⼀的结构体,并采⽤相同的函数操作,如下等:open/close/read/write/ioctl④添加⼀个字符设备驱动程序,实际上是给上述操作添加对应的代码⑤Linux对所有的硬件操作统⼀做以下抽象抽象file_operations结构体规定了驱动程序向应⽤程序提供的操作接⼝struct file_operations ext2_file_operations ={.llseek = generic_file_llseek,.read = generic_file_read,.write = generic_file_write,.aio_read = generic_file_aio_read,.aio_write = generic_file_aio_write,.ioctl = ext2_ioctl,.mmap = generic_file_mmap,.open = generic_file_open,.release = ext2_release_file,.fsync = ext2_sync_file,.readv = generic_file_readv,.writev = generic_file_writev,.sendfile = generic_file_sendfile,};⑥⽤户态与内核态数据的交互⽤户应⽤程序与驱动程序分属于不同的进程空间,因此⼆者之间的数据应当采⽤以下函数进⾏交换long copy_to_user(kernel_buffer, user_buffer,n)//从内核空间拷贝n字节数据到⽤户空间copy_from_user(kernel_buffer, user_buffer,n)//从⽤户空间拷贝n字节数据到内核空间put_user(kernel_value, user_buffer)//从内核空间拷贝⼀数据变量到⽤户空间get_user(kernel_value, user_buffer)//从⽤户空间拷贝⼀数据变量到内核空间(内核空间数据可是任意类型)2.1 file_operations结构体⑴write函数■从应⽤程序接收数据送到硬件ssize_t (*write)(struct file*, const char __user *, size_t, loff_t*);⑵read函数■从硬件读取数据并交给应⽤程序ssize_t (*read)(struct file *, char __user *, size_t, loff_t*); /// 从设备中同步读取数据⑶ioctl函数■为应⽤程序提供对硬件⾏为的相关配置int (*ioctl)(struct inode *, struct file *, unsigned int, unsigned long);⑷open函数■当应⽤程序打开设备时对设备进⾏初始化■使⽤MOD_INC_USE_COUNT增加驱动程序的使⽤次数,当模块使⽤次数不为0时,禁⽌卸载模块Int (*open)(struct inode *, struct file*);⑸release函数■当应⽤程序关闭设备时处理设备的关闭操作■使⽤MOD_DEC_USE_COUNT减少驱动程序的使⽤次数,配合open使⽤,来对模块使⽤次数进⾏计数int (*release)(struct inode *, struct file*);⑹⑻⑻⑼⑽2.2 驱动程序初始化和退出①驱动程序初始化函数■Linux在加载内核模块时会调⽤初始化函数■在初始化函数中⾸先进⾏资源申请等⼯作■使⽤register_chrdev向内核注册驱动程序②驱动程序退出函数■Linux在卸载内核模块时会调⽤退出函数■释放驱动程序使⽤的资源■使⽤unregister_chrdev从内核中卸载驱动程序2.3 将驱动程序模块注册到内核内核需要知道模块的初始化函数和退出函数,才能将模块放⼊⾃⼰的管理队列中①module_init()向内核声明当前模块的初始化函数②module_exit()向内核声明当前模块的退出函数2.4 应⽤字符设备驱动程序㈠加载驱动程序■insmod 内核模块⽂件名■cat /proc/devices 查看当前系统中所有设备驱动程序及其主设备号㈡⼿动建⽴设备⽂件■设备⽂件⼀般建⽴/dev⽬录下■mknod ⽂件路径c [主设备号] [从设备号]㈢应⽤程序接⼝函数■编写应⽤层测试程序■可以使⽤标准C的⽂件操作函数来完成①int open(const char *path, int oflag,…);★打开名为path的⽂件或设备★成功打开后返回⽂件句柄★常⽤oflag:O_RDONLY, O_WRONLY, O_RDWR②int close(int fd);★关闭之前被打开的⽂件或设备★成功关闭返回0,否则返回错误代号③ssize_t read(int fd, void *buffer, size_t count)★从已经打开的⽂件或设备中读取数据★buffer表⽰应⽤程序缓冲区★count表⽰应⽤程序希望读取的数据长度★成功读取后返回读取的字节数,否则返回-1④ssize_t write(int fd, void *buffer, size_t count);★向已经打开的⽂件或设备中写⼊数据★buffer表⽰应⽤程序缓冲区★count表⽰应⽤程序希望写⼊的数据长度★成功写⼊后返回写⼊的字节数,否则返回-1④int ioctl(int fd, unsigned int cmd, unsigned long arg);★向驱动程序发送控制命令★cmd:⽤来定义⽤户向驱动分配的命令例如G PF驱动中:设置指定管脚的⾼低电平、输⼊输出特性等为了规范化及错误检查常⽤_IO宏合成该命令:_IO(MAGIC, num) ★arg:配置命令参数配合cmd命令完成指定功能3 globalmem虚拟设备实例描述3.1 头⽂件、宏及设备结构体在globalmem字符设备驱动中,应包含它要使⽤的头⽂件,并定义globalmem设备结构体及相关宏。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

玩转Linux下的ModemModem可谓Linux下最难搞定的设备之一,它是我们使用Linux时许多失望和喜悦的源泉。

本文介绍Modem相关的各种问题,比如端口、中断、PnP以及Modem 检测、网络配置,等等。

端口与Modem类型计算机有许多连接其内部和外部世界的接口,部分接口是专用的,例如键盘接口只能连接键盘而不能连接任何其他设备,连鼠标也不能。

连接外部设备的多用途接口称为“端口”(Port)。

大多数PC机都带有两个串行端口和一个并行端口。

串行端口用一条线路串行传送数据,每次传送一个数据位,接收后再组合成字节。

并行端口使用八条线路每次并行传送8个数据位。

大多数家用打印机都连接到PC的并行端口。

Modem是一种通过电话线路传送数字信息的设备。

我们知道,电话系统原本只为传送语音信息而设计,Modem技术突破了这一局限,它能够调制(modulate)数字信息,把数字信息转换成可以通过电话线路发送的模拟信号。

在接收端,模拟信号重新被转换成数字信号(即解调,demodulate)。

Modem这个词就是从modulator-demodulator缩写得到。

Modem发明于串行口广泛应用的时代。

那时的Modem都是独立在计算机外的设备,通过电缆连接到串行口。

今天我们仍可以见到这种外置的Modem,但更多的是插入主板的Modem卡,即内置Modem。

由于大多数计算机都带有二个串行口,内置Modem通常增加第三个端口。

外置Modem的设置一般都相当简单,只需接好串行口和Modem之间的电缆、接上电话线、开启电源,大多数外置Modem就能直接开始工作。

内置Modem刚出现时,它的板子上总是带有所有通信所需的电路元件,并提供设置地址和IRQ的跳线。

硬件厂商总是在寻求降低成本的途径。

随着PC功能越来越好,Modem厂商开始用软件来替代部分电路元件,这些Modem称为软Modem 或Winmodem。

软Modem价格低廉,它用设备驱动程序来完成原来必须由Modem 卡电路元件完成的部分任务。

软Modem的问题在于它的驱动程序是为Windows而不是为Linux编写的。

虽然不存在什么特别的原因使得这种驱动程序的Linux版本无法编写,不过这最终还得看Modem厂商。

到目前为止还没有厂商这么做。

这就意味着软Modem不能在Linux下工作。

购买Modem时应注意它是否注明了Linux兼容。

软Modem的清单可以在/~gromitkc/winmodem.html找到。

根据经验,如果Modem包装盒注明了“HCF”、“HSP”、“Winmodem”或“soft modem”字样,那么它很可能不能用于Linux。

总线、中断、地址和PnPPC机的大多数配件都和CPU、内存一起直接插入主板。

主板提供许多扩展卡的接口,供显示卡、Modem之类的设备接入使用。

现在也有许多主板直接集成这些功能,因此也就不需要再加这些扩展卡。

许多集成到主板的Modem都可以顺利地在Linux下工作。

主板上的接口连接到系统总线。

总线有许多类型,较早的PC使用ISA总线,新的PC使用PCI总线。

还有其他一些总线类型,但通常只涉及这两种总线。

这些总线的物理和电学特性都是不兼容的,ISA卡绝不能插入PCI插槽,因此购买Modem之前一定要搞清楚可以使用的总线。

除非你的机器非常古老,一般它会支持PCI。

在计算机和新插入的卡建立联系之前,计算机必须知道该卡的I/O地址(输入/输出地址)和中断请求线。

当计算机想要和插入系统总线的卡通信时,它通过发送I/O地址来选中该卡。

每块卡都只应答自己的地址,所有卡都必须有不同的地址,中断(Interrupt)稍微复杂一点。

当我们在浏览器中输入一个URL地址,就会建立与目标网站的连接,Modem开始接收数据;与此同时,计算机还可以做其他事情,比如监视鼠标状态、打印输出等等。

计算机不应该单独排外地专注于一件事情,应该有一种方法让Modem告诉计算机说:“打扰一下,这儿有传送给你的数据”。

这种方法就是中断。

每一个中断都有一个独一无二的编号,称为IRQ。

IRQ是Interrupt ReQuest 的缩写。

中断的数量很多,必须搞清楚每一个中断被分配到了什么设备上。

例如,如果中断来自Modem,就不应该去检查鼠标。

早期的扩展卡提供跳线让用户设置其I/O地址和IRQ。

这种方法很容易出错,比如容易把两块卡设置成相同的地址或IRQ。

为解决这个问题,软硬件厂商们共同建立了一个标准,这个标准允许计算机主动地查询各个扩展卡并分配I/O地址和IRQ。

它不仅使得地址和IRQ的分配自动化,同时也避免了可能出现的冲突。

这个标准就是“即插即用”,即Plug and Play,简称PnP。

计算机启动时首先运行的软件是BIOS(Basic Input Output System)。

BIOS 唤醒计算机的所有设备,简单地检查计算机安装了哪些设备,然后装入操作系统。

PnP设备的许多配置工作均由BIOS完成,但也有部分工作要由操作系统完成。

Linux还未能提供完善的PnP支持,虽然许多PnP设备可配置成在Linux下工作,但也有许多不能。

如果Linux没有初始化某个PnP设备,不要马上对此绝望,很有可能存在解决方法。

请查看isapnp工具的文档,Modem-HOWTO同样可以提供帮助。

如果兼容设备清单包含了该类Modem,不管它是不是PnP的,很可能无需任何额外的努力它就可以顺利地工作。

安装Modem最常见的问题有三个:I/O地址或IRQ设置冲突,使用的是软Modem,不完善的PnP支持导致Modem配置错误。

配置拨号网络Modem接入计算机之后,怎样才能找到它?如果Modem是外置式的,那么你应该清楚它连接到了COM1还是COM2。

如果Modem是内置式的,那么它很可能连接到COM3。

COM1、COM2这类名字是Microsoft 对串行端口的称呼。

在Linux中,COM1被称为/dev/ttyS0, COM2是/dev/ttyS1,而COM3 则是/dev/ttyS2。

在较早的Linux中,COM端口可能分别叫做/dev/cua0、/dev/cua1以及/dev/cua2。

如果Modem是在Linux安装期间配置的,那么/dev目录下会生成/dev/modem。

这应该是一个指向Modem正确端口的连接。

要查看/dev/modem指向了何处,在X终端输入命令file /dev/modem。

输出结果应当类如:/dev/modem: symbolic linkto ttyS2它告诉我们Modem安装在COM3。

如果/dev/modem存在且没有指向Modem实际安装的端口,则应删除该连接。

有些Linux发行版本提供一个名为modemtool 的工具,使用它可以创建正确的连接。

请确保所有用户都具有访问/dev/modem以及串行端口的权限。

如果你使用KDE,那么kppp是一个帮助你配置和管理Internet连接的优秀工具。

大多数Linux发行都提供kppp。

注意在建立拨号连接之前必须先收集必要的信息,比如用户名字、密码、电话号码、DNS服务器地址。

下面是具体的配置过程。

步骤1:指定系统所安装的Modem启动kppp。

如果不能在KDE菜单上找到它,试一下/usr/bin/kppp命令。

首先要做的事情是让kppp知道Modem在哪里。

点击Setup按钮,在配置窗口中选择“Device”。

点击“Modem Device:”旁边的箭头,出现一个可选用Modem端口的清单,选择Modem所接入的端口。

接下来,再把“Connection Speed:”设置成115200,当然如果机器支持的话也可以把这个速度设置得更高。

步骤2:测试Modem要测试Modem,先选择“Modem”页。

点击“Query Modem”按钮,此时将出现一个窗口显示查询Modem的进度。

请确保“Modem Volumn”(音量)设置在指示条的中间,以便在Modem工作时听到声音。

如果kppp不能找到Modem,你可以返回步骤1试一下另外的端口(或速度)。

步骤3:设置帐号参数接下来就可以设置帐号参数。

返回“Accounts”页,选择“New”设置一个新的帐号。

在“Dial”页下面,取一个容易使人记起拨号目标的名字(建议使用ISP 的名字)并将它输入“Connection Name”框。

然后再将ISP的电话输入“Phone Number”框。

现在选择“IP”页,选中“Dynamic IP Address”检查框(如果ISP提供了固定的IP地址,则不要选中该项)。

在DNS页,输入ISP提供的DNS服务器的IP地址。

点击OK保存新创建的帐号。

再次点击OK关闭“Configuration”窗口。

步骤4:连接现在我们回到了最初的kppp窗口。

输入用户名字和密码,然后点击“Connect”按钮。

如果计算机能接通Modem,它将开始向设定的ISP拨号。

此时可以听到Modem 拨号的声音。

用Minicom测试Modem把Modem接入计算机之后首先要做的事情之一是测试一下看看它能否工作。

这可以使用前面介绍的kppp,如果kppp不行,还可以使用一个名为minicom的Linux小工具。

第一次运行minicom的时候必须进入设置模式,告诉它Modem所使用的端口。

在X终端输入命令minicom -s(必须以root身份运行),此时将出现一个菜单。

使用“Serial port setup”,确保端口和速度的设置都正确无误。

配置好minicom之后,接下来就可以直接向Modem发送命令。

大多数Modem 都支持“贺氏协议”(Hayes Protocol)。

试一下AT命令,如果Modem能正常工作,它将应答OK。

如果没有得到OK应答,那么可能端口设置错误,可能Modem 已经损坏,可能Modem不能适应你所设置的速度等选项。

另外一个可能的原因是Modem被设置成了“静默”模式。

试一下ATE1Q0V1命令。

该命令告诉Modem回显并应答用户命令(如果它能够接受命令的话)。

贺氏协议正如计算机业的其它许多事情,标准往往是由特定领域第一个取得成功的公司建立。

第一个真正成功的Modem厂商是贺氏(Hayes)。

贺氏开发了一种用于控制其Modem的非常简洁的语言,即贺氏协议(Hayes Protocol)。

今天,贺氏协议得到了几乎所有Modem的支持。

贺氏协议的命令以AT开头,一行之内单个“AT”之后可以跟随多个命令。

虽然贺氏协议的应用已经相当普遍,但某些Modem仍不能支持完整的贺氏命令集。

要得到Modem所支持贺氏命令的完整清单,请参见Modem手册或制造商网站。

下面是你应该熟悉的基本命令,大多数Modem都支持这些命令:Z:(重新)初始化/重置H:挂断Ln:扬声器音量(L0=最低,L1=低,L2=中,L3=高)Mn:扬声器控制(M0=关,M1=连接后关,M2=总是开启)Vn:结果码格式(V0=以数字显示结果码,V1=以文字显示结果码)En:命令回显(E0=不回显,E1=回显命令)。

相关文档
最新文档