Next Previous Contents

5. Setting up serial lines and consoles

仮想マシンがもっている仮想的なシリアル回線とコンソールは、コマンドラインなどで指定すれば、ホストOSのいろいろなデバイスにくっつけることができます。

たとえば、仮想マシンのシリアル回線をホストOSの仮想端末にくっつけたり、それ以外にも、コンソール、ファイルディスクプリタにくっつけることができます。TCP/IPのポートにListenさせることすら可能です。だから、こんなことができます。

これらをするときのコマンドライン書式はこれです。→ device=channel.

5.1 Specifying the device

デバイスは、"con" or "ssl" (それぞれコンソール、シリアル)で指定できる。さらに、コンソールの何番、とか指定したいなら、それも入れてください。

数字なしで "con" or "ssl" とかやると、コンソール、シリアルのすべてを指定してしまいます。コンソールの3番やシリアルの10番を指定したいなら、それぞれこのような指定になる → "con3" and "ssl10" 。

単にcon とか sslとか指定しても、それは、ほかに指定がない場合のいわゆる「デフォルト」を指定しただけです。con1 とか ssl3みたいな、より狭い指定はそれを上書きます。たとえば、シリアル回線を擬似端末に割り当てるけど、最初の二つだけはホストOSのコンソールに割り当てたいのなら、こんな風。

ssl=pty ssl0=tty:/dev/tty0 ssl1=tty:/dev/tty1
なお、上の指定は、「順不同」です。デフォルトを先にするのか、個別指定を先にするのかは問題ではないです。

5.2 Specifying the channel

仮想マシンにつなげられるホストOS上のデバイスはいろいろあります。それぞれの指定の仕方は微妙に異なっていますので、ひとつひとつ解説していきます。

コンマで区切って二つのデバイスを指定することにより、それぞれを入力、出力に割り当てられる。

ssl3=tty:/dev/tty2,xterm
これは、仮想マシンのシリアル回線の3番に、 ホストOSのtty2 を入力に、ホストOSのxtermを画面出力に、という組み合わせを割り当てる。 ただし、これは、無意味な例です。

仮想マシンの con0をホストOSの標準入出力以外に割り当てると、 仮想マシンのブート時の出力はUMLを走らせたホストOSの端末上に現れる。 しかし、ブート過程においてコンソールドライバが初期化されると、 それ以降のブート時の出力は、con0をどこに割り当てたかで決定されます。

5.3 Examples

今まで説明してきた機能を使った例をいろいろ挙げます。

これにより、例の「respawning too fast」などのメッセージがなくなります。

con=pty con0=fd:0,fd:1
これは、仮想マシンのコンソールを、ホストOSの使われてない仮想コンソールに割り当てます。 これにより、その仮想コンソールには、ホストOSのログインプロンプトではなく、 仮想マシンのログインプロンプトが現れます。
con1=tty:/dev/tty6
二つの仮想マシンを(仮想的な)シリアル回線で結ぶことができます。 You can attach two virtual machines together with what amounts to a serial line as follows:

ひとつの仮想マシンで、シリアル回線を擬似端末に結び付けます。

ssl1=pty
その仮想マシンのブート画面をみて、ホストOSのどの擬似端末を 取得したかを割り出します。なお、この例では/dev/ptyp1を取得したとします。

その擬似端末に対応するホストOSの端末に 仮想マシンのシリアル回線を割り当てた形で、 ほかの仮想マシンを立ち上げます。 tty -

ssl1=tty:/dev/ttyp1
そしてこの仮想マシンにログインします。まず、仮想マシンがシリアル回線をgetty で使ってないことを確認して下さい。 minicom などでシリアル回線に入ります。そうすると、もうひとつの仮想マシンへログインできます。


Next Previous Contents