Россия, Казань, Казанский Национальный Исследовательский Технический Университет |
Установка телекоммуникационного оборудования в ОС Linux
Команда setserial
Команда setserial применяется для установки и настройки отдельных последовательных портов в системе на базе ОС Linux. Каждый порт, используемый операционной системой Linux, должен быть настроен командой setserial. Как видно из листинга 3.3, по умолчанию в системе на базе ОС Linux конфигурируются четыре стандартных последовательных СОМ-порта. Если имеющийся у вас модем использует нестандартные прерывания IRQ и адреса ввода-вывода или же используется мультипортовая плата, то для правильного конфигурирования портов в системе необходимо использовать программу setserial.
Команда setserial используется в двух форматах:
setserial [-abqvVW] device [parameter 1[arg] ] ... setserial -g [-abv] device ...
Опция -g используется для запроса информации об указанных в команде устройствах. В листинге 3.5 дается пример работы команды setserial в ОС Linux.
1 [root@shadrach rich]$ /sbin/setserial -g /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 2 /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRO: 4 3 /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3 4 /dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4 5 /dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 3 6 [root@shadrach rich]$Листинг 3.5. Пример работы команды setserial
В первой строке листинга 3.5 присутствует команда setserial с опцией -g, с помощью которой на экран выводится информация о конфигурации последовательных портов. Запускать команду setserial следует только с правами пользователя root. В строках 2–5 представлена информация о последовательных портах для данной системы на базе ОС Linux в ответ на запрос команды setserial. В каждой строке представлена информация об отдельном порте. Обратите внимание, что в строке 4 не указан тип UART (стоит "unknown") для порта ttyS2, так как этот порт не используется. Это может ввести вас в заблуждение, поскольку порта просто нет физически.
С помощью одной или нескольких опций, введенных в командной строке с командой setserial, можно управлять выводом информации на экран. По умолчанию вывод на экран с помощью команды setserial производится с опцией -v, как это показано в листинге 3.5. Если задать опцию -b, то выводятся обобщенные данные. Например:
/dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A.
Здесь та же информация представлена в компактном виде. Опция -a используется для получения подробного отчета о конфигурации порта. Например:
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4 Baud_base: 115200, close_delay: 50, divisor: 0 closing_wait: 3000, closing_wait2: infinite Flags: spd_normal skip_test auto_irq session_lockout.
Опция -a отображает значения всех параметров, используемых операционной системой Linux для управления портом. Все эти параметры можно устанавливать, задавая команду setserial в первом формате, как было показано выше. В табл. 3.4 приведены параметры, которые можно изменять с помощью команды setserial.
Команде setserial всегда нужно задавать устройство, с которым она будет работать. Если используются значения адресов ввода-вывода и номера прерывания IRQ по умолчанию, то их можно не указывать в командной строке. Далее все параметры можно вводить в командной строке в произвольном порядке. Например:
setserial /dev/ttyS3 autoconfigure auto_irq skip_test
Этой строкой мы пытаемся автоматически сконфигурировать последовательный порт СОМ4.
Сценарии для setserial
Так же, как и в случае программы ifconfig, все настройки, сделанные программой setserial, при перезагрузке ядра ОС Linux стираются. Таким образом, команду setserial следует выполнять для каждого СОМ-порта в системе при каждой загрузке. Так как это довольно важная функция, то большинство распространителей ОС Linux включают в свои версии сценарии для выполнения команды setserial в процессе загрузки системы.