Qemuゲストコンソール= tty0をstdin / stdoutホストにリダイレクトする方法は?

Qemuゲストコンソール= tty0をstdin / stdoutホストにリダイレクトする方法は?

次の設定オプションを備えたLinuxカーネルがあります。

CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="console=tty0 init=/init"
CONFIG_CMDLINE_OVERRIDE=y

私は次のようにQemuを実行します。

qemu-system-x86_64 -nographic -kernel my-vmlinuz

-nographicゲストがttyS0代わりにtty0ホストstdin/に暗黙的に接続されているため、これは(正しく)出力を表示しませんstdout。ゲストをtty0ホストstdin/に接続するようにQemuにどのように指示しますかstdout

引用:

答え1

私の考えでは、あなたはできないと思います。仮想端末(tty1など)は、デフォルトでメモリマップされた文字配列(+属性)をシステムに提供するVGAテキストモードの上に実装されています。その後、カーネルは必要に応じて配列に書き込みます。しかし、ファイルストリームはstdout本質的に線形であるため、完全に互換性がありません。

ただし、できることは、qemu -curses次のようにゲストのテキストモードVGA出力を表示することです。または、console=ttyS0カーネルのコマンドラインを入力して、ゲストにシリアルポートをコンソールとして使用させるようにします。 (grubシリアルポートを使用するように設定する必要があります。)

答え2

私は以下があなたに役立つと信じています:

CONFIG_CMDLINE="console=tty0 console=ttyS0,9600n8 init=/init"

これはから来ていますtldp用リモートシリアルコンソールHOWTO

また、見ることができますこの問題

関連情報