drm-panic: kernel: Enable SimpleDRM

kernel: Enable DRM_PANIC
           kernel: Explain DRM panic settings
grub: Set up the VESA framebuffer for the kernel
This commit is contained in:
Poltern
2025-02-10 15:30:01 +05:00
parent f2f6738159
commit 7b9c35d301
7 changed files with 98 additions and 31 deletions

View File

@ -122,6 +122,7 @@ set timeout=5
insmod part_gpt
insmod ext2
set root=(hd0,2)
set gfxpayload=1024x768x32
menuentry "GNU/Linux, Linux &linux-version;-lfs-&version;" {
linux /boot/vmlinuz-&linux-version;-lfs-&version; root=/dev/sda2 ro
@ -143,6 +144,13 @@ EOF</userinput></screen>
вреда, но они могут понадобиться в некоторых редких конфигурациях.
</para>
<para>
Команда <command>set gfxpayload=1024x768x32</command> устанавливает разрешение и
глубину цвета кадрового буфера VESA, которые будут переданы ядру. Драйвер SimpleDRM
ядра должен использовать фреймбуфер VESA. Вы можете использовать другое разрешение
или значение глубины цвета, которое больше подходит для вашего монитора.
</para>
<note><para>С точки зрения <application>GRUB</application>,
файлы ядра относятся к используемому разделу. Если вы используется отдельный раздел
/boot, удалите /boot из приведенной выше строки <emphasis>linux</emphasis>. Вам также

View File

@ -259,6 +259,62 @@
</varlistentry>
<varlistentry>
<term>
<parameter>
Display a user-friendly message when a kernel panic occurs
</parameter>
</term>
<listitem>
<para>Этот параметр заставит ядро ​​корректно отображать сообщение в случае возникновения
аварийной ситуации в ядре, запущенный драйвер DRM поддерживает это. Без этого
было бы сложнее диагностировать панику: если драйвер DRM не запущен, мы бы
находились на консоли VGA, которая может содержать только 24 строки, и соответствующее
сообщение ядра скорее всего удалилось бы; если драйвер DRM запущен, отображение часто
полностью портится при панике. Начиная с Linux-6.12, ни один из драйверов для основных
моделей GPU на самом деле не поддерживает это, но это поддерживается <quote>Простым
драйвером фреймбуфера</quote>, который запускается в буфере кадров VESA (или EFI) до
загрузки внешнего драйвера GPU. Если внешний драйвер графического процессора собран как
модуль (а не часть образа ядра) и initramfs не используется, эта функциональность будет
работать нормально до монтирования корневой файловой системы, и ее уже достаточно для
предоставления информации о большинстве ошибок конфигурации LFS, вызывающих панику (например,
неверная настройка <parameter>root=</parameter> в <xref linkend='ch-bootable-grub'/>).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>
Panic screen formatter
</parameter>
</term>
<listitem>
<para>Установите значение <literal>kmsg</literal>, чтобы убедиться, что последние строки
сообщений ядра отображаются при возникновении паники ядра. Значение по умолчанию,
<literal>user</literal>, заставит ядро ​​отображать только <quote>дружественное пользователю</quote>
сообщение о панике, которое бесполезно при диагностике. Третий вариант, <literal>qr_code</literal>,
заставит ядро ​​сжать последние строки сообщений ядра в QR-код и отобразить его. QR-код может
содержать больше строк сообщений, чем обычный текст, и его можно декодировать с помощью
внешнего устройства (например, смартфона). Но для этого требуется компилятор Rust, который
LFS не предоставляет.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>
Mark VGA/VBE/EFI FB as generic system framebuffer
</parameter> и
<parameter>Simple framebuffer driver</parameter>
</term>
<listitem>
<para>Эти параметры позволяют использовать буфер кадра VESA (или буфер кадра EFI, если загрузка
системы LFS осуществляется через UEFI) в качестве устройства DRM. Буфер кадра VESA будет настроен
GRUB (или буфер кадра EFI будет настроен прошивкой UEFI), поэтому обработчик паники DRM может
работать до загрузки драйвера DRM, специфичного для GPU.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>
@ -268,9 +324,9 @@
</term>
<listitem>
<para>Они необходимы для отображения консоли Linux на графическом процессоре, управляемом
драйвером DRI (Direct Rendering Infrastructure - инфраструктура прямого рендеринга). Если
драйвером DRI (Direct Rendering Infrastructure - инфраструктура прямого рендеринга). Поскольку
<option>CONFIG_DRM</option> (Direct Rendering Manager - диспетчер прямого рендеринга) включен,
вам также следует включить эти две опции, иначе вы увидите пустой экран после загрузки драйвера
нам также следует включить эти две опции, иначе мы увидим пустой экран после загрузки драйвера
DRI.</para>
</listitem>
</varlistentry>

View File

@ -1 +1 @@
6.10.5
6.12.1

View File

@ -13,7 +13,13 @@ STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' '
DEVTMPFS='*'
DEVTMPFS_MOUNT='*'
DRM=' *M'
SYSFB_SIMPLEFB='*'
DRM='*'
DRM_PANIC='*'
DRM_PANIC_SCREEN='kmsg'
DRM_FBDEV_EMULATION='*'
DRM_SIMPLEDRM='*'
FRAMEBUFFER_CONSOLE='*'
NET='*'
INET='*'
IPV6='*'
@ -30,11 +36,3 @@ revision='systemd'
[RT_GROUP_SCHED]
value = ' '
comment = 'This may cause some systemd features malfunction'
[DRM_FBDEV_EMULATION]
value = ' *'
comment = 'If [DRM] is selected as * or M, this must be selected'
[FRAMEBUFFER_CONSOLE]
value = ' *'
comment = 'If [DRM] is selected as * or M, this must be selected'

View File

@ -42,15 +42,18 @@
... [FW_LOADER_USER_HELPER]
<emphasis role='blue'>F</emphasis>irmware Drivers ---&gt;
[*] <emphasis role='blue'>E</emphasis>xport DMI identification via sysfs to userspace [DMIID]
[*] M<emphasis role='blue'>a</emphasis>rk VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB]
<emphasis role='blue'>G</emphasis>raphics support ---&gt;
&lt; /*/M&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
&lt;*&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
... [DRM]
# If [DRM] is selected as * or M, this must be selected:
[ /*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver
[*] <emphasis role='blue'>D</emphasis>isplay a user-friendly message when a kernel panic occurs
... [DRM_PANIC]
(kmsg) <emphasis role='blue'>P</emphasis>anic screen formatter [DRM_PANIC_SCREEN]
[*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver
... [DRM_FBDEV_EMULATION]
&lt;*&gt; <emphasis role='blue'>S</emphasis>imple framebuffer driver [DRM_SIMPLEDRM]
<emphasis role='blue'>C</emphasis>onsole display driver support ---&gt;
# If [DRM] is selected as * or M, this must be selected:
[ /*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]
[*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]
<emphasis role='blue'>F</emphasis>ile systems ---&gt;
[*] <emphasis role='blue'>I</emphasis>notify support for userspace [INOTIFY_USER]

View File

@ -12,14 +12,12 @@ STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' '
DEVTMPFS='*'
DEVTMPFS_MOUNT='*'
DRM=' *M'
SYSFB_SIMPLEFB='*'
DRM='*'
DRM_PANIC='*'
DRM_PANIC_SCREEN='kmsg'
DRM_FBDEV_EMULATION='*'
DRM_SIMPLEDRM='*'
FRAMEBUFFER_CONSOLE='*'
revision='sysv'
[DRM_FBDEV_EMULATION]
value = ' *'
comment = 'If [DRM] is selected as * or M, this must be selected'
[FRAMEBUFFER_CONSOLE]
value = ' *'
comment = 'If [DRM] is selected as * or M, this must be selected'

View File

@ -28,12 +28,16 @@
[*] M<emphasis role='blue'>a</emphasis>intain a devtmpfs filesystem to mount at /dev [DEVTMPFS]
[*] <emphasis role='blue'>A</emphasis>utomount devtmpfs at /dev, after the kernel mounted the rootfs
... [DEVTMPFS_MOUNT]
<emphasis role='blue'>F</emphasis>irmware Drivers ---&gt;
[*] M<emphasis role='blue'>a</emphasis>rk VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB]
<emphasis role='blue'>G</emphasis>raphics support ---&gt;
&lt; /*/M&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
&lt;*&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
... [DRM]
# If [DRM] is selected as * or M, this must be selected:
[ /*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver
[*] <emphasis role='blue'>D</emphasis>isplay a user-friendly message when a kernel panic occurs
... [DRM_PANIC]
(kmsg) <emphasis role='blue'>P</emphasis>anic screen formatter [DRM_PANIC_SCREEN]
[*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver
... [DRM_FBDEV_EMULATION]
&lt;*&gt; <emphasis role='blue'>S</emphasis>imple framebuffer driver [DRM_SIMPLEDRM]
<emphasis role='blue'>C</emphasis>onsole display driver support ---&gt;
# If [DRM] is selected as * or M, this must be selected:
[ /*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</screen>
[*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</screen>