Режимы работы фреймбуфера: различия между версиями
(Новая страница: «При использовании терминальной консоли, а так-же при использования драйвера fbdev, бывает ва...») |
(→Ссылки) |
||
(не показано 45 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{stub}} | |||
== Введение == | |||
[Категория: | При использовании терминальной консоли, а так-же при использования драйвера 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]] | |||
== Примечания == |
Текущая версия от 19:46, 26 февраля 2024
Введение
При использовании терминальной консоли, а так-же при использования драйвера fbdev в X-сервере, бывает нужно задать разрешение, в котором работает фреймбуфер.
Для этого надо при загрузке передать ядру параметр работы его работы. Обычно для этого в lilo или в grub задаётся параметр VGA из следующеёй таблицы:
Стандартные режимы fbdev
Стандартные режимы fbdev в 16-ном виде
Кол-во цветов | Число бит | 640x480 | 800x600 | 1024x768 | 1280x1024 | 1440x900 | 1600x1200 |
256 | 8 | 0x301 | 0x303 | 0x305 | 0x307 | 0x360 | 0x31c |
32k | 15 | 0x310 | 0x313 | 0x316 | 0x319 | 0x361 | 0x31d |
64k | 16 | 0x311 | 0x314 | 0x317 | 0x31A | 0x362 | 0x31e |
16M | 24 | 0x312 | 0x315 | 0x318 | 0x31B | 0x363 | 0x31f |
или в 10-чном:
Кол-во цветов | Число бит | 640x480 | 800x600 | 1024x768 | 1280x1024 | 1440x900 | 1600x1200 |
256 | 8 | 769 | 771 | 773 | 775 | 864 | 796 |
32k | 15 | 784 | 787 | 790 | 793 | 865 | 797 |
64k | 16 | 785 | 788 | 791 | 794 | 866 | 798 |
16M | 24 | 786 | 789 | 792 | 795 | 867 | 799 |
Задание режима через 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_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).
Ссылки
- https://www.opennet.ru/base/X/framebuffer_setup.txt.html
- https://www.gnu.org/software/grub/manual/grub/html_node/index.html