4

受信接続をシリアルポートでリッスンするように1つのLinuxボックスをセットアップする最良の方法は何ですか? 私はたくさんのグーグルをしましたが、実際にそれらを話すためのコマンドの正しい組み合わせを見つけることができません!

私の主な目的は、実行中の kvm/qemu VM のインスタンスにシリアル インターフェイスを提供することです。現在、VNC インターフェイスしかありません (ヘッドレス サーバー上にあり、X はありません)。-serial file: フラグを指定して起動することで VM にシリアル デバイスを作成させることができますが、それと通信する方法はまったく別の問題です。どちらのボックスも Ubuntu 8.04 を実行しています。

4

3 に答える 3

5

Linux Serial HOWTOには、一般的なシリアル通信に関する多くの詳細な情報が含まれています。より具体的なLinux リモート シリアル コンソール HOWTOは、コンソールにいるかのようにシリアル ポートを使用して仮想化システムにログインできるようにしたい場合に本当に探しているものです。Hein が指摘したように、ヌル モデム ケーブルが必要で、リモート ターミナルで minicom を実行する必要があります。

Linux コンソールは 2 つの方法で使用され、それぞれをシリアルで使用するために個別に構成する必要があります。シリアル ポート経由でメッセージをコピーするようにカーネルを構成できます。これは、システムの起動を監視するのに役立つ場合があり、カーネルのデバッグを行う場合にはほぼ不可欠です。(これには、シリアル出力が必要であることをカーネルが認識できるように、カーネル サポートとブート パラメータの更新が必要です。2 番目の HOWTO の第5 章を参照してください。)おそらく、シリアル ポート経由でログインすることに関心があるでしょう。そのためには、シリアル ポートで getty を実行する必要があります。起動後 (システムが起動後に仮想端末で getty を実行しているように)、これについては、ハウツーの第 6 章で詳しく説明されています。

于 2008-09-16T16:18:57.703 に答える
0

/ dev/tty1でこれを行っているとします。

シェルで

chown *youruser* /dev/tty1

次に、example.plというPerlスクリプトで

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

明らかに、これを自動的に開始し、エラー時にリスポーンするなどの場合は、さらに多くのことを行う必要があります。しかし、基本的な考え方は、ファイルのようにシリアルポートから読み取ることです。

于 2008-09-16T16:24:00.437 に答える
0

「ヌル モデム」ケーブルを使用して 2 つのシリアル ポートを接続していると仮定します。

minicom のようなプログラムを使用してリモート システムと通信します。おそらく、通信パラメータを設定し、ハードウェア フロー制御をオフにする必要があります (ケーブルにフロー制御ラインが接続されていない場合)。

于 2008-09-16T06:03:37.293 に答える