Получите два Linux-(виртуальных) блока, взаимодействующих через последовательный порт

StackOverflow https://stackoverflow.com/questions/69692

Вопрос

Каков наилучший способ настроить один Linux-блок на прослушивание входящих подключений через его последовательный порт?Я много гуглил, но не могу найти нужную комбинацию команд, чтобы действительно заставить их заговорить!

Моя основная цель - предоставить последовательный интерфейс для запущенных экземпляров виртуальных машин kvm / qemu.В настоящее время у них есть только интерфейс VNC (они находятся на безголовых серверах, без X).Я могу заставить виртуальную машину создать последовательное устройство, запустив ее с помощью файла -serial:флаг, но как с ним разговаривать, - это совершенно другая проблема.Обе коробки работают под управлением Ubuntu 8.04.

Это было полезно?

Решение

Тот Самый Руководство по серийному выпуску Linux содержит много подробной информации о последовательной связи в целом.Более конкретный Инструкция по удаленной последовательной консоли Linux это то, что вам действительно нужно, если вы хотите иметь возможность входить в свои виртуальные системы с помощью последовательного порта, как если бы вы находились за консолью.Как указал Хейн, вам понадобится нуль-модемный кабель и необходимо запустить minicom на удаленном терминале.

Консоль Linux используется двумя способами, каждый из которых должен быть настроен отдельно для последовательного использования.Вы можете настроить ядро на копирование своих сообщений через последовательный порт, что иногда бывает интересно для наблюдения за загрузкой системы и практически незаменимо при отладке ядра.(Для этого требуется поддержка ядра и обновление параметров загрузки, чтобы ядро знало, что вы хотите последовательный вывод;видишь глава 5 из второго руководства.) Вероятно, вас больше интересует вход в систему через последовательный порт, для чего требуется запустить getty на последовательном порту после загрузки (точно так же, как ваша система уже запускает getty на виртуальных терминалах после загрузки), что подробно описано в глава 6 из инструкции.

Другие советы

Я предполагаю, что вы подключаете два последовательных порта с помощью кабеля "нуль-модема".

Используйте программу, подобную minicom, для связи с удаленной системой - вероятно, вам потребуется настроить параметры связи и, возможно, отключить аппаратное управление потоком (если к вашему кабелю не подключены линии управления потоком).

Допустим, вы делаете это в /dev/tty1.

в скорлупе

chown *youruser* /dev/tty1

затем в Perl-скрипте, вызываемом example.pl

open PORT, "</dev/tty1" || die "Can't open port: $!";
while (defined ($_ = <PORT>))
{
 do_something($_);
}
close PORT;

Очевидно, что нужно сделать еще кое-что, если вы хотите, чтобы это запускалось автоматически, возрождалось при ошибке и так далее.Но основная идея заключается в том, чтобы считывать данные с последовательного порта как файл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top