Режимы работы фреймбуфера: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «При использовании терминальной консоли, а так-же при использования драйвера fbdev, бывает ва...»)
 
 
(не показано 45 промежуточных версий 2 участников)
Строка 1: Строка 1:
При использовании терминальной консоли, а так-же при использования драйвера fbdev, бывает важно задать разрешение, в котором работает фреймбуфер.
{{stub}}
== Введение ==


Для этого надо при загрузке передать ядру параметр работы его работы. Обычно для этого в lilo или в grub задаётся параметр VGA


[Категория:незаконченные статьи]
При использовании терминальной консоли, а так-же при использования драйвера fbdev в X-сервере, бывает нужно задать разрешение, в котором работает фреймбуфер.
 
Для этого надо при загрузке передать ядру параметр работы его работы. Обычно для этого в lilo или в grub задаётся параметр VGA из следующеёй таблицы:
=== Стандартные режимы fbdev ===
Стандартные режимы fbdev в 16-ном виде
 
<table border="1">
  <tr>
    <td>Кол-во цветов</td><td>Число бит</td><td>640x480</td><td>800x600</td><td>1024x768</td><td>1280x1024</td><td>1440x900</td><td>1600x1200</td>
  </tr>
  <tr>
    <td>256</td><td>8</td><td>0x301</td><td>0x303</td><td>0x305</td><td>0x307</td><td>0x360</td><td>0x31c</td>
  </tr>
  <tr>
    <td>32k</td><td>15</td><td>0x310</td><td>0x313</td><td>0x316</td><td>0x319</td><td>0x361</td><td>0x31d</td>
  </tr>
  <tr>
    <td>64k</td><td>16</td><td>0x311</td><td>0x314</td><td>0x317</td><td>0x31A</td><td>0x362</td><td>0x31e</td>
  </tr>
  <tr>
    <td>16M</td><td>24</td><td>0x312</td><td>0x315</td><td>0x318</td><td>0x31B</td><td>0x363</td><td>0x31f</td>
  </tr>
</table>
 
или в 10-чном:
 
<table border="1">
  <tr>
    <td>Кол-во цветов</td><td>Число бит</td><td>640x480</td><td>800x600</td><td>1024x768</td><td>1280x1024</td><td>1440x900</td><td>1600x1200</td>
  </tr>
  <tr>
    <td>256</td><td>8</td><td>769</td><td>771</td><td>773</td><td>775</td><td>864</td><td>796</td>
  </tr>
  <tr>
    <td>32k</td><td>15</td><td>784</td><td>787</td><td>790</td><td>793</td><td>865</td><td>797</td>
  </tr>
  <tr>
    <td>64k</td><td>16</td><td>785</td><td>788</td><td>791</td><td>794</td><td>866</td><td>798</td>
  </tr>
  <tr>
    <td>16M</td><td>24</td><td>786</td><td>789</td><td>792</td><td>795</td><td>867</td><td>799</td>
  </tr>
</table>
 
 
 
== Задание режима через lilo ==
Для задания режима в lilo, надо добавить к параметрам передаваемым ядру параметр VGA с заданным значением, например:
 
<source lang=text>
image="/boot/vmlinuz"
        label="ALTLinux4.1"
        initrd="/boot/initrd.img"
        root="UUID=28c12a86-fbfc-4d94-8824-284bd3e2fdb5"
        vga="0x31b"
</source>
 
 
== Задание режима через grub2 ==
* Первый вариант (уже как правило не работает), как пример добавляем в переменную параметр vga=0x314. Этот параметр не работает напрямую с 64-битным ядром Linux архитектуры x86, так как grub использует 32-битный протокол загрузки.
<syntaxhighlight lang="text">
GRUB_CMDLINE_LINUX_DEFAULT='quiet=1 panic=30 splash vga=0x314'
</syntaxhighlight>
 
* Второй вариант - использование переменных <ref>[https://www.gnu.org/software/grub/manual/grub/html_node/index.html GNU GRUB Manual 2.12]</ref> '''gfxmode''' и '''gfxpayload'''
{{Note |Поддерживаемые режимы grub можно получить командой videoinfo из терминала grub.}}
 
* Параметра 'GRUB_GFXMODE' задаёт значение переменной '''gfxmode''', которая определяет разрешение монитора в графическом терминале grub. Устанавливает разрешение, используемое в графическом терминале grub. Можно использовать только те режимы, которые поддерживает видеокарта через расширения VESA BIOS (VBE), поэтому, например, собственное разрешение ЖК-панели может быть недоступно. По умолчанию - режим 'auto', который пытается выбрать разрешение автоматом.
Возможные значения:
* '''Напрямую заданные режимы'''. Разрешения задаются в виде '''ширина''' x '''высота'''  или '''ширина''' x '''высота''' x '''глубина''' разделённые через запятую или точку с запятой. Заданные режимы проверяются слева направо.
* '''auto1080p''' - выбор режима Full HD
* '''auto'''  - автоматический выбор видеорежима.
 
Параметр GRUB_GFXPAYLOAD_LINUX задаёт значение параметра '''gfxpayload''', которая определяет с какими параметрами будет загружаться ядро Linux, заменяя режим vga. Возможные значения:
* '''text''' - ядро загружается в станадартном текстовом режиме (vga=normal).
* '''keep''' - ядро загружается в текущем режиме консоли GRUB.
*  режимы, задаваемые напрямую, аналогично '''gfxmode'''.
 
Пример задания параметров grub в /etc/sysconfig.grub2
<syntaxhighlight lang="text">
GRUB_TERMINAL_OUTPUT='gfxterm'
GRUB_GFXMODE='1920x1080,auto'
GRUB_GFXPAYLOAD_LINUX='keep'
</syntaxhighlight>
 
 
== Поддерживаемые монитором разрешения ==
 
* Если задать параметр в настройках lilo строчку vga=ask, то lilo выдаст все параметры, поддерживаемые монитором (для этого надо еще при загрузке выдать команду scan).
* Список всех разрешений поддерживаемых данным монитором можно получить, выполнив следующую команду:
<syntaxhighlight lang="bash">
# hwinfo --framebuffer<pref>по какой-то причине эта команда не всегда работает</pref>
</syntaxhighlight>
* Если команда не найдена, значит, надо установить пакет hwinfo:
<syntaxhighlight lang="bash">
# apt-get update; apt-get install hwinfo
</syntaxhighlight>
* Получение возможных видеорежимов с помощью консольной команды  grub  '''videoinfo'''.
Для того, чтобы попасть в консоль grub, надо нажать кнопку '''с''' (латинская), другой вариант - кнопка '''e'''  и потом нажать '''F2'''.
После попадания в консоль grub, даём команду '''videoinfo''', которая тестирует и выдаёт возможные режимы работы графической консоли grub (соответственно режимы работы фреймбуфера ядра Linux).
 
[[Файл:Fremebuffer grub.png|600x800px|центр]]
 
== Ссылки ==
* https://www.opennet.ru/base/X/framebuffer_setup.txt.html
* https://www.gnu.org/software/grub/manual/grub/html_node/index.html
[[Категория:HOWTO]]
 
== Примечания ==

Текущая версия от 16:46, 26 февраля 2024

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Введение

При использовании терминальной консоли, а так-же при использования драйвера fbdev в X-сервере, бывает нужно задать разрешение, в котором работает фреймбуфер.

Для этого надо при загрузке передать ядру параметр работы его работы. Обычно для этого в lilo или в grub задаётся параметр VGA из следующеёй таблицы:

Стандартные режимы fbdev

Стандартные режимы fbdev в 16-ном виде

Кол-во цветовЧисло бит640x480800x6001024x7681280x10241440x9001600x1200
25680x3010x3030x3050x3070x3600x31c
32k150x3100x3130x3160x3190x3610x31d
64k160x3110x3140x3170x31A0x3620x31e
16M240x3120x3150x3180x31B0x3630x31f

или в 10-чном:

Кол-во цветовЧисло бит640x480800x6001024x7681280x10241440x9001600x1200
2568769771773775864796
32k15784787790793865797
64k16785788791794866798
16M24786789792795867799


Задание режима через lilo

Для задания режима в lilo, надо добавить к параметрам передаваемым ядру параметр VGA с заданным значением, например:

image="/boot/vmlinuz"
        label="ALTLinux4.1"
        initrd="/boot/initrd.img"
        root="UUID=28c12a86-fbfc-4d94-8824-284bd3e2fdb5"
        vga="0x31b"


Задание режима через grub2

  • Первый вариант (уже как правило не работает), как пример добавляем в переменную параметр vga=0x314. Этот параметр не работает напрямую с 64-битным ядром Linux архитектуры x86, так как grub использует 32-битный протокол загрузки.
GRUB_CMDLINE_LINUX_DEFAULT='quiet=1 panic=30 splash vga=0x314'
  • Второй вариант - использование переменных [1] gfxmode и gfxpayload
Примечание: Поддерживаемые режимы grub можно получить командой videoinfo из терминала grub.


  • Параметра 'GRUB_GFXMODE' задаёт значение переменной gfxmode, которая определяет разрешение монитора в графическом терминале grub. Устанавливает разрешение, используемое в графическом терминале grub. Можно использовать только те режимы, которые поддерживает видеокарта через расширения VESA BIOS (VBE), поэтому, например, собственное разрешение ЖК-панели может быть недоступно. По умолчанию - режим 'auto', который пытается выбрать разрешение автоматом.

Возможные значения:

  • Напрямую заданные режимы. Разрешения задаются в виде ширина x высота или ширина x высота x глубина разделённые через запятую или точку с запятой. Заданные режимы проверяются слева направо.
  • auto1080p - выбор режима Full HD
  • auto - автоматический выбор видеорежима.

Параметр GRUB_GFXPAYLOAD_LINUX задаёт значение параметра gfxpayload, которая определяет с какими параметрами будет загружаться ядро Linux, заменяя режим vga. Возможные значения:

  • text - ядро загружается в станадартном текстовом режиме (vga=normal).
  • keep - ядро загружается в текущем режиме консоли GRUB.
  • режимы, задаваемые напрямую, аналогично gfxmode.

Пример задания параметров grub в /etc/sysconfig.grub2

GRUB_TERMINAL_OUTPUT='gfxterm'
GRUB_GFXMODE='1920x1080,auto'
GRUB_GFXPAYLOAD_LINUX='keep'


Поддерживаемые монитором разрешения

  • Если задать параметр в настройках lilo строчку vga=ask, то lilo выдаст все параметры, поддерживаемые монитором (для этого надо еще при загрузке выдать команду scan).
  • Список всех разрешений поддерживаемых данным монитором можно получить, выполнив следующую команду:
# hwinfo --framebuffer<pref>по какой-то причине эта команда не всегда работает</pref>
  • Если команда не найдена, значит, надо установить пакет hwinfo:
# apt-get update; apt-get install hwinfo
  • Получение возможных видеорежимов с помощью консольной команды grub videoinfo.

Для того, чтобы попасть в консоль grub, надо нажать кнопку с (латинская), другой вариант - кнопка e и потом нажать F2. После попадания в консоль grub, даём команду videoinfo, которая тестирует и выдаёт возможные режимы работы графической консоли grub (соответственно режимы работы фреймбуфера ядра Linux).

Fremebuffer grub.png

Ссылки

Примечания