Библиотека сайта rus-linux.net
7. Настройка драйвера последовательного порта (высокоуровневая). Программа stty
7.1 Введение
Данная настройка обычно выполняется программой, которая выполняет установку связи, вроде wvdial, причем Вы можете об этом и не знать ;) Раньше для этого использовалась утилита stty.
7.2 Аппаратное управление потоком (RTS/CTS)
О том, что это такое, можно почитать в разделе Управление потоком. По возможности всегда следует использовать аппаратное управление потоком. В Вашей программе для установки связи или в "getty
"
должна присутствовать опция для его включения (и было бы хорошо,
чтобы она была включена по умолчанию). Аппаратное управление потоком
необходимо задать и в модеме (через строку инициализации или по
умолчанию), и в драйвере. Программа для установки связи должна
производить обе эти настройки (если сама настроена правильно).
Если аппаратное управление потоком не включается, то указанные настройки надо провести самому. Посмотрите, задано ли его включение в строке инициализации модема или по умолчанию. Чтобы задать аппаратное управление потоком драйверу, добавьте в один из стартовых скриптов (см. Настройка при загрузке) для каждого требуемого последовательного порта строчку вроде (в примере для ttyS2):
stty -F /dev/ttyS2 crtscts
или
stty crtscts < /dev/ttyS2
Проверить, включено ли управление потоком, можно так: в minicom (или подобной программе) наберите AT&V (для модемов 3Com/USR -- ATI4), увидите настройки модема, найдите &K3 (для модемов 3Com/USR -- &H1) -- если есть, то аппаратное управление потоком включено. Затем, не закрывая окно minicom, можно посмотреть, задано ли аппаратное управление потоком драйверу: stty -F /dev/ttyS2 -a. "crtscts" должно быть без знака минус. Учтите, что программы, работающие с модемом, изменяют эти установки, так что есть смысл еще раз их проверить после запуска такой программы.
7.3 Задание скорости
Помимо задания способа управления потоком данных можно задать скорость порта. См. Какую установить скорость. Также задаются паритет (четность) и число бит на байт. Как правило, порт настраивается программой, устанавливающей соединение, на 8N1 (8 бит на байт, без (No) паритета, 1 стоповый бит; именно в таком порядке они и передаются по линии -- прим. перев.). Для запуска PPP обязательно должно быть установлено 8N1!
7.4 Игнорирование сигнала CD: clocal
Обычно наличие сигнала CD (Carrier Detect - обнаружение несущей, на линии CD для внешних модемов) необходимо ДО открытия последовательного порта. Но если stty сбросила clocal (-clocal; минус в начале -- замеч. перев. :)), то CD должен быть ВСЕ ВРЕМЯ, пока открыт порт. Говоря по правде, квалифицированный программист может написать программу так, что открытие порта не будет зависеть от CD и clocal. Тем не менее, если stty показывает -clocal, то открытие порта может быть проблематичным. -clocal может быть кстати для входящих звонков в случае, если Вы захотите, чтобы после окончания сеанса удаленным модемом (несущая исчезает, CD спадает), завершались все процессы, запущенные на последовательном порте.
Чтобы сигнал CD от модема был постоянно, надо дать ему команду "AT&C". Для исходящей связи постоянно присутствующий сигнал CD подходит прекрасно, а вот для входящей состояние CD иногда (редко) используется для отслеживания входящего звонка.
Последними драйверами последовательного порта clocal может выставляться по умолчанию. minicom выставляет clocal автоматически при своем запуске, поэтому в нем проблем с открытием порта нет. Но при выходе minicom восстанавливает первоначальное значение clocal. Версия 6.0.192 Kermit'а повисла, когда я выставил -clocal и попытался было "set line ...".
7.5 Программа stty
stty
чем-то похожа на setserial, она
устанавливает скорость (бодовую), аппаратное управление потоком и др.
параметры последовательного порта. Набрав "stty -F /dev/ttyS2 -a", Вы
увидите настройки ttyS2. Большая часть настроек, осуществляемых stty,
для работы с модемом не требуется. Многие настройки нужны только для
текстовых терминалов (а отдельные -- только для древних терминалов 70-х
годов XX века :)). Программа, используемая Вами для установки связи,
должна автоматически выполнять некоторые установки, требуемые для
модемов. По этой причине в большинстве случаев Вам нет необходимости
использовать stty, поэтому в этом HOWTO о ней немного. Но для
устранения проблем stty может оказаться полезной. В Serial-HOWTO и
Text-Terminal-HOWTO stty освещена больше.
Следующий Предыдущий Содержание