Перенаправить вывод окна QEMU на терминал с запущенным qemu
Я пытаюсь отладить последовательность загрузки ядра Linux с помощью qemu, команда, которую я запускаю:
qemu -serial stdio -kernel <path to kernel> -hda <path to rootfs> -append "root=/dev/sda terminal = ttyS0"
Во время загрузки все сообщения ядра выводятся в окно QEMU. Только когда загрузка закончится, я получаю приглашение обратно в терминал, в котором я запускаю QEMU.
Теперь я могу начать использовать терминал ядра, на котором я работаю, и видеть вывод в терминале, а не в окне QEMU.
Как мне получить все сообщения, включая загрузочные сообщения, на мой терминал, а не в окно QEMU (потому что я не могу прокрутить вверх в этом окне...)?
4 ответа
- Удалить
-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
параметров нету)
Передать эту консоль Redirect Qemu в файл или на хост-терминал? чтобы получить лог как на qemu, так и на вашем терминале.use "console=ttyAMA0,115200 console=tty highres=off console=ttyS0"
Перенаправление вывода Qemu на терминал может вызвать некоторые проблемы (лично мне это не нравится). Вы можете использовать такие параметры, как -noframe
(это создаст новое окно, но не будет оконной рамки) или -curses
испытать выход qemu на терминале.
В Windows запуск qemu с опцией -nographic не работает! У меня была такая же проблема с консолью черного экрана после загрузки на Debian (архитектура sparc)
Решение состоит в том, чтобы установить клиент VNC и добавить параметр "-vnc 127.0.0.1:20" в qemu-system-xyz. После запуска виртуальной машины, с VNC-клиента, который вы подключаетесь к 127.0.0.1:20, нажмите ctrl-alt-3 и дождитесь сообщения входа в систему.