Skip to content

Commit 9780131

Browse files
committed
doc/boot-process.md: document Layer 1 framebuffer driver check
Layer 1 now also checks each initrd for known framebuffer drivers (efifb on all boards, plus bochs on QEMU) and writes results to /tmp/kexec_efifb_compat.txt. A separate warning is shown if no initrd has a known fb driver.
1 parent 5278ad3 commit 9780131

1 file changed

Lines changed: 22 additions & 18 deletions

File tree

doc/boot-process.md

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -131,24 +131,28 @@ boot flow. It is invoked from the "USB ISO Boot" option in the main menu.
131131

132132
1. **Signature verification**: Check for `.sig` or `.asc` detached signature
133133
2. **Mount ISO**: Mount the ISO file as loopback device at `/boot`
134-
3. **Layer 1 — initramfs fs compatibility check** (`check_initrd_fs_compat`):
135-
Before presenting boot options, verify the ISO's initramfs contains kernel
136-
modules for the USB partition's filesystem (ext4/vfat/exfat). If the initrd
137-
can't read the USB filesystem, the kernel won't find the ISO after kexec.
138-
- Parsing boot configs for initrd paths (instead of searching the whole ISO)
139-
- Unpacking each initrd and checking for required `.ko` files and
140-
`modules.builtin`
141-
- Each initrd gets its own independent `[OK]` / `[!]` / (blank) marker in
142-
`/tmp/kexec_initrd_compat.txt` (the per-initrd flag `initrd_supports_fs` is tracked
143-
separately from the global `any_supported` flag, so no initrd is silently
144-
skipped)
145-
- `[OK]` = initrd has the needed module as `.ko`, has it in
146-
`modules.builtin`, or has no `.ko` files at all (minimal initrd with
147-
everything built into the kernel — nothing to check against).
148-
- `[!]` = initrd has loadable kernel modules but none for the USB
149-
filesystem type. No built-in assumption — we report what we find.
150-
- Read-only filesystems (iso9660/squashfs/udf) and unmapped fstypes skip
151-
- All initrds are checked (no early break) so the compat file is complete.
134+
3. **Layer 1 — initramfs fs compatibility check** (`check_initrd_fs_compat`):
135+
Before presenting boot options, verify the ISO's initramfs contains kernel
136+
modules for the USB partition's filesystem (ext4/vfat/exfat). If the initrd
137+
can't read the USB filesystem, the kernel won't find the ISO after kexec.
138+
Also checks for a framebuffer driver (efifb, bochs) needed for display after
139+
kexec.
140+
- Parsing boot configs for initrd paths (instead of searching the whole ISO)
141+
- Unpacking each initrd and checking for required `.ko` files and
142+
`modules.builtin`
143+
- Each initrd gets its own independent `[OK]` / `[!]` / (blank) marker in
144+
`/tmp/kexec_initrd_compat.txt` (the per-initrd flag `initrd_supports_fs` is tracked
145+
separately from the global `any_supported` flag, so no initrd is silently
146+
skipped)
147+
- `[OK]` = initrd has the needed module as `.ko`, has it in
148+
`modules.builtin`, or has no `.ko` files at all (minimal initrd with
149+
everything built into the kernel — nothing to check against).
150+
- `[!]` = initrd has loadable kernel modules but none for the USB
151+
filesystem type. No built-in assumption — we report what we find.
152+
- Read-only filesystems (iso9660/squashfs/udf) and unmapped fstypes skip
153+
- All initrds are checked (no early break) so the compat file is complete.
154+
- Framebuffer results are written to `/tmp/kexec_efifb_compat.txt`. A
155+
separate warning is shown if no initrd has a known fb driver.
152156
4. **Layer 2 — loopback.cfg fast path**: If the ISO has a `loopback.cfg`, parse
153157
it and resolve GRUB variables (`${iso_path}`, `${isofile}`) to extract the
154158
ISO kernel params from loopback entries.

0 commit comments

Comments
 (0)