Frequently Asked Questions по FreeBSD 2.X : Коммуникационные адаптеры : Как сделать вход через модем?
Previous: Можно ли установить режим работы по умолчанию для порта?
Next: Как подключить терминал к FreeBSD?

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. В примере порт описан небезопасным. Чтобы войти администратором на этом порту, вам нужно войти обычным пользователем, а затем командой su'' стать пользователем root. Если порт является ``secure'', то пользователь root может входить с этого порта непосредственно.

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

        kill -HUP 1
      

Это заставит процесс init снова прочитать файл /etc/ttys. Процесс init запустит процессы getty для всех включенных портов. Вы можете проверить, доступны ли входы с конкретного порта, выполнив команду

        ps -ax | grep '[t]tyd1'
      

Вы должны увидеть нечто вроде следующего:

        747 ??  I      0:00.04 /usr/libexec/getty std.57600 ttyd1
      


Frequently Asked Questions по FreeBSD 2.X : Коммуникационные адаптеры : Как сделать вход через модем?
Previous: Можно ли установить режим работы по умолчанию для порта?
Next: Как подключить терминал к FreeBSD?