FAQ FreeBSD
Страница 57. Порты. Часть 2


11.8. Как сделать вход через модем?

Похоже, что вы хотите стать Internet-провайдером, да? Сначала вам необходимо
подключить к системе один или несколько модемов, которые могут работать в
режиме автоответа. Модем должен держать сигнал наличия несущей, только когда
она присутствует. Он должен вешать трубку и переинициализировать, когда сигнал
готовности устройства DTE (DTR) меняет состояние из включенного на выключенный.
Должно использоваться аппаратное (RTS/CTS) управление потоком или вовсе отсутст
вовать. Ещё он должен работать на постоянной скорости с портом компьютера, но
(что удобно для звонящих) с согласованием скорости передачи с другим модемом.
Для большинства модемов, поддерживающих набор команд Hayes, следующая последов
ательность команд выполнит эти настройки и сохранит их в энергонезависимой
памяти:
    AT &C1 &D3 &K3 &Q6 S0=1 &W

Информация о том, как сделать эти настройки без обращения к терминальным
программам MS-DOS, содержится в разделе о посылке AT-команд.
Затем опишите модем в файле /etc/ttys. В нём перечислены все порты, с которых
операционная система ожидает входа пользователей. Добавьте строку, которая в
ыглядит как эта:
    ttyd1 "/usr/libexec/getty std.57600" dialup on insecure

В этой строке указано, что ко второму последовательному порту (/dev/ttyd1)
подключен модем на скорости 57600 bps без контроля по чётности (std.57600, что
берётся из файла /etc/gettytab). Тип терминала для этого порта определён как
dialup. Порт включен (on) и небезопасен (insecure), что означает, что попытки в
ойти в систему пользователем root с этого порта будут отвергнуты. Для портов,
обслуживающих входящие звонки, как этот, используйте устройства вида ttydX.
Использование слова dialup в качестве имени терминала является обычной
практикой. Многие пользователи включают в свои файлы .profile или .login
скрипты для задания реального типа терминала, если начальным является тип
dialup. В примере порт описан небезопасным. Чтобы войти пользователем root на
этом порту, вам нужно сначала войти обычным пользователем, а затем командой su
стать пользователем root. Если порт имеет атрибут secure, то пользователь root
может входить с этого порта непосредственно.

После модифицирования /etc/ttys, вам нужно послать сигнал потери связи или HUP
процессу init:
    # kill -HUP 1

Это заставит процесс init снова прочитать файл /etc/ttys. Процесс init запустит
процессы getty для всех портов с характеристикой on. Вы можете проверить,
доступны ли входы с конкретного порта, выполнив команду
    % ps -ax | grep '[t]tyd1'

Вы должны увидеть нечто вроде следующего:
    747 ??  I      0:00.04 /usr/libexec/getty std.57600 ttyd1

11.9. Как подключить терминал к FreeBSD?

Если вы собираетесь использовать другой компьютер в качестве терминала для
FreeBSD, соедините их последовательные порты нуль-модемным кабелем. Если у вас
есть терминал, обратитесь к его документации.
Затем модифицируйте файл /etc/ttys описанным выше способом. Например, если вы
подключаете терминал WYSE-50 к пятому последовательному порту, используйте
такую строчку:
    ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure

В этом примере описан порт на /dev/ttyd4, имеющий терминал wyse50, подключенный
на скорости 34800 bps без контроля по четности (std.38400 из /etc/gettytab) и
разрешён непосредственный вход пользователя root (secure).

11.10. Почему не удаётся запустить tip или cu?

Скорее всего, в вашей системе запуск программ tip и cu разрешён только пользов
ателю uucp и членам группы dialer. Вы можете использовать группу dialer для
управления доступом к вашему модему или удалённым системам. Достаточно добавить
пользователя в группу dialer.
Вы можете разрешить всем пользователям вашей системы запускать tip и cu, в
ыполнив команды:
    # chmod 4511 /usr/bin/cu
    # chmod 4511 /usr/bin/tip

11.11. Мой модем Hayes не поддерживается---что можно сделать?

На самом деле страница Справочника о программе tip устарела. Модемы 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. После этих действий всё работает замечательно.

11.12. Как я должен ввести эти AT-команды?

Создайте так называемое "прямое" описание в вашем файле /etc/remote. Например,
если ваш модем подключен к первому последовательному порту, /dev/cuaa0,
сделайте такую строку:
    cuaa0:dv=/dev/cuaa0:br#19200:pa=none

Укажите максимальную скорость обмена с портом, поддерживаемую модемом в
параметре br. Затем выполните команду tip cuaa0 и вы подключитесь к модему.
Если в вашей системе нет устройства /dev/cuaa0, сделайте следующее:
    # cd /dev
    # sh MAKEDEV cuaa0

Или используйте cu, войдя администратором, с такими параметрами:
    # cu -lline -sspeed

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

 
« Предыдущая статья