SerialLogin

Материал из ALT Linux Wiki

Как настроить вход на машину через последовательный порт (Serial Login)

Для чего может понадобиться вход на Linux-машину через последовательный порт? Да мало ли для чего — например, если других способов связи нет, или для подключения к «безголовой» машине, конфигурация сети которой в общем случае неизвестна. В общем, бывает нужно.

Напомню, что последовательные порты в Linux именуются в виде файлов /dev/ttyS* (на месте звёздочки может быть любой номер порта, начиная с нуля). Иногда, если используются адаптеры COM2USB, порты могут именоваться /dev/ttyUSB* (тоже начиная с нуля).

Для настройки входа через последовательный порт вам надо выполнить два обязательных шага и, возможно, один необязательный:

Установка mgetty

В ALT Linux вход по модемным линиям (здесь я их не рассматриваю) и последовательным портам обслуживает утилита mgetty. Для настройки входа вам нужно установить её. Сделайте это обычным методом (apt-get, aptitude, synaptic).

/etc/inittab

Нужно поправить файл /etc/inittab, указать init-у запускать mgetty на нужных портах. Формат файла довольно прост и хорошо комментирован (в частности, есть пример и для mgetty). Подробности можно уточнить в inittab(5).

Например, это может выглядеть так:

~ # grep -iE '^[^#].*mgetty' /etc/inittab
T3:23:respawn:/sbin/mgetty -r -s 9600 -x 0 ttyS0
T4:23:respawn:/sbin/mgetty -r -s 9600 -x 0 ttyS1

Эти параметры (с которыми init запустит mgetty для первых двух последовательных портов) означают, что что на портах /dev/ttyS[01] (mgetty сам умеет добавлять /dev/) ожидаются прямые (-r, то есть, с других компьютеров/терминалов, в противоположность модемным) соединения со скоростью 9600 бод (-s) и с уровнем отладочной информации равным нулю (-x). Изменения вступят в силу лишь после прочтения файла init-ом (в результате команды telinit q от суперпользователя или перезагрузки машины).

Дополнительную краткую информацию по вызову mgetty можно почерпнуть из mgetty(8).

/etc/mgetty+sendfax/mgetty.config

Это необязательный шаг. Всё поведение mgetty контролируется ключами командной строки, однако если вы захотите задать параметры в отдельном файле (и перенести туда все специфичные для портов параметры), то для этого есть файл /etc/mgetty+sendfax/mgetty.config. Сдесь вы можете задать как параметры, общие для всех портов, так и индивидуальные параметры линий. Подробности (а так же множество другой информации по последовательному входу) можно уточнить в полном руководстве — info mgetty.

Проверка

Для проверки надо присоединить к только что настроенному порту кабель (COM2USB или DB-9 «мама-мама», для соединения с другим компьютером, либо другие кабеля, для другого оборудования), запустить терминальную программу (cu, minicom, cutecom), указать ей параметры соединения — порт (на машине откуда соединяемся) и скорость (указанную при запуске mgetty) и дать команду на соединение. В случае успеха на экран ничего не выводится — надо попробовать нажать несколько буквенно-цифовых (не функциональных) клавиш, чтобы mgetty распознал, что его зовут. Если всё хорошо — mgetty откликнется приглашением login:. Можно вводить имя пользователя и пароль, как обычно. Заметьте, что по умолчанию ALT Linux не пускает пользователя root через последовательные порты. Вы можете это изменить, поправив файл /etc/securetty.