Получите два Linux (виртуальных) бокса, говорящих через последовательный порт - PullRequest
4 голосов
/ 16 сентября 2008

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

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

Ответы [ 3 ]

5 голосов
/ 16 сентября 2008

Linux Serial HOWTO содержит много подробной информации о последовательной связи в целом. Более конкретная Linux Remote Serial Console HOWTO - это то, что вы действительно ищете, если хотите иметь возможность входить в ваши виртуализированные системы с использованием последовательного порта, как если бы вы находились на консоли. Как указал Хейн, вам понадобится нуль-модемный кабель и необходимо запустить Minicom на удаленном терминале.

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

0 голосов
/ 16 сентября 2008

Скажем, вы делаете это на /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;

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

0 голосов
/ 16 сентября 2008

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

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

...