Перенаправить вывод окна QEMU на терминал, работающий qemu

Im пытается отладить последовательность загрузки ядра Linux с помощью qemu, команда, которую я запускаю:

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

Во время загрузки все сообщения ядра печатаются в окне QEMU. Только когда загрузка завершилась, я вернусь обратно к терминалу, в который я запустил QEMU.

Теперь я могу начать использовать терминал ядра, который я запускаю, и видеть вывод в терминале, а не в окне QEMU.

Как получить все сообщения, включая загрузочные сообщения, на мой терминал, а не в окно QEMU (потому что я не могу прокручивать вверх в этом окне..)?

Ответы

Ответ 1

  • удалить параметр -serial stdio
  • добавить -nographic параметр
  • и измените параметр ядра terminal = ttyS0 на console=ttyS0. Это должно сделать трюк.

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

Вы можете проверить script, который я использую для разработки ядра: https://github.com/arapov/wrap-qemukvm (это не очень "производство", но вы может найти полезные qemu cli параметры там)

Ответ 3

Перенаправление вывода Qemu на терминал может вызвать некоторые проблемы (лично мне это не нравится). Вы можете использовать такие опции, как -noframe (это создаст новое окно, но не будет какого-либо оконного фрейма) или -curses, чтобы получить вывод qemu на терминале.

Ответ 4

В окнах запуск qemu с параметром -nographic не работает! У меня была такая же проблема с черной консолью экрана после загрузки на debian (архитектура sparc) Консоль [tty0] включена, bootconsole disabled

Решение заключается в установке VNC Client и добавлении параметра "-vnc 127.0.0.1:20" в qemu-system-xyz. После запуска виртуальной машины, от клиента VNC, подключенного к 127.0.0.1:20, нажмите ctrl-alt-3 и дождитесь сообщения для входа.