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
。那麼,這種情況何時/何地發生?我怎樣才能避免這種轉變?
顯然,Linux 核心甚至在init 程序執行之前就設置了顯示模式。現在,核心從引導載入程序中獲取參數——所以要做的就是設置參數告訴它不要切換顯示模式。然而,這還不是全部:設置顯示模式後,還有一個字型設置,它本身就有點搞砸了你的顯示;在 Debian Wheezy 上,這是由 完成的
/etc/init.d/console-setup
,因此您還必須考慮它究竟做了什麼。為了更加一致,你應該做的是:
- 在
/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”字型與您應該擁有的字型相同,因此如果您選擇此字型,更改字型應該不會有任何影響。但是,我不完全確定這是普遍正確的,所以也許你最好完全避免字型更改。