webdevqa.jp.net

QEMUウィンドウ出力をqemuを実行している端末にリダイレクトする

Qemuを使用してLinuxカーネルのブートシーケンスをデバッグしようとしていますが、実行しているコマンドは次のとおりです。

  qemu -serial stdio -kernel <path to kernel> -hda <path to rootfs> -append "root=/dev/sda terminal = ttyS0"

ブート中、すべてのカーネルメッセージがQEMUウィンドウに出力されます。ブートが完了したときのみ、QEMUを実行した端末にプロンプ​​トを戻します。

これで、実行中のカーネルターミナルの使用を開始でき、QEMUウィンドウではなくターミナルで出力を確認できます。

QEMUウィンドウではなく、端末へのブートメッセージを含むすべてのメッセージを取得するにはどうすればよいですか(そのウィンドウで上にスクロールできないため)。

24
yonigo
  1. -serial stdioパラメータを削除
  2. -nographicパラメーターを追加
  3. カーネルパラメータterminal = ttyS0console=ttyS0に変更します。これでうまくいくはずです。

qemu -nographic -kernel ./bzImage -hda ./image.hda -append root=/dev/sda console=ttyS0

カーネル開発に使用するスクリプトを確認することをお勧めします。 https://github.com/arapov/wrap-qemukvm 「ただし、便利なqemucliパラメーターがあります)

38
Anton

これを参照してください Qemuコンソールをファイルまたはホスト端末にリダイレクトしますか? qemuと端末の両方でログを取得します.use "console=ttyAMA0,115200 console=tty highres=off console=ttyS0"

10
vinay hunachyal

Qemu出力をターミナルにリダイレクトすると、問題が発生する可能性があります(個人的には気に入らない)。 -noframe(新しいウィンドウを作成しますが、ウィンドウフレームは作成しません)や-cursesなどのオプションを使用して、ターミナルでqemu出力を体験できます。

3
rakib_