The QEMU options
-display curses and
-nographic -device sga (the serial graphics adapter) are very convenient for running QEMU outside of a graphical environment.
(think: remote ssh connection, rescue system etc.)
Both modes fail to work with framebuffer text mode, though. The new default with some Linux distirbutions (e.g. Fedora 25) seems to be that at some point during boot a framebuffer text mode seems to be activated such that with
-display curses QEMU just displays '1024x768 Graphic mode'. With SGA just nothing is printed.
Thus my question: how can I force the kernel (and the rest of startup) to just use the old-school initial text mode?
nomodeset kernel parameter (and removing the
rhgb one) doesn't make a difference.
Most convenient would be some QEMU configuration that forces the kernel to just detect the most basic text mode - since the guest wouldn't have to be modified.
Setting up a serial console (via e.g. adding the
console=ttyS0 kernel parameter to the guest) works in my environment, but I observed some escape sequence issues with the Gnome terminal. Also this doesn't help with boot loaders that already use the framebuffer (e.g. the one on the Fedora 25 server ISO) - and needs a modification of the guest.
Fedora Guest Example
With Fedora 25 as guest, the switch to the framebuffer happens during initrd runtime, some log messges (from the serial console):
[ 1.485115] Console: switching to colour frame buffer device 128x48 [ 1.493184] bochs-drm 0000:00:02.0: fb0: bochsdrmfb frame buffer device [ 1.502492] [drm] Initialized bochs-drm 1.0.0 20130925 for 0000:00:02.0 on minor 0
These messages also show up with the
vga=normal (guest) kernel parameters.