Files
c630/overlay/etc/dnf/libdnf5.conf.d/50-c630-installonly.conf
rob thijssen 477d43aacd
Some checks failed
build image / build (push) Has been cancelled
Survive kernel updates on a /boot this small
A dnf upgrade to 7.1.8 installed the kernel rpm cleanly, then ran /boot out
of space. dracut wrote no initramfs, and because kernel-install stops at the
first failing plugin, 95-c630-devicetree never ran either — leaving a boot
entry with neither an initrd nor a devicetree line, which on this machine can
never boot. dnf reported success and nothing retried.

A kernel costs ~336 MiB here: a 210 MiB hostonly=no initramfs, a 98 MiB
dtb-<kver> directory carrying every board's device tree, plus vmlinuz and
System.map. Three of those cannot fit 1 GiB, so /boot goes to 2 GiB and
installonly_limit drops to 2.

Also fixes the quieter half of the same trap. snd-soc-wsa881x lives outside
the kernel package, so the speakers go silent after any kernel update with
nothing in the logs to explain it. c630-wsa881x rebuilds it and
96-c630-wsa881x.install calls it on each kernel-install add — always exiting
0, since a plugin failure is precisely what caused the damage above.

grub.cfg gains the next_entry one-shot block that has been carried by hand all
along, so testing a kernel costs a power cycle rather than a rescue.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011XgGF5wfxLDAybVnNz6eNQ
2026-08-14 16:17:52 +03:00

24 lines
960 B
Plaintext

# Keep two kernels, not the stock three.
#
# This machine's initramfs is unusually large — hostonly is off (see
# /etc/dracut.conf.d/10-c630.conf) so every image carries the full driver and
# firmware set, and each installed kernel costs roughly:
#
# initramfs ~210 MiB
# dtb-<kver> ~98 MiB (kernel-core ships every board's device tree)
# vmlinuz ~17 MiB
# System.map ~11 MiB
# ---------------------
# total ~336 MiB
#
# Three of those is ~1008 MiB, which does not fit a 1 GiB /boot. The failure is
# nastier than a full disk: dnf installs the kernel rpm successfully, then
# dracut dies on ENOSPC, and because kernel-install stops at the first failing
# plugin, 95-c630-devicetree never runs either. The result is a boot entry with
# no initrd and no devicetree — unbootable — while dnf reports success and
# never retries.
#
# Two kernels is ~672 MiB, which leaves comfortable headroom.
[main]
installonly_limit=2