FreeBSD 使用手册
上一页 | 第27章 　串口通讯 | 下一页

# 27.5 拨出设备

> 警告: 从 FreeBSD 8.0 开始， 用于串口的设备节点从 `/dev/cuad`N`` 改为了 `/dev/cuau`N``； 从 `/dev/ttyd`N`` 改为了 `/dev/ttyu`N``。 FreeBSD 7.X 用户需要根据实际情况对这份文档中的例子进行必要的调整。

下面将让您的主机通过 modem 连接到另一台计算机上。 这只要适当地建立一个终端作为远程主机就可以。

这可以用来登录进一个BBS。

如果您用 PPP 有问题， 那这种连接可以用来从 Internet 上下载一个文件。 如果您必须 FTP 一些东西， 而 PPP 断了， 使用终端会话来 FTP 它们。 然后使用 zmodem 来把它们传输到您的机器上。

## 27.5.1 我的Stock Hayes Modem不被支持，我该怎么办?

事实上， 联机手册对于这个的描述已经过时了。 一个通用的 Hayes拨号已经内建其中。 只要在您的 `/etc/remote` 文件中使用 `at=hayes`。

Hayes 驱动不够 “聪明” 只能认出一些比较新的 modem 的高级特性 ── 如 `BUSY`、 `NO DIALTONE`， 或 `CONNECT 115200` 的信息将被搞乱。 当您使用的时候， 您必须把这些信息关掉。(通过 `ATX0&W`)。

另外，拨号的延迟是 60 秒。 您的 modem 可能使用另外的时间或提示认为有其他的通讯问题。 试试 `ATS7=45&W`。

## 27.5.2 我如何输入这些 AT 命令?

在 `/etc/remote` 文件中增加一个 “direct” 项。 举例而言， 如果您的调制解调器挂在第一个串口， 即 `/dev/cuau0` 上， 则应添加下面这行：

    cuau0:dv=/dev/cuau0:br#19200:pa=none

此处应使用您的 modem 所支持的最高 br bps 速率。 接下来， 输入 `tip cuau0` 就可以连到 modem 上了。

此外， 也可以 `root` 身份执行 `cu` 命令：

    # cu -lline -sspeed

`line` 是串口 (例如 `/dev/cuau0`) 而 `speed` 则是速率 (如 `57600`)。 当您输入完 AT 之后， 按 `~.` 即可退出。

## 27.5.3 现在pn `@`标记不能工作？

在电话号码中的 `@` 标记告诉计算机在 `/etc/phones` 文件中查找一个电话号码。 但 `@` 标记也是一个在像 `/etc/remote` 这样的可用文件中的特殊字符。 用一个反斜线符号退出：

    pn=\@

## 27.5.4 我如何在命令行拨电话号码?

在您的 `/etc/remote` 文件中通常放着一个叫做 “generic” 的记录。 例如：

    tip115200|Dial any phone number at 115200 bps:\
            :dv=/dev/cuau0:br#115200:at=hayes:pa=none:du:
    tip57600|Dial any phone number at 57600 bps:\
            :dv=/dev/cuau0:br#57600:at=hayes:pa=none:du:

然后， 可以执行：

    # tip -115200 5551234

如果您更喜欢`cu`而不是`tip`，使用一个通用的`cu`记录：

    cu115200|Use cu to dial any number at 115200bps:\
            :dv=/dev/cuau1:br#57600:at=hayes:pa=none:du:

然后键入：

    # cu 5551234 -s 115200

## 27.5.5 这么做时是否每次都需要重新输入 bps 速率?

添加一项 `tip1200` 或 `cu1200`， 并将 bps 速率换成更合适的值。 `tip` 的默认值是1200 bps， 也就是为什么会有 `tip1200` 这条记录的原因。 虽然您并不需要使用 1200 bps。

## 27.5.6 我通过一个终端服务器访问了很多主机。

除非每次都要等到您连接到主机然后键入 `CONNECT `host``， 否则使用 `tip` 的 `cm` 功能。 例如， 在 `/etc/remote` 中的这些记录：

    pain|pain.deep13.com|Forrester's machine:\
            :cm=CONNECT pain\n:tc=deep13:
    muffin|muffin.deep13.com|Frank's machine:\
            :cm=CONNECT muffin\n:tc=deep13:
    deep13:Gizmonics Institute terminal server:\
            :dv=/dev/cuau2:br#38400:at=hayes:du:pa=none:pn=5551234:

将让您键入 `tip pain` 或 `tip muffin` 连接到主机 `pain` 或 `muffin`， 和 `tip deep13` 连接到终端服务器。

## 27.5.7 `tip`能为每个站点试用多个线路吗？

经常有一个问题， 一个大学有几个modem线路， 几千个学生设法使用它们。

在 `/etc/remote` 中为您的大学添加一个记录， 然后为 `pn` 功能使用 `@` 标记：

    big-university:\
            :pn=\@:tc=dialout
    dialout:\
            :dv=/dev/cuau3:br#9600:at=courier:du:pa=none:

接着， 在 `/etc/phones` 中列出大学的电话号码：

    big-university 5551111
    big-university 5551112
    big-university 5551113
    big-university 5551114

`tip` 将按顺序试用每一个，然后就停止。 如果想继续测试， 隔一段时间再运行 `tip`。

## 27.5.8 为什么我必须键入 Ctrl+P 两次才能发出 Ctrl+P 一次?

Ctrl+P 是默认的“强制”字符，被用来告诉 `tip` 下一个字符是文字的数据。您可以用 `~s` 给任何其他的字符设置强制字符，这意思是 “设置一个变量”。

在新的一行键入 `~sforce=`single-char``。 `single-char` 是任何简单的字符。 如果您遗漏了 `single-char`， 那强制字符就是空字符， 这可以键入 Ctrl+2 或 Ctrl+Space来完成。 更好的 `single-char` 是 Shift+Ctrl+6， 这只用在一些终端服务器上。

通过在您的 `$HOME/.tiprc` 文件中指定下面这行， 就可以得到您想要的任何强制字符：

    force=single-char

## 27.5.9 突然我键入的每一样东西都变成了大写??

您一定是键入了 Ctrl+A， 即 `tip` 的 “raise character”， 会临时地指定成坏掉的 caps-lock键。 使用上面的 `~s` 来合理地设置各种 `raisechar`。 事实上， 如果您不想使用这些特性的话，您可以用同样的方法设置强制字符。

这儿有一个很好的示例 `.tiprc 文件`，对 Emacs用户来说，需要经常按 Ctrl+2 和 Ctrl+A：

    force=^^
    raisechar=^^

`^^` 是 Shift+Ctrl+6.

## 27.5.10 如何用 `tip` 做文件传输？

如果您正在与另一台 UNIX® 系统对话， 您可以用 `~p`(put) 和 `~t` (take) 发送和接收文件。 这些命令可以在远程系统上运行 `cat` 和 `echo` 来接收和发送文件。 语法是这样的：

`~p` local-file [remote-file]

`~t` remote-file [local-file]

由于没有错误校验， 所以您需要使用其他协议， 如 zmodem。

## 27.5.11 我如何用`tip`运行zmodem？

要接收这些文件，可以在远程终端启动发送程序。然后，键入 `~C rz` 在本地开始接收它们。 要发送文件， 可以在远程终端启动接收程序。 然后， 键入 `~C sz `files`` 把它们发送到远程系统。

上一页 | 起始页 | 下一页
拨入服务 | 上一级 | 设置串口控制台

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.