20.5. 拨出设备

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

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

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

20.5.1. 我的Stock Hayes Modem不被支持,我该怎么办?

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

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

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

Note: 注意: 实际上 tip 不支持所有的 Hayes modems。 解决方法是编辑 /usr/src/usr.bin/tip/tip 目录中的 tipconf.h 文件。很明显, 您需要它的源代码才能这样做。

把行#define HAYES 0 改为 #define HAYES 1。 然后 makemake install就可以了。

20.5.2. 我如何输入这些 AT 命令?

/etc/remote 文件中编译一个叫做 “direct” 的记录。 例如, 如果您的 modem 连接在第一个串行端口, /dev/cuaa0, 就添加下面这行:

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

使用 br 命令来启用您 modem 支持的最高传输速度。 然后键入 tip cuaa0, 您就可以连到您的 modem 上了。

如果在您的系统上没有 /dev/cuaa0,可以这样:

# cd /dev
# sh MAKEDEV cuaa0

或以 root 使用 cu, 执行下面的命令:

# cu -lline -sspeed

line line是串行端口 (例如 /dev/cuaa0), speed 是速度 (如57600)。 键入 ~. 退出。

20.5.3. 现在pn @标记不能工作?

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

pn=\@

20.5.4. 我如何在命令行拨电话号码?

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

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

然后,您可以这样:

# tip -115200 5551234

如果您更喜欢cu而不是tip,使用一个通用的cu记录:

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

然后键入:

# cu 5551234 -s 115200

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

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

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

除非每次都要等到您连接到主机然后键入 CONNECT <host>, 否则使用 tipcm 功能。 例如, 在 /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/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:

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

20.5.7. tip能为每个站点试用多个线路吗?

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

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

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

接着, 在 /etc/phones 中列出大学的电话号码:

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

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

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

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

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

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

force=<single-char>

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

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

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

force=^^
raisechar=^^

The ^^ is Shift+Ctrl+6.

20.5.10. 如何用 tip 做文件传输?

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

~p local-file [remote-file]

~t remote-file [local-file]

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

20.5.11. 我如何用tip运行zmodem?

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