Qemuを使用してLinuxカーネルのブートシーケンスをデバッグしようとしていますが、実行しているコマンドは次のとおりです。
qemu -serial stdio -kernel <path to kernel> -hda <path to rootfs> -append "root=/dev/sda terminal = ttyS0"
ブート中、すべてのカーネルメッセージがQEMUウィンドウに出力されます。ブートが完了したときのみ、QEMUを実行した端末にプロンプトを戻します。
これで、実行中のカーネルターミナルの使用を開始でき、QEMUウィンドウではなくターミナルで出力を確認できます。
QEMUウィンドウではなく、端末へのブートメッセージを含むすべてのメッセージを取得するにはどうすればよいですか(そのウィンドウで上にスクロールできないため)。
-serial stdio
パラメータを削除-nographic
パラメーターを追加terminal = ttyS0
をconsole=ttyS0
に変更します。これでうまくいくはずです。qemu -nographic -kernel ./bzImage -hda ./image.hda -append root=/dev/sda console=ttyS0
カーネル開発に使用するスクリプトを確認することをお勧めします。 https://github.com/arapov/wrap-qemukvm 「ただし、便利なqemu
cli
パラメーターがあります)
これを参照してください Qemuコンソールをファイルまたはホスト端末にリダイレクトしますか? qemuと端末の両方でログを取得します.use "console=ttyAMA0,115200 console=tty highres=off console=ttyS0"
Qemu出力をターミナルにリダイレクトすると、問題が発生する可能性があります(個人的には気に入らない)。 -noframe
(新しいウィンドウを作成しますが、ウィンドウフレームは作成しません)や-curses
などのオプションを使用して、ターミナルでqemu出力を体験できます。