Руководство FreeBSD
Пред. | Глава 20. Последовательные соединения | След.

# 20.5. Исходящие соединения по модему

Текст, приведенный ниже, это советы, позволяющие настроить ваш хост для доступа к другому компьютеру через модем. Они подходят для установления терминальной сессии с удаленным хостом.

Это подходит для входа на BBS.

Этот вид соединения может очень выручить, если требуется получить файл из интернет и есть проблемы с PPP. Если вам требуется зайти куда-то по FTP, а PPP не работает, используйте терминальную сессию для получения файла по FTP. Затем используйте zmodem для сброса его на свой компьютер.

## 20.5.1. Мой модем Stock Hayes не поддерживается, что я могу сделать?

На самом деле, страница руководства для `tip` устарела. Встроенная поддержка generic Hayes уже есть. Используйте at=hayes в файле `/etc/remote`.

Драйвер Hayes не умеет работать с некоторыми расширенными возможностями более новых модемов -- сообщения вроде BUSY, NO DIALTONE, или CONNECT 115200. Вы должны отключить эти сообщения при использовании `tip` (с помощью `ATX0&W`).

Таймаут дозвона для `tip` составляет 60 секунд. Ваш модем должен использовать меньшее значение, или `tip` решит, что возникли проблемы со связью. Попробуйте `ATS7=45&W`.

> Замечание: Оригинальная `tip` не полностью поддерживает модемы Hayes. Решить это проблему можно отредактировав файл `tipconf.h` в каталоге `/usr/src/usr.bin/tip/tip`. Конечно, для этого вам потребуются исходные тексты.

> Замените строку #define HAYES 0 на #define HAYES 1. Затем выполните `make` и `make install`. После этого все должно работать отлично.

## 20.5.2. Как нужно выполнять команды AT?

Сделайте то, что называется ''прямой'' записью в файле `/etc/remote`. Например, если модем подключен к первому последовательному порту, `/dev/cuaa0`, добавьте следующую строку:

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

Используйте для br наибольшее значение bps, поддерживаемое модемом. Для подключения к модему выполните `tip cuaa0`.

Если в системе нет устройства `/dev/cuaa0`, выполните:

    # cd /dev
    # sh MAKEDEV cuaa0

Или используйте `cu` под `root` так:

    # cu -lline -sspeed

line это последовательный порт (например `/dev/cuaa0`), а speed это скорость (например 57600). После ввода команд AT наберите ~. для выхода.

## 20.5.3. Знак @ не работает для pn!

Знак @ в телефонном номере указывает `tip` взять телефонный номер из `/etc/phones`. Но знак @ это также специальный символ в таких файлах как `/etc/remote`. Экранируйте его с помощью обратной косой черты:

    pn=\@

## 20.5.4. Как я могу позвонить по телефонному номеру из командной строки?

Поместите так называемую ''generic'' запись в файл `/etc/remote`. Например:

    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`, используйте generic запись для 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 каждый раз?

Создайте запись tip1200 или cu1200, но используйте то значение bps, которое записано в поле br. `tip` считает, что хорошее значение по умолчанию это 1200 bps, поэтому обращается к записи tip1200. Тем не менее, значение bps будет другим.

## 20.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/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:

Она позволит вам вводить `tip pain` или `tip muffin` для соединения с хостами pain или muffin, и `tip deep13` для доступа к терминальному серверу.

## 20.5.7. Может ли tip соединяться более через одну линию для каждого сайта?

Эта проблема часто возникает в университете, где несколько модемных линий и несколько тысяч студентов, пытающихся их использовать.

Создайте запись для университета в `/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-char`, завершив ввод новой строкой. single-char это любой одиночный символ. Если вы не введете single-char, управляющим символом станет nul, который можно получить, введя Ctrl+2 или Ctrl+Space. Хорошее значение для single-char это Shift+Ctrl+6, которое используется только на некоторых терминальных серверах.

Вы можете использовать в качестве управляющего символа все, что захотите, поместив его в файл `$HOME/.tiprc`:

    force=<single-char>

## 20.5.9. Почему все, что я ввожу, вдруг стало отображаться в верхнем регистре??

Вы нажали Ctrl+A, ''повышающий символ'' `tip`, который был специально введен для тех, у кого не работает клавиша caps-lock. Используйте `~s` как в примере выше для установки переменной raisechar в подходящее значение. Фактически, вы можете установить ее в то же значение, что и управляющий символ, если не собираетесь использовать ни один из них.

Вот пример .tiprc, отлично подходящий для пользователей Emacs, которым часто требуется вводить Ctrl+2 и Ctrl+A:

    force=^^
    raisechar=^^

Символ ^^ это Shift+Ctrl+6.

## 20.5.10. Могу ли я передавать файлы с помощью `tip`?

Если вы соединяетесь с другой системой UNIX®, возможны передача и прием файлов с помощью команды `~p` (put) и `~t` (take). Эти команды запускают `cat` и `echo` в удаленной системе для приема и передачи файлов. Синтаксис следующий:

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

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

Коррекции ошибок нет, поэтому возможно лучше использовать другой протокол, например zmodem.

## 20.5.11. Как мне запустить zmodem с `tip`?

Для получения файла запустите отправляющую программу на удаленной стороне. Затем, наберите `~C rz` для начала локального приема файла.

Для отправки файлов запустите принимающую программу на удаленной стороне. Затем, наберите `~C sz файлы` для отправки их на удаленную систему.

Пред. | Начало | След.
Входящие соединения по модему | Уровень выше | Настройка последовательной консоли

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.