下一页 上一页 目录

8. 调制解调器配置 (不包括串行端口)

8.1 查找您的调制解调器

在花费大量时间决定如何配置您的调制解调器之前,您首先需要确保可以找到它,并且可以将 AT 命令等发送给它。因此,我建议您首先使用您将在端口上使用的通信程序对其进行非常简单的配置,看看它是否有效。如果有效,您可能希望改进配置。如果无效,请参阅 我的调制解调器物理上存在但无法找到。Winmodem 可能很难找到,并且无法在 Linux 下工作。

8.2 AT 命令

调制解调器所在的串行端口需要配置,调制解调器本身也需要配置。调制解调器通过在用于发送数据的同一串行线上向其发送 AT 命令(或类似命令)来配置。

大多数调制解调器使用 AT 命令集。这些是神秘而简短的 ASCII 命令,所有命令字符串都必须以字母 AT 开头。AT 的意思是:注意,期望后面跟着命令。例如:ATZ&K3<return> 这是一个 AT 命令字符串,其中包含两个命令:Z 和 &K3。Z 是 Z0 的缩写,一些调制解调器要求您使用 Z0 而不是仅使用 Z。其他以 0 结尾的命令也是如此。命令字符串以回车符结尾(如果您是手动键入,请使用 <enter> 键)。太长的字符串(40 个或更多字符)可能在较旧的调制解调器上不起作用。您可以使用大写或小写字母。

不幸的是,AT 命令集有很多不同的变体,因此适用于一个调制解调器的命令可能不适用于另一个调制解调器。因此,不能保证本节中给出的 AT 命令在您的调制解调器上有效。

此类命令字符串要么由通信程序自动发送到调制解调器,要么由您手动键入。大多数通信程序都提供一个屏幕,您可以在其中更改(编辑)和保存通信程序将使用的初始化字符串。调制解调器本身具有存储的配置(配置文件),它类似于长初始化字符串。它表示调制解调器首次开启时的配置。您可以更改它以适合您的口味。在大多数情况下,有几种不同的此类配置(配置文件),并且有方法指定其中一个为活动状态。

如果您有调制解调器的手册(纸质版或软盘版),您可能会在那里找到 AT 命令。3Com 调制解调器(和其他调制解调器??)在调制解调器中内置了 AT 命令帮助文件,因此如果您向调制解调器键入例如 "AT$",它将显示一些“在线帮助”。

您也可以在互联网上找到有关 AT 命令的信息。您应该首先尝试您调制解调器制造商的网站。如果这不起作用,那么您可以使用来自 AT 命令的术语(例如 &C1、&D3 等)搜索互联网。这将倾向于找到实际列出 AT 命令的网站,而不是仅仅泛泛而谈的网站。您也可以尝试 网站 子节中列出的一些网站。请注意,不同品牌的调制解调器的 AT 命令可能略有不同。

8.3 初始化字符串:保存和调用

本小节中给出的示例来自 Hayes AT 调制解调器命令集。所有命令字符串都必须以两个字母 AT 开头。例如:AT&C1&D3^M (^M 是回车符)。当调制解调器通电时,它会自动使用存储在其非易失性存储器中的配置之一来配置自身。如果此配置令人满意,则无需进一步操作。

如果不令人满意,那么可以更改存储的配置,或者在每次使用调制解调器时,通过向其发送一系列称为“初始化字符串”的命令来配置调制解调器。通常,通信程序会这样做。它发送的内容将取决于您如何配置通信程序。您的通信程序应允许您编辑初始化字符串并将其更改为您想要的任何内容。有时,通信程序会让您选择您的调制解调器型号,然后它将使用它认为最适合该调制解调器的初始化字符串。

调制解调器首次通电时的配置可以用初始化字符串表示。您可以将其视为默认“字符串”(称为配置文件)。如果您的通信程序向调制解调器发送另一个字符串(初始化字符串),则此字符串将修改默认配置。例如,如果初始化字符串仅包含两个命令,则仅更改这两个项目。但是,某些命令将从调制解调器内部调用存储的配置文件,因此初始化字符串中的单个此类命令可以更改配置中的所有内容。

现代调制解调器有几个不同的存储配置文件可供选择,这些配置文件存储在调制解调器的非易失性存储器中(关闭电源后仍然存在)。在我的调制解调器中,有两个工厂配置文件(0 和 1,您都无法更改)和两个用户定义的配置文件(0 和 1),用户可以设置和存储。您的调制解调器可能有更多。要查看其中一些配置文件,请发送命令 &V。在上电时,会加载用户定义的配置文件之一。例如,如果您键入命令 &Y0(对于 3Com 调制解调器,只需 Y0),那么将来配置文件 0 将在上电时使用。

还有一些命令可以加载(激活)任何存储的配置文件。这样的加载命令可以放在初始化字符串中。当然,如果它加载的配置文件与上电时自动加载的配置文件相同,则不会发生任何变化(除非自上电以来活动配置文件已被修改)。由于您的配置文件可能因此被修改,因此即使初始化字符串除了加载存储的配置文件之外什么都不做,最好也使用某种初始化字符串。

加载已保存配置文件的示例
Z0 加载用户定义的配置文件 0 并重置(挂断等)
&F1 加载工厂配置文件 1

一旦您向调制解调器发送命令以按您想要的方式配置它(例如加载工厂配置文件并稍微修改它),您可以将其保存为用户定义的配置文件
&W0 将当前配置保存到用户配置文件 0。

许多人懒得在他们的调制解调器中保存一个好的配置,而是每次使用调制解调器时都向调制解调器发送一个更长的初始化字符串。另一种方法是在初始化字符串的开头通过 &F1 恢复工厂默认设置,然后在初始化字符串的末尾添加一些其他命令来稍微修改它。由于无法修改工厂默认设置,因此这可以防止任何人通过修改(和保存)用户定义的配置文件来更改配置。

您可以选择其他人提供的初始化字符串,他们认为该字符串适合您的调制解调器。一些通信程序有一个初始化字符串库可供选择。最困难的方法(也是最能教会您有关调制解调器知识的方法)是研究调制解调器手册并自己编写一个。您可以将此配置保存在调制解调器内部,这样您就不需要初始化字符串。第三种选择是从其他人编写的初始化字符串开始,但对其进行修改以适合您的目的。

如果您查看通信程序使用的初始化字符串,您可能会看到一些不是有效调制解调器命令的符号。这些符号是通信程序本身的命令,不会发送到调制解调器。例如,~ 可能表示短暂暂停。

我的“初始化字符串”在哪里,以便我可以修改它?

这取决于您的通信程序(通常是 PPP 程序)。如果这是最新版本的 Modem-HOWTO,请向我发送有关其他情况的信息。

8.4 其他 AT 调制解调器命令

有关拨入,请参阅 拨入调制解调器配置。本节的其余部分主要来自旧的 Serial-HOWTO。所有字符串都必须以 AT 开头。以下是一些应在字符串中的 Hayes AT 代码(如果它们未通过使用工厂默认设置或已保存的配置来设置)。

以下是一些用于特殊用途的更多 AT 命令

注意:为了让他的旧 USR Courier V.34 调制解调器在 DTR 掉线时正确重置,Greg Hankins 必须设置 &D2S13=1(这会设置寄存器 S13 的位 0)。这已被证实也适用于 USR Sportster V.34 调制解调器。

注意:一些旧的 Supra 调制解调器对 CD 的处理方式与其他调制解调器不同。如果您使用的是 Supra,请尝试设置 &C0不是 &C1。您还必须设置 &D2 才能正确处理 DTR。

8.5 黑名单

如果电话号码拨打几次都未成功,一些调制解调器可能会将电话号码列入黑名单。在一段时间后,您可以再次尝试。一些国家/地区要求这样做以减少不必要的重复拨号。要查看黑名单,请尝试 %B。要删除黑名单,请使用以下 AT 命令

8.6 我的调制解调器现在设置了哪些 AT 命令?

您可以尝试使用 minicom 来查看您的调制解调器配置文件。最好在执行此操作时不要在调制解调器端口上运行任何其他进程。如果您已为您的调制解调器设置了 minicom,则可以在命令行上键入:minicom -o 以启动 minicom 而不恢复已保存的调制解调器配置文件。然后键入 at&v(或 3Com 调制解调器上的 atI4)以显示配置文件。要退出 minicom 而不干扰此配置文件,请使用 q(退出)命令退出而不重置。

由于各种原因,上述方法可能不起作用。如果调制解调器已设置为不回显结果代码,则甚至可能不显示任何配置文件。如果调制解调器端口上同时运行另一个进程,则调制解调器发送给您的部分内容很可能被另一个进程读取,因此您只会看到配置文件的一部分。有没有办法暂时停止端口上的另一个进程,使其不会干扰?我尝试使用“kill”命令的“stop”信号,但它不起作用。如果这是本 HOWTO 的最新版本,如果您找到一种方法来做到这一点,请告诉我。

如果您在调制解调器端口上至少运行一个进程并终止它们,调制解调器的配置文件可能会被重置,因此您将无法观察到原始配置文件是什么。如果您终止 getty(或其替代项:login 或 bash)并设置了 &D3,则会发生这种情况。终止 getty(或类似程序)将使 DTR 掉线并将调制解调器的配置文件重置为上电状态。为防止 getty 在被终止时重新生成,请在 /etc/inittab 中注释掉它,并执行“init q”。

8.7 调制解调器状态(或模式)

由于用于向调制解调器发送 AT 命令的通道与用于数据(文件、数据包等)流动的通道是相同的通道,因此干净地将 AT 命令与数据分开非常重要。

当调制解调器首次开启时,它处于命令模式(也称为终端模式、空闲状态或 AT 命令模式)。从 PC 发送到它的任何内容都被假定为 AT 命令而不是数据。然后,如果向其发送拨号命令 (ATD...),它会拨号并连接到另一个调制解调器。它现在处于在线数据模式(已连接),并发送和接收数据(例如 Internet 页面)。在此模式下,尝试向其发送的任何 AT 命令都将不起作用,而是会传输到另一个调制解调器。除了转义命令。这是 +++,开始和结束都有最短的时间延迟。时间延迟允许调制解调器确定它很可能是真正的转义,而不仅仅是正在传输的文件中的 +++。

到目前为止,我们有两种状态:AT 命令和在线数据。但还有第三种重要状态,它有点像这两种状态的组合。这就是在线命令模式。这是指调制解调器保持连接(不发送/接收数据),但从 PC 发送的任何内容都被解释为 AT 命令。这是通过 +++ 转义信号或 PC 的 DTR 掉线达到的状态,前提是已设置 &D1。然后,可以向调制解调器发送 AT 命令,包括将离开此状态并进入其他两种状态之一的命令。

还有其他状态:拨号状态和握手状态,但它们通常会导致连接(在线)状态。如果它们没有,那么调制解调器应该挂断,从而返回到初始 AT 命令(或空闲)状态。


下一页 上一页 目录