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:


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:

  1. In /etc/default/grub, add the line


    or, if you already have a GRUB_CMDLINE_LINUX setting, append nomodeset to it.

  2. In /etc/default/console-setup, replace




    or, alternatively, do not run /etc/init.d/console-setup in the rcS unlevel (e.g. using update-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:

vga=normal nomodeset
  • When I do this, I get vga=normal is deprecated. use gfxpayload=text before linux command instead. – einpoklum Mar 24 '13 at 21:40
  • OK, you can do that. – Michael Hampton Mar 24 '13 at 21:40
  • Well, you haven't quite answered my question but I've figured it out thanks to your answer. – einpoklum Mar 24 '13 at 21:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.