Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.kernel > #88705 > unrolled thread
| Started by | Sascha Silbe <sascha-debian-bugs-initramfs-tools-20250807@silbe.org> |
|---|---|
| First post | 2025-08-08 12:40 +0200 |
| Last post | 2025-08-28 11:10 +0200 |
| Articles | 2 — 1 participant |
Back to article view | Back to linux.debian.kernel
Bug#1110545: initramfs-tools: missing MMC modules break boot Sascha Silbe <sascha-debian-bugs-initramfs-tools-20250807@silbe.org> - 2025-08-08 12:40 +0200
Bug#1110545: initramfs-tools: missing MMC modules break boot Sascha Silbe <sascha-debian-bugs-initramfs-tools-20250807@silbe.org> - 2025-08-28 11:10 +0200
| From | Sascha Silbe <sascha-debian-bugs-initramfs-tools-20250807@silbe.org> |
|---|---|
| Date | 2025-08-08 12:40 +0200 |
| Subject | Bug#1110545: initramfs-tools: missing MMC modules break boot |
| Message-ID | <LhsFX-60xV-3@gated-at.bofh.it> |
Package: initramfs-tools Version: 0.148.3 Severity: normal X-Debbugs-Cc: sascha-debian-bugs-initramfs-tools-20250807@silbe.org Dear Maintainer, when running update-initramfs from Trixie (armhf) on a build system (e.g. using debos) the MMC driver modules are not included in the initramfs any more despite MODULES=most (default configuration). This breaks boot on at least BeagleBone Black (BBB) for a system with rootfs on SD card (and presumably built-in eMMC as well). As many embedded systems can only boot from eMMC or SD card, this potentially affects a large number of systems when using images built on another system (which is a rather common scenario). When run on the target system itself with rootfs on SD card, a lot of MMC drivers are included (not just the one used on the system). This is the behaviour I expect from MODULES=most on *any* system (at the very least on armhf/armel/arm64). When run on the build system, no MMC driver at all is present in the initramfs on Trixie: === Begin === $ zstdcat /mnt/boot/initrd.img |cpio -t |grep -i mmc 10216 blocks === End === For comparison, Bookworm included mmc/host/sdhci-omap.ko alongside lots of other MMC drivers: === Begin === $ zstdcat /boot/initrd.img|cpio -t |cut -d / -f 5- |grep mmc kernel/drivers/mmc kernel/drivers/mmc/core kernel/drivers/mmc/core/pwrseq_sd8787.ko kernel/drivers/mmc/core/sdio_uart.ko kernel/drivers/mmc/host kernel/drivers/mmc/host/armmmci.ko kernel/drivers/mmc/host/bcm2835.ko kernel/drivers/mmc/host/cb710-mmc.ko kernel/drivers/mmc/host/dw_mmc-exynos.ko kernel/drivers/mmc/host/dw_mmc-pltfm.ko kernel/drivers/mmc/host/dw_mmc-rockchip.ko kernel/drivers/mmc/host/dw_mmc.ko kernel/drivers/mmc/host/meson-mx-sdio.ko kernel/drivers/mmc/host/mmc_spi.ko kernel/drivers/mmc/host/mvsdio.ko kernel/drivers/mmc/host/of_mmc_spi.ko kernel/drivers/mmc/host/omap.ko kernel/drivers/mmc/host/omap_hsmmc.ko kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko kernel/drivers/mmc/host/rtsx_usb_sdmmc.ko kernel/drivers/mmc/host/sdhci-dove.ko kernel/drivers/mmc/host/sdhci-esdhc-imx.ko kernel/drivers/mmc/host/sdhci-iproc.ko kernel/drivers/mmc/host/sdhci-of-aspeed.ko kernel/drivers/mmc/host/sdhci-omap.ko kernel/drivers/mmc/host/sdhci-pci.ko kernel/drivers/mmc/host/sdhci-pxav3.ko kernel/drivers/mmc/host/sdhci-s3c.ko kernel/drivers/mmc/host/sdhci-tegra.ko kernel/drivers/mmc/host/sunxi-mmc.ko kernel/drivers/mmc/host/tifm_sd.ko kernel/drivers/mmc/host/toshsd.ko kernel/drivers/mmc/host/ushc.ko kernel/drivers/mmc/host/via-sdmmc.ko kernel/drivers/mmc/host/vub300.ko kernel/drivers/mmc/host/wmt-sdmmc.ko kernel/drivers/phy/rockchip/phy-rockchip-emmc.ko 141997 blocks === End === On a booted Bookworm system, mmc/host/sdhci-omap.ko is used for both eMMC and SD card: === Begin === $ lsmod |grep -i omap |egrep -i 'sdhci|mmc' sdhci_omap 28672 0 $ sudo dmesg|grep -i mmc [ 10.085952] sdhci-omap 48060000.mmc: Got CD GPIO [ 10.086158] sdhci-omap 48060000.mmc: supply pbias not found, using dummy regulator [ 10.086930] sdhci-omap 48060000.mmc: supply vqmmc not found, using dummy regulator [ 10.120188] sdhci-omap 481d8000.mmc: supply pbias not found, using dummy regulator [ 10.120978] sdhci-omap 481d8000.mmc: supply vqmmc not found, using dummy regulator [ 10.670895] mmc1: SDHCI controller on 481d8000.mmc [481d8000.mmc] using External DMA [ 10.697195] mmc0: SDHCI controller on 48060000.mmc [48060000.mmc] using External DMA [ 10.724501] mmc1: new high speed MMC card at address 0001 [ 10.740127] mmcblk1: mmc1:0001 M62704 3.56 GiB [ 10.772799] mmc0: new high speed SDXC card at address e624 [ 10.779847] mmcblk1: p1 [ 10.781699] mmcblk1boot0: mmc1:0001 M62704 2.00 MiB [ 10.788867] mmcblk0: mmc0:e624 SN64G 59.5 GiB [ 10.817750] mmcblk0: p1 p2 p3 [ 10.834106] mmcblk1boot1: mmc1:0001 M62704 2.00 MiB [ 10.895623] mmcblk1rpmb: mmc1:0001 M62704 512 KiB, chardev (241:0) === End === Failed boot: === Begin === Booting Debian 6.12.38+deb13-armmp from mmc 0:3... ## Flattened Device Tree blob at 88000000 Booting using the fdt blob at 0x88000000 Loading Ramdisk to 8f272000, end 8ffff720 ... OK Loading Device Tree to 8f25d000, end 8f2714fb ... OK Starting kernel ... [ 1.243170] target-module@4b000000:target-module@140000:pmu@0:fck: device ID is greater than 24 [ 1.248637] l3-aon-clkctrl:0000:0: failed to disable [ 1.286896] l3-aon-clkctrl:0000:0: failed to disable [ 1.338398] omap_voltage_late_init: Voltage driver support not added [ 2.214361] ti-sysc 44e31000.target-module: probe with driver ti-sysc failed with error -16 [ 2.282555] ti-sysc 48040000.target-module: probe with driver ti-sysc failed with error -16 [ 2.404683] 48000000.interconnect:segment@200000:target-module@0:mpu@0:fck: device ID is greater than 24 [ 2.470805] debugfs: Directory '49000000.dma' with parent 'dmaengine' already present! Gave up waiting for root file system device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Missing modules (cat /proc/modules; ls /dev) ALERT! /dev/disk/by-uuid/3c1a9a54-db28-4674-8531-417e780d24e9 does not exist. Dropping to a shell! === End === In Trixie, sdhci-omap is still built as a module that needs to be loaded by initramfs (no change compared to Bookworm): === Begin === $ grep CONFIG_MMC_SDHCI_OMAP /mnt/boot/config-6.12.38+deb13-armmp CONFIG_MMC_SDHCI_OMAP=m === End === When run on the build system, MMC is not mentioned at all in update-initramfs output even with in verbose mode: === Begin === $ tr -d '\r' < debos.log |grep setup-grub-initramfs |grep -i mmc $ === End === When run on the target system, a lot of MMC drivers are included: === Begin === $ grep -i mmc update-initramfs-on-bbb.log dracut-install: mkdir '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc' dracut-install: mkdir '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/core' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/core/sdio_uart.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/core/sdio_uart.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/core/pwrseq_sd8787.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/core/pwrseq_sd8787.ko.xz' dracut-install: mkdir '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/rtsx_usb_sdmmc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/rtsx_usb_sdmmc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/armmmci.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/armmmci.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/ushc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/ushc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/cqhci.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/cqhci.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/omap.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/omap.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/dw_mmc-pltfm.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/dw_mmc-pltfm.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/dw_mmc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/dw_mmc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/vub300.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/vub300.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-pltfm.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-pltfm.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-s3c.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-s3c.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/omap_hsmmc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/omap_hsmmc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/dw_mmc-rockchip.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/dw_mmc-rockchip.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/mmc_spi.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/mmc_spi.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/of_mmc_spi.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/of_mmc_spi.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/mvsdio.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/mvsdio.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/bcm2835.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/bcm2835.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-pci.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-pci.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/toshsd.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/toshsd.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/dw_mmc-exynos.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/dw_mmc-exynos.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-pxav3.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-pxav3.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-iproc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-iproc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sunxi-mmc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sunxi-mmc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-of-aspeed.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-of-aspeed.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/via-sdmmc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/via-sdmmc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-omap.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-omap.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-tegra.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-tegra.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-dove.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-dove.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/cb710-mmc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/cb710-mmc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/tifm_sd.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/tifm_sd.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/meson-mx-sdio.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/meson-mx-sdio.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/wmt-sdmmc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/wmt-sdmmc.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-esdhc-imx.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/mmc/host/sdhci-esdhc-imx.ko.xz' dracut-install: cp '/lib/modules/6.12.38+deb13-armmp/kernel/drivers/phy/rockchip/phy-rockchip-emmc.ko.xz' '/var/tmp/mkinitramfs_qOKAOK/lib/modules/6.12.38+deb13-armmp/kernel/drivers/phy/rockchip/phy-rockchip-emmc.ko.xz' I: Checking swap device /dev/mmcblk0p2 I: The initramfs will attempt to resume from /dev/mmcblk0p2 === End === Sascha Silbe [removed auto-generated system info because it applies to my desktop, not the BBB affected by the breakage]
[toc] | [next] | [standalone]
| From | Sascha Silbe <sascha-debian-bugs-initramfs-tools-20250807@silbe.org> |
|---|---|
| Date | 2025-08-28 11:10 +0200 |
| Message-ID | <LoGNP-aYSS-5@gated-at.bofh.it> |
| In reply to | #88705 |
reassign 1110545 src:glibc
forcemerge 1079443 1110545
found 1079443 2.41-12
affects 1079443 initramfs-tools
affects 1079443 dracut-install
thanks
Dear Maintainer,
after running into a related issue (network drivers missing as well) I
spent several days debugging this and finally figured out that it is
caused by a known bug in glibc that even had the same symptoms when it
was initially reported in Debian a year ago (the title was
"dracut-install ... -m =drivers/XXX is ignored"):
#1079443 src:glibc: fts_* calling non-LFS __readdir [1]
mkinitramfs uses dracut-install to install kernel modules in the
initramfs. dracut-install uses fts_open() + fts_read() to find the
modules in the file system. The glibc implementation of fts_open() +
fts_read() is broken when running in qemu-arm (qemu-user) on amd64 (and
possibly in other circumstances as well).
The upstream ticket glibc#23960 [2] is even older, dating back to 2018
and glibc 2.28. The reason it only started affecting initramfs-tools in
Trixie is that since initramfs-tools commit d730a393 ("Replace
copy_modules_dir by manual_add_modules calls") mkinitramfs uses
dracut-install filters instead of find (for entire directories) and
explicit module lists (for individual modules).
Given that there's been no progress on the glibc bug since 2022 it would
probably be best for dracut-install to stop using the non-POSIX (and
thus rarely used and not thoroughly tested) fts_open() + fts_read().
Sascha Silbe
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1079443
[2] https://sourceware.org/bugzilla/show_bug.cgi?id=23960
[toc] | [prev] | [standalone]
Back to top | Article view | linux.debian.kernel
csiph-web