Назад | Перейти на главную страницу

Как запустить qemu прямо в консоли (* не * в curses или SDL)

Я, кажется, припоминаю, что смог запустить qemu только с выходом эмулятора терминала, с отключенным графическим окном. И здесь я не имею в виду, что интерфейс ncurses хорош, но я хочу, чтобы вывод шел прямо в мой терминал, чтобы облегчить вырезание и вставку.

Я пытался:

qemu -nographic binary.img # simply no display
qemu -curses binary.img # nice text output, but not directly flowing in the terminal
qemu -noframe -curses binary.img # same as above
qemu -nographic -curses binary.img

Я предполагаю, что приемлемым обходным путем для меня будет возможность изменить размер консоли curses, чтобы она соответствовала терминалу, который я использую. Прямо сейчас это раздражает, потому что не подходит под размер терминала ...

qemu -curses  binary.img



           SeaBIOS (version 1.7.0-20120603_194846-gandalf)



           iPXE (http://ipxe.org) 00:03.0 C900 PCI2.10 PnP PMM+07FC86A0+07F886A0 C900


           Booting from Hard Disk...
           [...]

Обратите внимание, как дисплей имеет отступ на 12 пробелов? Раздражает. :)

Старый вопрос, но он все еще может интересовать людей.

Краткий ответ:

qemu -nographic -serial mon:stdio -append 'console=ttyS0' binary.img

ttyS0 действительно на большинстве ПК. в системе ARM было бы что-то другое.

Затем последовательный порт и QEMU мультиплексируются на вашем выходе. Вы можете переключаться между ними с помощью ctrl-A + C + ENTER.

Длинный ответ: проверьте этот блог, это круто.

Установить СГАБИОС - ISTR, что последние версии Qemu используют его автоматически при запуске с -nographic.

Вы можете обновить GRUB, чтобы передать ядру необходимые параметры. Я использую Ubuntu 18.04, и я сделал следующее:

Обновите grub в гостевой ОС:

  • sudoedit /etc/default/grub
  • + Изменить GRUB_CMDLINE_LINUX="" к GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
  • бегать sudo update-grub

Перезагрузите гостевую ОС, используя следующее:

qemu-system-x86_64 \
  -drive file=ubuntu-18.04-live-server-amd64.img.qcow2,format=qcow2 \
  -nographic \
  -m 4G \
;

Рекомендую добавить -nic user,hostfwd=tcp:127.0.0.1:2222-:22 или аналогичный вариант, это позволит подключиться по ssh через ssh -p 2222 localhost что дает немного более приятный интерфейс, чем консоль.

Параметры консоли скопированы из Удаленный последовательный порт tldp HOWTO