我正在我的一个盒子上安装 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
。
那么,这会在何时/何地发生?我怎样才能避免这种转变?
(基于@MichaelHampton 的回答)
显然,Linux 内核甚至在init 进程运行之前就设置了显示模式。现在,内核从引导加载程序获取参数- 所以要做的是设置参数告诉它不要切换显示模式。然而,这还不是全部:在设置显示模式后,还有一个字体设置本身会破坏您的显示;在 Debian Wheezy 上,这是由 完成的
/etc/init.d/console-setup
,因此您还必须考虑它到底做了什么。为了更协调,你应该做的是:
在
/etc/default/grub
中,添加行或者,如果您已有
GRUB_CMDLINE_LINUX
设置,请附加nomodeset
到它。在
/etc/default/console-setup
, 替换和
或者,或者,不要
/etc/init.d/console-setup
在 rcS unlevel 中运行(例如使用update-rc.d
命令)。据我所知,“VGA”字体与您应该拥有的字体相同,因此如果您选择此字体,更改字体应该不会有任何影响。然而,我不完全确定这是普遍正确的,所以也许你最好避免完全改变字体。
将以下内容附加到内核命令行: