I'm installing Debian Wheezy (7.0rc1) on a box of mine. For reasons I won't go into here, I don't want the framebuffer to be used for the console display during boot (nor afterwards). To avoid this, I added:
GRUB_TERMINAL=console
GRUB_GFXPAYLOAD_LINUX=keep
to /etc/default/grub
. And indeed, I get text mode in grub, and for the first couple of seconds when booting. But then, the console switches to that infernal framebuffer! :
[ 4.407402] Console: switching to colour frame buffer device 128x48
[ 4.408544] fb0: nouveaufb frame buffer device
(that's an excerpt from /var/log/dmesg
.)
I couldn't find a trace of it anywhere in the /etc/init.d
scripts. I thought maybe it has something to do with kernel modules loading - I didn't find anything interesting in /etc/modules
or /etc/modprobe.d
either.
So, when/where does this happen? And how can I avoid this switch?
(based on @MichaelHampton's answer)
The Linux kernel sets the display mode, apparently, even before the init process runs. Now, the kernel takes parameters from the boot loader - so the thing to do is to set the parameter telling it not to switch display mode. However, this is not the whole story: After the display mode has been set, there's also a setting of fonts which in itself kind of botches up your display; on Debian Wheezy, this is done by
/etc/init.d/console-setup
, so you also have to consider what it does exactly.To be more concerte, what you should do is the following:
In
/etc/default/grub
, add the lineor, if you already have a
GRUB_CMDLINE_LINUX
setting, appendnomodeset
to it.In
/etc/default/console-setup
, replacewith
or, alternatively, do not run
/etc/init.d/console-setup
in the rcS unlevel (e.g. usingupdate-rc.d
command).As far as I can tell, the "VGA" font is the same as the one you're already supposed to have, so the change of font shouldn't have any effect if you choose this. However, I'm not entirely sure that's universally true, so maybe you're better off just avoiding the font change altogether.
Append the following to the kernel command line: