Как Linux определяет разрешение экрана при запуске или на лету?

Я хочу наложить пользовательское разрешение на встроенную цель Linux, которая будет иметь пользовательский интерфейс, не основанный на X-сервере.

Как Linux перенастраивает систему, когда обнаруженное разрешение не является одним из стандартных разрешений?

Также, если возможно, направьте меня к тексту, который объясняет механизм инициализации графики при запуске.

ТИА.

1 ответ1

2

В системе на базе x86 ядро Linux будет использовать функцию под названием VESA BIOS Extensions для установки разрешения во время загрузки.

Если вы хотите, чтобы консоль работала с определенным разрешением, вы должны передать ядру vga=X+0x200 во время загрузки, где X - это код VESA BIOS для вашего конкретного разрешения.

Скажем, например, вы хотите 1600x1200 при 24-битном цвете:

    Нестандартный идентификатор VESA для этого разрешения - 0x011F (287).

    Linux, с другой стороны, идентифицирует это как 0x011F + 0x0200 = 0x031F (799).

        Вы бы добавили vga=799 в строку загрузки, чтобы получить 1600x1200 с 24-битным цветом.

Этот код не гарантированно работает на всех видеокартах, VESA давно прекратила публиковать коды стандартного разрешения, оставив нестандартное разрешение выше 1280x1024.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .