Россия, Казань, Казанский Национальный Исследовательский Технический Университет |
Установка телекоммуникационного оборудования в ОС Linux
Установка модемов
Для большинства серверов электронной почты на базе Linux модем сегодня является своеобразными воротами во внешний мир. Если имеется сервер электронной почты, подключенный к ЛВС, которая в свою очередь подключена к сети Internet, то вполне закономерно что для организации обмена электронной почтой потребуется подключение к провайдеру услуг сети Internet. Обычно такое соединение организуется с помощью модема. На сегодняшний день существует огромный выбор модемов. В этом разделе мы попытаемся рассказать, каким образом ОС Linux работает с модемными устройствами, и представим различные типы модемов, используемых с ОС Linux.
Последовательные порты в ОС Linux
Сетевые администраторы знакомы с работой последовательных портов под управлением операционных систем Microsoft MS-DOS и Windows в IBM-совместимых ПК. Архитектура IBM-совместимых ПК поддерживает последовательные порты, известные как COM-порты. Эти порты нумеруются с первого по четвертый, и каждый из них имеет отдельное прерывание IRQ и свою пару адресов ввода-вывода.
ОС Linux обнаруживает СОМ-порты в системе, но использует свою систему нумерации. В ОС Linux они называются tty-устройствами. Эти устройства находятся в /dev/ttySx, где х обозначает номер коммуникационного порта. К сожалению, ОС Linux использует систему нумерации портов, отличную от принятой компанией Microsoft. В ней нумерация последовательных портов начинается с 0, а не с 1. В табл. 3.3 приведена нумерация последовательных портов в ОС Linux и в MS-DOS.
MS-DOS | Linux | IRQ | Адрес ввода-вывода |
---|---|---|---|
COM 1 | ttyS0 | 4 | 0x3f8 |
COM 2 | ttyS1 | 3 | 0x2f8 |
COM 3 | ttyS2 | 4 | 0x3e8 |
COM 4 | ttyS3 | 3 | 0x2e8 |
Мультипортовые платы
В ОС Linux также поддерживаются мультипортовые последовательные устройства. В таких платах совмещено несколько последовательных портов, которые могут совместно использовать одно прерывание IRQ. Для нормального функционирования они используют специальные программы-драйверы для разделения портов на плате. При использовании таких устройств ОС Linux выполняет нумерацию портов, начиная с ttyS4. Довольно часто этим устройствам требуются специальные драйверы для ядра Linux, которые обычно поставляются изготовителем мультипортовой платы.
В листинге 3.3 показаны устройства ttyS x для стандартного IBM-совместимого ПК под управлением Mandrake Linux с двумя СОМ портами и модемом на порту СОМ4.
1 [alex@shadrach /dev]$ ls -al ttyS* 2 crw------- 1 root tty 4, 64 Nov 29 16:09 ttyS0 3 crw------- 1 root tty 4, 65 May 5 1998 ttyS1 4 crw------- 1 root tty 4, 66 May 5 1998 ttyS2 5 crw------- 1 root tty 4, 67 May 5 1998 ttyS3 6 [alex@shadrach /dev]$Листинг 3.3. Список устройств /dev/ttySx
Из листинга 3.3 видно, что, хотя в данной системе используется только три СОМ-порта, по умолчанию в операционной системе Linux создаются записи для четырех основных последовательных портов. Попытка использовать устройство ttyS2 повлечет за собой появление ошибки.
В ОС Linux также поддерживается набор зеркальных устройств с именами /dev/cuax для каждого устройства /dev/ttySx. Устройства cua предназначены для того, чтобы упростить создание управляющих программ. Устройства cua позволяют прикладным программам подключаться к портам, даже если не представлен сигнал несущей (DCD). Сигнал DCD выдается модемом и говорит о наличии соединения с удаленным модемом. Программным обеспечением, которому в процессе работы необходимо совершать выходные звонки, используются главным образом эти устройства. При этом не требуется наличие соединения, поскольку это исходящий звонок. Поэтому в ОС Linux было принято соглашение о том, что все программы, инициирующие исходящие звонки, должны использовать устройства cua, а устройства ttyS предназначены только для входящих звонков. Ниже в листинге 3.4 приведен список cua -устройств для системы, рассмотренной в листинге 3.3, с использованием Mandrake Linux.
[alex@shadrach /dev]$ ls -al cua* crw------- 1 root root 5, 64 May 5 1998 cua0 crw------- 1 root root 5, 65 May 5 1998 cua1 crw------- 1 root root 5, 66 May 5 1998 cua2 crw------- 1 root root 5, 67 May 5 1998 cua3 [alex@shadrach /dev]$Листинг 3.4. Список устройств /dev/cuax
При одновременном использовании программ для обслуживания исходящих и входящих звонков возникает проблема с блокировкой порта модема. Поэтому было принято решение поддерживать разработку управляющего программного обеспечения для устройств ttyS. Это оказалось намного легче, чем обслуживать два различных имени устройств для одного и того же физического устройства.
tty против cua
Избегайте использования устройств cua, даже если они имеются в вашем дистрибутиве ОС Linux. Многими программами уже сегодня генерируется предупреждающее сообщение, о прекращении поддержки устройств с именем cua в будущих ядрах ОС Linux. Лучше всего обращаться к последовательным портам по имени tty.
Еще одно специальное устройство, с которым вам, возможно, придется иметь дело, —устройство /dev/modem. В принципе это символическая связь с устройством cua, к которому подключен модем. Это устройство призвано упростить обращение программ, которым требуется работа с модемом, к портам. Теперь таким программам нужно лишь обратиться к стандартному устройству modem. Большинство версий ОС Linux создают это устройство еще при первой установке системы. В Red Hat и Mandrake Linux, если вы хотите установить модем позже, можно использовать программу для среды X Window modemtool для создания символической связи с устройством /dev/modem. На рис. 3.7 представлено окно программы modemtool.