Linux 系统在何处/何时更改控制台显示模式?

Linux 系统在何处/何时更改控制台显示模式?

我正在我的一个盒子上安装 Debian Wheezy (7.0rc1)。出于这里不详述的原因,我不希望在启动期间(或之后)将帧缓冲区用于控制台显示。为了避免这种情况,我添加了:

GRUB_TERMINAL=console
GRUB_GFXPAYLOAD_LINUX=keep

/etc/default/grub。事实上,我在 grub 中获得了文本模式,并且在启动的前几秒钟也是如此。但随后,控制台切换到那个可恶的帧缓冲区!:

[    4.407402] Console: switching to colour frame buffer device 128x48
[    4.408544] fb0: nouveaufb frame buffer device

(这是摘录自的/var/log/dmesg。)

我在脚本中找不到它的踪迹/etc/init.d。我想这可能与内核模块加载有关 - 我没有发现任何有趣的/etc/modules东西/etc/modprobe.d

那么,这种情况何时/何地发生?我该如何避免这种转变?

答案1

(基于@MichaelHampton 的回答

Linux 内核显然在初始化进程运行。现在,内核参数从引导加载程序 - 因此要做的是设置参数告诉它不要切​​换显示模式。然而,这并不是全部:设置显示模式后,还有字体设置,这本身会破坏您的显示;在 Debian Wheezy 上,这是由 完成的/etc/init.d/console-setup,因此您还必须考虑它到底做了什么。

更具体地说,您应该做以下事情:

  1. /etc/default/grub,添加行

     GRUB_CMDLINE_LINUX="nomodeset"
    

    或者,如果您已经有GRUB_CMDLINE_LINUX设置,请将其附加nomodeset到其中。

  2. 在 中/etc/default/console-setup,替换

    FONTFACE="Fixed"
    

    FONTFACE="VGA"
    

    或者,不要/etc/init.d/console-setup在 rcS unlevel 中运行(例如使用update-rc.d命令)。

    据我所知,“VGA”字体与你本来应该有的字体相同,因此如果你选择这个,字体的改变应该不会有任何影响。但是,我并不完全确定这是否普遍适用,所以也许你最好完全避免字体更改。

答案2

将以下内容附加到内核命令行:

vga=normal nomodeset

相关内容