Назад | Перейти на главную страницу

Где / когда система 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 устанавливает режим отображения, видимо, еще до процесс инициализации бежит. Теперь ядро ​​занимает параметры из загрузчика - поэтому нужно установить параметр, запрещающий переключать режим отображения. Однако это еще не все: после того, как режим отображения был установлен, есть также настройка шрифтов, которая сама по себе как бы портит ваш дисплей; в 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 (например, используя update-rc.d команда).

    Насколько я могу судить, шрифт "VGA" такой же, как и тот, который у вас уже должен быть, поэтому изменение шрифта не должно иметь никакого эффекта, если вы выберете его. Однако я не совсем уверен, что это универсально верно, так что, возможно, вам лучше вообще избегать изменения шрифта.

Добавьте в командную строку ядра следующее:

vga=normal nomodeset