我正在我的一个盒子上安装 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
Linux 内核显然在初始化进程运行。现在,内核参数从引导加载程序 - 因此要做的是设置参数告诉它不要切换显示模式。然而,这并不是全部:设置显示模式后,还有字体设置,这本身会破坏您的显示;在 Debian Wheezy 上,这是由 完成的/etc/init.d/console-setup
,因此您还必须考虑它到底做了什么。
更具体地说,您应该做以下事情:
在
/etc/default/grub
,添加行GRUB_CMDLINE_LINUX="nomodeset"
或者,如果您已经有
GRUB_CMDLINE_LINUX
设置,请将其附加nomodeset
到其中。在 中
/etc/default/console-setup
,替换FONTFACE="Fixed"
和
FONTFACE="VGA"
或者,不要
/etc/init.d/console-setup
在 rcS unlevel 中运行(例如使用update-rc.d
命令)。据我所知,“VGA”字体与你本来应该有的字体相同,因此如果你选择这个,字体的改变应该不会有任何影响。但是,我并不完全确定这是否普遍适用,所以也许你最好完全避免字体更改。
答案2
将以下内容附加到内核命令行:
vga=normal nomodeset