Вопрос или проблема
Это распространенный способ установки разрешения текстовых консолей (которые обычно доступны с помощью Ctrl-Alt-F1 через Ctrl-Alt-F6), используя параметр ядра vga=...
. Я использую Ubuntu 10.04 Lucid, вывод uname -a
следующий:
Linux 2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:13:52 UTC 2011 x86_64 GNU/Linux
Для определения доступных режимов я использую sudo hwinfo --framebuffer
, который сообщает:
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.464]
Unique ID: rdCR.R1b4duaxSqA
Hardware Class: framebuffer
Model: "NVIDIA G73 Board - p456h1 "
Vendor: "NVIDIA Corporation"
Device: "G73 Board - p456h1 "
SubVendor: "NVIDIA"
SubDevice:
Revision: "Chip Rev"
Memory Size: 256 MB
Memory Range: 0xc0000000-0xcfffffff (rw)
Mode 0x0300: 640x400 (+640), 8 bits
Mode 0x0301: 640x480 (+640), 8 bits
Mode 0x0303: 800x600 (+800), 8 bits
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x0307: 1280x1024 (+1280), 8 bits
Mode 0x030e: 320x200 (+640), 16 bits
Mode 0x030f: 320x200 (+1280), 24 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Mode 0x0312: 640x480 (+2560), 24 bits
Mode 0x0314: 800x600 (+1600), 16 bits
Mode 0x0315: 800x600 (+3200), 24 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x0318: 1024x768 (+4096), 24 bits
Mode 0x031a: 1280x1024 (+2560), 16 bits
Mode 0x031b: 1280x1024 (+5120), 24 bits
Mode 0x0330: 320x200 (+320), 8 bits
Mode 0x0331: 320x400 (+320), 8 bits
Mode 0x0332: 320x400 (+640), 16 bits
Mode 0x0333: 320x400 (+1280), 24 bits
Mode 0x0334: 320x240 (+320), 8 bits
Mode 0x0335: 320x240 (+640), 16 bits
Mode 0x0336: 320x240 (+1280), 24 bits
Mode 0x033d: 640x400 (+1280), 16 bits
Mode 0x033e: 640x400 (+2560), 24 bits
Config Status: cfg=new, avail=yes, need=no, active=unknown
Похоже, доступно много высокоразрешающих режимов, таких как 0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b (кстати, что означает число после плюса в списке режимов?). Однако установка любого из этих режимов в строке опций ядра, например, vga=0x305
, приводит либо к полностью черной текстовой консоли, либо к экрану, заполненному мигающими цветными/черно-белыми точками.
Каков ‘современный’, ‘надежный’ способ установить высокое разрешение в текстовых консолях?
Новые ядра по умолчанию используют KMS, так что вам следует отказаться от добавления vga=
в строку grub, так как это будет конфликтовать с родным разрешением KMS. Однако это зависит от используемого вами видеодрайвера: проприетарный драйвер Nvidia не поддерживает KMS, но можно найти обходной путь.
Вы должны иметь возможность получить полное разрешение в framebuffer, редактируя ваш /etc/default/grub
и убедившись, что GFXMODE
установлен правильно, а затем добавив запись GFXPAYLOAD
следующего вида:
GRUB_GFXMODE=1680x1050x24
# Хак для принуждения более высокого разрешения framebuffer
GRUB_GFXPAYLOAD_LINUX=1680x1050
Не забудьте после этого выполнить sudo update-grub
.
Для более новых дистрибутивов Debian & Ubuntu с использованием Nvidia, мне пришлось сделать следующее:
Во-первых, отредактируйте /etc/default/grub
. Измените следующую строку:
#GRUB_GFXMODE=640x480
на это:
GRUB_GFXMODE=1280x800
GRUB_GFXPAYLOAD_LINUX=keep
замените 1280×800 на нужное разрешение.
Затем:
echo "echo FRAMEBUFFER=y" | sudo tee /etc/initramfs-tools/conf.d/splash
sudo update-initramfs -u
sudo update-grub
Чтобы просто изменить размер шрифта, вы можете это сделать, используя следующую команду:
sudo dpkg-reconfigure console-setup
Используйте sudo hwinfo --framebuffer
, как описано, выберите видеорежим, который вы бы хотели видеть во время загрузки в консоли, затем добавьте опцию vga=nnn
в параметры загрузки ядра.
Единственный трюк заключается в том, что nnn
— это видеорежим, который вы выбрали из списка, произведенного hwinfo
, ПРЕОБРАЗОВАННЫЙ В ДЕСЯТИЧНЫЙ ФОРМАТ.
Если вы попытаетесь vga=0xwhatever
, это не сработает.
Например, я выбрал видеорежим 0x307 (1280×1024 (+1280), 8 бит), я преобразовал 0x307 в десятичное значение, что составляет 775, и затем я использовал vga=775
в параметрах загрузки isolinux/extlinux.
Вы можете использовать printf для перевода из шестнадцатеричного в десятичное:
$ printf "%d\n" 0x307
775
И я получил красивый мелкий текст на всех консолях с самого начала.
Успех!
Обновление:
(возможное решение для некоторых из нас, кто внес изменения в файлы конфигурации и не смог достичь успеха):
Я пытался достичь этого около шести месяцев и не добился успеха. Все методы, которые я находил с тех пор, совсем не работали с моей системой.
Затем я каким-то образом узнал, что нужно…
отключить CSM (Compatibility Support Module) в разделе загрузки системного BIOS, чтобы методы, показанные в приведенных выше ответах, действительно работали.
Когда у вас включен CSM в разделе загрузки BIOS, “EFI GOP Drive” будет показывать только до 1280×1024 или что-то вроде (videoinfo / vbeinfo или что бы вы ни сказали в командной строке GRUB), и, как только вы отключите CSM, вы получите полное разрешение дисплея, поддерживаемое вашим монитором. И тогда вам нужно писать всю конфигурацию, как показано в приведенных выше ответах.
Опять же повторяю, вы не получите поддержки полного разрешения, если не отключите CSM в BIOS.
Оригинал (фрустрированное состояние разума):
Прошу прощения. Это нестандартный ответ. Я здесь только для того, чтобы сказать, что ни один из вышеприведенных ответов не работает для Debian 10.6 (Bullseye), Kernel 5.10.13.
UEFI BIOS с EFI загрузкой, HDMI-0 через Nvidia GTX 1060 с проприетарным драйвером, i7-5775C на материнской плате Z97.
.
Ответ или решение
Настройка разрешения текстовой консоли на операционных системах, таких как Ubuntu 10.04 Lucid, может вызвать некоторые затруднения, особенно если традиционные методы, такие как использование параметра vga=...
, не дают желаемых результатов. Давайте разберем, как можно решить эту проблему на примере вашей ситуации.
Теория
Ранее для настройки разрешения текстовых консолей использовали параметр vga=...
в конфигурации загрузчика, который передавал нужное разрешение ядру Linux. Однако, с появлением более новых версий ядра и технологий, таких как управление режимами ядра (KMS), подход изменился. KMS позволяет ядру Linux самостоятельно управлять видеорежимами, что улучшает поддержку графики и её совместимость. Поэтому использование старого подхода vga=...
может привести к конфликтам и неправильной работе, как в вашем случае — это проявляется в черном экране или мерцающих точках.
Пример
Рассмотрим, какие шаги нужно предпринять для использования современных методов настройки разрешения. В вашем случае, для системы с ядром версии 2.6.32-33 и графической картой NVIDIA, нужно учитывать отсутствие поддержки KMS в проприетарных драйверах NVIDIA. Это требует индивидуального подхода:
-
Настройка GRUB:
- Откройте файл конфигурации
/etc/default/grub
для редактирования. - Убедитесь, что строка
GRUB_GFXMODE
задана с нужным разрешением, например:GRUB_GFXMODE=1280x1024x24
- Добавьте следующее, чтобы сохранить это разрешение в Linux framebuffer:
GRUB_GFXPAYLOAD_LINUX=keep
- Сохраните изменения и выполните команду
sudo update-grub
для обновления настроек загрузчика.
- Откройте файл конфигурации
-
Настройка Initramfs:
- Для применения изменения, возможно, потребуется обновить initramfs. Для этого выполните:
echo "FRAMEBUFFER=y" | sudo tee /etc/initramfs-tools/conf.d/splash sudo update-initramfs -u
- Для применения изменения, возможно, потребуется обновить initramfs. Для этого выполните:
-
Конвертация и использование VESA Mode:
- Если захочется испробовать метод через
vga=...
, то необходимо конвертировать VESA код в десятичный формат. Например, для0x307
(1280×1024), нужно выполнить:printf "%d\n" 0x307
Это даст вам значение
775
, и в итоге параметр будет выглядеть какvga=775
.
- Если захочется испробовать метод через
-
Проверка BIOS:
- Убедитесь, что в BIOS отключен CSM (Compatibility Support Module). Включенный CSM может ограничивать разрешение, доступное в режимах EFI, влияя на разрешения, доступные ядру и GRUB.
Применение
После выполнения вышеописанных шагов вы должны заметить изменения в разрешении на текстовой консоли. Важно помнить, что современные методы настройки требуют понимания работы системы и подбора корректных параметров для каждого окружения, особенно если используется специфическое железо или проприетарные драйверы.
Кроме того, всегда актуально обновлять не только конфигурации, но и саму систему до более поздних версий, которые могут иметь улучшения в области поддержки графических режимов и драйверов. Пробуйте комбинировать различные подходы, особенно с учетом возможностей вашей системы, и помните о необходимости резервного копирования перед внесением серьёзных изменений в конфигурацию системы.