本 HOWTO 涵盖用于 PCI、USB、LPC 和 ISA 总线的 PC 的传统模拟调制解调器。USB 和 ISDN 的覆盖范围较弱。对于其他类型的调制解调器,请参阅
有关 PCMCIA 总线上的调制解调器,请参阅 PCMCIA-HOWTO:PCMCIA 串行和调制解调器设备。本 HOWTO 也不涵盖 PPP(用于通过调制解调器连接到互联网)或通信程序的详细信息。如果您想使用调制解调器连接到互联网,那么您需要使用一个程序来自动为您设置 PPP(例如 wvdial)。有关 ppp 的更多文档应在 /usr/doc/ppp、/usr/share/doc/ppp 或类似位置找到。
版权 (c) 1998-2005 David S. Lawyer mailto:dave@lafn.org
请以任何格式自由复制和分发(出售或赠送)本文档。请将任何更正和意见发送给文档维护者。您可以创建衍生作品并分发它,前提是您
如果您正在考虑制作翻译以外的衍生作品,则请求您与当前的维护者讨论您的计划。
虽然我没有故意误导您,但本文档中可能存在许多错误。请告知我这些错误。由于这是免费文档,因此很明显,我对任何错误不承担任何法律责任。
任何品牌名称(以大写字母开头,例如 MS Windows)都应被假定为商标。此类商标属于其各自的所有者。
“Hayes”是 Microcomputer Products Inc. 的商标。我使用“winmodem”来表示最初需要 MS-Windows 的任何调制解调器,而不是商标意义上的。所有其他商标均属于其各自的所有者。
以下仅是对本文档在 2000 年创建方式的粗略估计:此处约 1/4 的材料直接摘自 Greg Hankins 的 Serial-HOWTO v. 1.11 (1997)。mailto:gregh@twoguys.org(经他许可)。大约另外 1/4 来自该 Serial-HOWTO 并进行了修订。剩下的 1/2 是新作者 David S. Lawyer mailto:dave@lafn.org
新创建的。自 2000 年以来,当前作者添加了更多内容,因此旧 Serial-HOWTO 中的调制解调器覆盖范围几乎没有剩余。
由于我不关注许多不同的调制解调器品牌/型号,请不要通过电子邮件向我发送有关它们的问题(或关于购买哪种型号的建议)。如果您对某个型号感兴趣(以了解它是否在 Linux 下工作等),请参阅 网站 上的庞大列表。此外,除非您已查看本 HOWTO 并且仍然无法做到,否则请不要问我如何配置调制解调器。我个人没有基于软件的调制解调器的经验。
请告知我事实、观点、逻辑、拼写、语法、清晰度、链接等方面的任何错误。但首先,如果日期超过一两个月,请检查以确保您拥有最新版本。请将您认为属于本文档的任何其他信息发送给我。
本 Modem-HOWTO 的新版本应每隔几个月发布一次。您的难题可能在最新版本中得到解决。它将在 LDP 镜像站点上提供浏览和/或下载。有关此类站点的列表,请参阅:http://www.tldp.org/mirrors.html 如果您只想快速比较此版本 v0.39(2007 年 1 月)的日期与最新版本的日期,请访问:http://www.tldp.org/HOWTO/Modem-HOWTO.html
有关追溯到第一个版本的完整修订历史记录,请参阅 http://cvsview.tldp.org/index.cgi/LDP/howto/linuxdoc/Modem-HOWTO.sgml 中的源文件(linuxdoc 格式)。
调制解调器(或模拟调制解调器)是一种设备,允许通过未设计用于数字信号的普通电话线发送数字信号。如果电话线都是数字的,那么您就不需要调制解调器。但有时,连接到数字电话线的模拟调制解调器的替代品被不精确地称为“数字调制解调器”。调制解调器允许您的计算机连接到世界其他地方并与之通信。当您使用调制解调器时,通常使用通信程序或 Web 浏览器来利用调制解调器并在电话线上拨出。高级调制解调器用户可以进行设置,以便其他人可以打电话给他们并远程使用计算机。这称为“拨入”。
过于简化地说,PC 的模拟调制解调器基本有四种类型:外部串行 (RS-232)、USB (= 外部 USB)、内置和板载。外部串行和 USB 放置在 PC 外部的桌面上,而其他两种类型是不可见的,因为它们在 PC 内部。外部串行调制解调器插入 PC 背面称为“串行端口”的连接器。USB 调制解调器插入 USB 电缆。请参阅 USB 调制解调器。内置调制解调器是插入计算机内部的卡。板载调制解调器是主要用于笔记本电脑的主板上的芯片。本 HOWTO 中关于内置调制解调器的内容通常也适用于板载调制解调器。内置调制解调器进一步细分为 PCI、ISA 和 AMR,具体取决于它们是为 PCI 或 ISA 总线设计的,还是为 AMR 插槽设计的。
有关外部与内置的比较,请参阅 外部与内置。当您获得内置或板载调制解调器时,您还会获得一个专用的串行端口(该端口只能与调制解调器一起使用,而不能与任何其他设备(如外部调制解调器或控制台终端)一起使用)。在 Linux 中,常见的串行端口名为 ttyS0、ttyS1 等。这些端口通常分别对应于 Dos/Windows 中的 COM1、COM2 等。但在特殊情况下,名称会更长,例如:ttySHCF0 是某种 winmodem(HCF = Host Controlled Family,主机控制系列)的第 0 个串行端口。新型串行端口只是在 ttyS 中添加了一些字母。
有关调制解调器和串行端口如何工作的更多详细信息,请参阅 调制解调器和串行端口基础知识。使用 USB 调制解调器,驱动程序模拟一个串行端口,例如 /dev/ttySHCFUSB。
调制解调器通常包括发送传真(传真调制解调器)的功能。有关传真软件列表,请参阅 传真。“语音”调制解调器可以像自动答录机一样工作并处理语音邮件。请参阅 语音邮件软件。
v.92 协议可以在有人拨打普通语音电话到您的电话时将调制解调器“保持”,前提是您从电话公司获得了“呼叫等待”服务。因此,您可以在在线时接听电话。截至 2003 年 1 月,Linux 似乎不支持它。如果这是本 HOWTO 的最新版本,请告知我任何 Linux 对它的支持。一些 linmodem 驱动程序可能支持它(但是如果您有不使用任何 linmodem 驱动程序的硬件调制解调器怎么办?)。
内置调制解调器通常在计算机背面有一对模块化电话插孔。它们应该彼此相邻,并且每个看起来都像建筑物内墙上的电话插孔。这对插孔中的一个应该标记为“线路”(或类似字样),您可以在其中插入电话线。
网卡也有模块化插孔,但它们很少成对出现,并且略宽,因为它们通常有 8 个引脚。内置 DSL“调制解调器”存在并且也有模块化电话插孔,但我认为截至 2002 年它们不是很常见(大多数 DSL 调制解调器都是外部的)。
如果您认为您的调制解调器可以在 Linux 下工作并且不需要特殊驱动程序,那么只需物理安装/连接它即可。启动您的计算机,观看 Linux 的启动时消息以查找调制解调器。注意它是串行端口号,例如 ttyS2 (/dev/ttyS2)。将电话线连接到它并使用例如 wvdial 拨出(在配置 wvdial 之后)。如果以上方法不起作用,请继续阅读。
所谓的“winmodem”只有在存在适用于它的驱动程序并安装了驱动程序的情况下才能在 Linux 下工作。在这种情况下,它被称为“linmodem”,因为它可以在 Linux 下工作。如果它是在 2004 年之前制造的,请参阅 旧调制解调器列表 和 基于软件的调制解调器 (winmodem)。安装无法在 Linux 下工作的调制解调器毫无意义。
曾经(2002 年?)没有外部串行调制解调器是 winmodem,但现在情况已不再如此。使用直通或调制解调器电缆,将调制解调器连接到 PC 上未使用的串行端口。确保您知道串行端口的名称:在大多数情况下,COM1 是 ttyS0,COM2 是 ttyS1 等。您可能需要检查 BIOS 设置菜单以确定这一点。插入电源线为调制解调器供电。有关更多说明,请参阅 所有调制解调器。
如果调制解调器既是 PnP 的,又直接受串行驱动程序(内核 2.4 +)或您已安装的 winmodem 驱动程序支持,那么您无需进行任何配置,因为驱动程序应该配置它。
要物理安装调制解调器卡,请卸下 PC 的盖子,方法是/卸下一些螺钉。找到与卡片匹配的空闲插槽,该插槽位于其他适配器卡旁边。在将卡片插入插槽之前,卸下 PC 背面的小盖板,以便可以从 PC 后部访问卡片上的电话插孔。然后小心地将卡片与插槽对齐,并将卡片一直向下推入插槽。使用安装螺钉(通常为 3 毫米,0.5 毫米螺距 - 不要使用错误的尺寸)固定卡片。
您可以观看启动时消息,以查看是否检测到您的调制解调器。使用“dmesg”查看它们,或使用 shift-page-up 在它们闪过后将屏幕向上滚动。
通常,您不需要进行此手动配置,因为调制解调器的串行端口可能会在启动时被检测到并分配一个端口。例如:ttyS14,I/O 地址 0x6450(IRQ = 10)。否则(或者如果有一些特殊原因要更改配置),那么您需要自己配置它(或者可能更新您的内核以增加检测到调制解调器的可能性)。如果您的调制解调器没有分配 ttyS 编号,则在获得 ttyS 编号(如 ttyS10)之前,它无法使用。因此,它无法被拨号器或 minicom 等应用程序检测到。但如果它在 PCI 总线上,则可能会通过使用例如“lspci -v”找到它。
找到丢失的调制解调器可能不容易,您可能需要阅读本 HOWTO 的更多内容。一旦找到,您需要使用“setserial”程序手动将其分配给您选择的可用 ttyS? 端口。为此,您需要知道它的 IO 地址(如 0x6450)及其 IRQ(如 10)。在最坏的情况下,调制解调器已被 BIOS(或 Linux)禁用,因为它未能被检测和启用,并且没有 IO 地址或 IRQ 编号。但您可能仍然能够找到它。较旧的调制解调器可以通过卡上的跳线禁用,或者在极少数情况下可以通过 MS 软件禁用。
您可能可以选择 IRQ 和 IO 地址(包括您可以更改 BIOS 设置的情况)。请参阅 选择串行 IRQ 和 选择地址。
ISA 调制解调器通常使用 ttyS0 - ttyS3。对于带有跳线的旧调制解调器,请查看调制解调器手册或查找调制解调器卡上的印刷,以了解跳线的作用。它们具有与 ttySx 对应的标准 IO 地址。例如,您可能会发现使用 IO 地址 0x3e8 和 IRQ 11 的 /dev/ttyS2 是可行的。
如果它没有跳线,那么它很可能是即插即用调制解调器,BIOS 可能会在您启动 PC 时对其进行配置。键入“pnpdump --dumpregs”应该可以找到它。如果您需要设置或更改它们,请使用“isapnp”。使用“pnpdump”程序查看可能进行的更改。
您必须找到在启动时运行“setserial”的文件,并添加类似于以下内容的行:“setserial /dev/ttyS2 irq 5 port 0x0b8”。对于 setserial v2.15 及更高版本,在命令行上运行“setserial”的结果可能会(也可能不会)保存到名为 serial.conf 或 autoserial.conf 的文件中。它可能位于例如 /etc 目录或 /var/lib/setserial 目录中(使用“locate”查找它)。它每次启动时都会运行。有关更多信息,请参阅 什么是 Setserial。有关快速安装的进一步说明,请参阅下一小节 所有调制解调器。
如果您正在使用 BIOS 进行配置,您可以尝试使用 MS Windows9x“强制”BIOS 设置特定的 IRQ 和/或 IO。它可以将它们设置到 PnP BIOS 的闪存中,在其中它们将用于为 Linux 以及 Windows 配置。请参阅“Plug-and-Play-HOWTO 并搜索“forced”(在多个位置出现)。对于 Windows 3.x,您可以使用 Windows 3.x 下的 ICU 执行相同的操作。一些调制解调器有一种方法可以使用调制解调器附带的软件(在 Windows 下)禁用调制解调器硬件中的 PnP。
将调制解调器插入电话线。然后配置拨号程序。如果您有互联网服务提供商 (ISP),您可以配置以下程序之一:wvdial、pppconfig、gnome-ppp、调制解调器指示灯 (Gnome) 或 kppp。它们不仅拨出,还启动 PPP,这是您连接到互联网所需要的。否则,您可以尝试配置 minicom 拨号器,它不是为连接到互联网而设计的,但非常适合测试。无论是 minicom 还是启动 PPP 的拨号器,都将串行端口速度设置为比调制解调器的比特率高几倍的波特率。有关“最佳”速度的更多详细信息,请参阅 速度表。告诉它您的串行端口的完整名称,例如 /dev/ttyS1(或 /dev/ttys/1)。
Minicom 是设置和测试调制解调器的一种方法。设置硬件流控制 (RTS/CTS)。使用 minicom,您可以检查您的调制解调器是否在那里(并准备好拨号)。设置好 minicom 后,键入命令:AT,按 Enter,您应该会看到直接来自调制解调器的“OK”响应。请参阅 使用 Minicom 拨号。
如果您的调制解调器在例如 /dev/ttyS2 上,您可能希望将其链接到 /dev/modem。实际上没有必要这样做,因为您可以写下(或记住)例如 ttyS2 并将其告知使用调制解调器的程序。仅仅链接它可能更简单。要链接它,请键入例如 ln -s /dev/ttyS2 /dev/modem
。请注意,“ttyS2”只是一个示例。它实际上可能是 ttyS14 等。或者使用 Red Hat 的 modemtool(或类似的工具)链接它。但是,一旦链接它,请确保所有使用调制解调器的程序都使用 /dev/modem 而不是 /dev/ttyS2,否则两个程序可能会在不知道它们正在这样做的情况下尝试同时使用调制解调器。系统软件是在 2000 年左右编写的,以解决此问题,但它可能不在最近的内核(如 2.6)中。